Debug d'éléments vide
Un petit truc CSS pour visualiser rapidement dans une pages web des éléments vides (et qui ne devraient pas l'être).
Code, science & musings
Un petit truc CSS pour visualiser rapidement dans une pages web des éléments vides (et qui ne devraient pas l'être).
Petit rappel sur la taille des polices de caractères à chasse fixe dans les navigateurs web ; une particularité assez génante qui m'a pertubé ces derniers jours avant de me rappeler où j'avais pu lire la manière de la contourner...
Une petite astuce pas vraiment nouvelle mais à garder sous le coude pour transformer le bouton menu de Firefox en simple icône.
Troisième itération dans la création d'un bouton on/off en CSS/HTML, cette fois-ci avec la reprise du style des boutons d'activité des extensions gnome-shell.
Petite expériemntation CSS sur la manière de styliser un groupe de boutons radio.
J'ai essayé il y a 3 mois de reproduire en HTML/CSS un bouton de type « on/off » de l'environnement de bureau Cinnamon. J'ai utilisé un élément button alors qu'il aurait été plus logique de prendre une case à cocher. Nouvelle expérimentation...
Un petit point sur les variables CSS, qui sont « officiellement » devenues un brouillon de travail au W3C en avril dernier.

Petite expérimentation toute simple sur la manière d'obtenir un effet accordéon en css uniquement.
Petite expérimentation sur la gestion des transitions CSS d'un élément, avec identification de la fin de toutes les transitions.
Petite expérimentation sur la manière de contrôler une animation CSS à l'aide d'un objet javascript simple.
En consultant l'annonce de la dernière version de version de Cinnamon, j'ai remarqué le design d'un bouton d'activation que j'ai eu envie de reproduire en HTML / CSS.
Alors que je cherchais à simplifier l'objet javascript qui me sert à gérer les animations, je me suis retrouver face à un problème dont je n'ai pas encore trouver la solution : comment savoir, sous Opera, quand une transition CSS est terminée ?
Daniel Glazman, co-président du groupe de travail CSS au W3C, développeur de logiciels d'édition web, du Composer de la suite web Mozilla à la fin des années 90 jusqu'à BlueGriffon aujourd'hui, a publié un billet plutôt alarmant.
Quel est l'avantage/inconvénient d'un langage de structuration comme le HTML ou un langage de présentation comme le CSS, par rapport à des langages de programmation comme le php ou le java ?
J'avais repris le développement de mon objet javascript de constuction d'échelle géologique il y a quelques mois. Il me restait encore à définir le code HTML de rendu ainsi que la mise en forme. Une petite heure de brainstorming et code plus tard, j'arrive enfin au bout du chemin...
Le bling-bling sévit partout, y-compris dans le développement web. Exemple : les items de liste du pied-de-page du blog {Sciences²} (dont la lecture est par ailleurs fortement recommandée). Autant j'aime l'effet rendu, autant la manière de l'obtenir me laisse, comment dire, perplexe...
Un petit bout de code html/css/javascript tout simple pour filtrer l'affichage des items d'une liste à partir d'une valeur tapée dans un champ. A étendre pour appliquer à des besoins plus sépcifiques.
Je n'ai pas connaissance d'un éditeur de texte qui puisse parser les fichiers css pour en ressortir un outline. Avec le plugin WikiOutline, je peux enfin parcourir mes feuilles de styles rapidement.
On a beau défendre les recommandations W3C pour tout ce qui est languages web, il y a des fois où des implémentations propriétaires sont bien utiles. Exmple avec la propriété CSS background-position.
A force de développer le site en continu, le code a fini par s'accumuler, parfois de manière un peu chaotique, sans que j'ai vraiment le temps de penser sa pertinence ou sa structure. Il est donc temps de faire un peu le ménage.
Quand on construit des applications ou des sites web, on associe toujours très étroitement CSS et javascript, a tel point qu'on oublie parfois que la présentation graphique peut être utile en dehors même de son utilisation dans un objet javascript...
L'élément head d'une page web n'est généralement pas affiché par les navigateurs web. Rien ne nous empêche cependant de modifier ce comportement par défaut.
Dans la série enfonçage de porte ouverte ou « ça paraît évident mais ça va mieux en le disant », une petite subtilité dans la définition des bordures d'éléments en CSS, plus particulièrement leur couleur.
J'ai rédigé de nombreuses notes au boulot afin d'expliquer certains principes CSS aux collègues développeurs non portés sur la chose. Je vais en publier quelques unes sur ce site, en espérant que cela puisse être utile à d'autres. Comme toujours, cela aurait dû être fait il y a bien longtemps (certains textes ont plus de deux ans)...
Les pseudo-éléments :before et :after permettent de définir des boîtes de contenu avant et après l'élément HTML qui les porte. Alors qu'il est maintenant possible de leur appliquer de nombreuses règles de stylisation, leur utilisation n'est pas totalement standardisée (je ne parle pas des navigateurs qui ne les gèrent pas). C'est le cas des images.
Il existe plusieurs manières d'appliquer des styles aux éléments d'un document web à travers la notion de « sélecteurs ». On use (et abuse) souvent de deux d'entre eux, les sélecteurs de classes et les sélecteurs d'ID, mais pourrions-nous nous en passer ?
A quoi voit-on que le HTML 5, malgré tous ces défauts, est tout de même un language qui facilite la vie des développeurs ? Quand on s'apperçoit que des techniques que l'on utilise depuis des années sont dorénavant intégrées aux spécifications. Petit exemple avec la manipulation de l'attribut class.
Le web d'aujourd'hui, c'est ça : des Ogres (Google et Apple) cherchant à contrôler chaque jour un peu plus ce que l'on fait de nos vies numériques et des Hommes qui, seuls ou en groupe, préfèrent emprunter une autre voie.
Petite mise à jour du site, à la fois côté serveur et côté client, avec une mise à jour de la maquette, quelques corrections de bugs et l'activation de certaines nouvelles fonctionnalités.
La dernière version de Ubuntu, 9.04 ou Jaunty Jackalope, est arrivée avec un nouveau thème sombre plutôt élégant, New Wave. Son utilisation pose cependant un petit problème d'apparence des menus de Firefox. Voici comment le résoudre.
L'astuce est déjà ancienne mais il est peut-être utile de rappeler ce qu'on peut faire depuis un moment déjà avec des navigateurs web modernes et quelques règles CSS : arrondir les coins des bordures d'un élément pour créer des cercles.
Les feuilles de styles en cascade permettent beaucoup de choses, notamment avec les navigateurs web qui implémentent correctement les spécifications du W3C. Néanmoins, il est parfois difficile - mais pas impossible - d'appliquer une série de règles par la négative (appliquer les styles sauf dans certains cas précis). Les CSS de niveau 3 offriront enfin un outil pour le faire.
Imaginons : vous devez insérer un élément ou fragment de document lambda dans un document web via le DOM. Cet élément doit obéir à certaines règles CSS et, comme il n'a aucune raison d'être dans le dit document si la gestion du javascript est désactivée, vous insérez ces règles elles-aussi en manipulant le DOM. L'opération serait finalement triviale s'il n'y avait Internet Explorer.
Pas grand chose sur ce site ces dernières semaines ; j'y reviendrai plus tard. En attendant, voici quelques lectures très instructives.
Cela a pris plus de temps que prévu, mais on voit finalement le bout du tunnel : après la page d'accueil, c'est finalement l'ensemble du site Framasoft qui a fait peau neuve cette nuit, non sans difficultés d'ailleurs.
J'en ai déjà parlé : ce site a la fâcheuse tendance à engloutir plus de temps en maintenance qu'en rédaction. Une fois n'est pas coutume, les projets de news ou d'articles se sont effacés devant les bidouilles techniques.
La nouvelle architecture du site a nécessité de nombreuses adaptations techniques, notamment pour la mise en cache des pages.
Après quelques mois de latence, nous voilà replongés dans la réécriture des squelettes du site Framasoft, et plus particulièrement dans celle de la page d'accueil.
Petit compte-rendu des quelques mises à jour du site et de certaines adaptations.
A partir d'aujourd'hui et jusqu'à la fin du mois, j'entame le travail de refonte des squelettes du site Framasoft.
Je n'avais pas mis les pieds sous Windows depuis plusieurs semaines déjà. Je l'ai fait ce midi pour vérifier comment se comportait la maquette du site avec Internet Explorer. Le résultat n'est pas brillant.
Du nouveau dans la gestion du javascript, avec la découverte d'une astuce qui répond parfaitement aux besoins de ce site : appeler un fichier javascript à la manière des « include » PHP.
Quelques liens en vrac sur le développement web, de l'utilisation intempestive des listes de définition à la définition de quelques balises html.
La dernière phase de mise à jour du site touche à sa fin avec le remaniement de la maquette. De petites modifications dans la forme mais aussi dans la structure des pages.
La mise à jour du site suite au changement d'archivage des brèves touche à sa fin. Une des évolutions à consister à remplacer certaines décorations graphiques grâce aux pseudo-éléments before et after.
Les standards de publication web du W3C semblent peu à peu s'installer dans les esprits, que ce soit au niveau des professionnels que chez les simples webmasters publiant un site personnel. Cependant, le résultat peut parfois sembler ambigu quand il conduit à remplacer les lignes et les colonnes des tableaux - pensées pour ranger et hiérarchiser des données et non pour construire la maquette d'une page - par une multitude de conteneurs div.
L'un des arguments souvent avancé pour convaincre les internautes d'adopter un navigateur web comme Firefox/Mozilla ou Opera en lieu et place d'Internet Explorer, c'est leur meilleur gestion des standards web du W3C. Mais qu'en est-il vraiment ?
Outre les ressources déjà référencées pour le style switcher, le menu déroulant, le design élastique et les fichiers javascript (galerie de photographies et mise en forme de la page d'accueil et des pages de section), outre les références générales sur les standards et les langages web (XHTML et CSS), il m'a semblé opportun de préciser ici d'autres documents utilisés lors de l'écriture du code des pages de ce site.
La présentation du site est actuellement gérée par des feuilles de styles en cascade de niveau 3. Cette troisième version des CSS en est encore au stade d'ébauche et à l'heure actuelle, seule les recommendations css 2 ont fait l'objet d'une publication officielle (une version révisée 2.1 devrait être diffusée dans peu de temps).
A la suite de mes précédentes simplification du code, d'autres modifications me sont apparues judicieuses. Jusque là, j'utilisais une classe spéciale, debut, pour transformer en lettrine la première lettre du premier paragraphe après chaque titre. Il me suffisait de définir les propriétés de cette classe à travers le pseudo-élément first-letter, qui permet d'appliquer des styles à la première lettre d'un paragraphe :
De nouveaux petits aménagements dans la maquette du site, minimes certes, mais qui m'ont indirectement amené à reconsidérer la gestion de la mise en forme par les feuilles de styles en cascade.
Avec l'arrivée de l'été, le site change de peau et accorde ses couleurs avec la nouvelle saison.
Un dernier bogue dans la construction de la maquette rendait l'affichage des menus problématique sous certaines conditions. Il est en partie résolu.
Après deux mois de tâtonnements, j'ai finalement obtenu une nouvelle maquette à peu près convenable. Voici les ultimes modifications du site.
J'ai par ailleurs souhaité pousser un peu plus loin la personnalisation des pages en fonction des styles. Outre le changement de couleurs, on peut facilement adapter les puces des listes ou tout autre icône en utilisant la propriété « image de fond » (background-image). Par contre personnaliser le logo était une autre affaire puisqu'il s'agit d'une image intégrée au code HTML.
Je parlerai de la gestion des styles en fonction des navigateurs dans une autre actu. Ici, c'est de relations entre les différentes feuilles dont il s'agit. Résumé de la situation: le site utilise des fichiers CSS pour la mise en forme des pages, un fichier pour le squelette (en-tête, contenu central, pied-de-page) et cinq autres fichiers spécifiques aux cinq styles (printemps, été, automne, hiver et nuit, qui modifient presque essentiellement les couleurs).
Résoudre le problème de longueur de ligne revenait à repenser la manière d'afficher le texte. La mise en forme d'une page web peut grosso modo se construire de deux manières (non, je ne parlerai pas des tableaux :
J'ai transformé le menu vertical gauche en un menu horizontal déroulant pure CSS. Il fait appel à la fonction hover qui permet d'assigner certaines propriétés lorsqu'on passe la souris au-dessus d'une boîte spécifique. Dans le cas présent, elle est appliquée aux listes de définition utilisées dans le menu: seul le titre (balise dt) est affiché, les sous-titres (balises dd) étant masqués par un display: none. Ensuite, le fait de survoler les dits-titres avec la souris déroulera le sous-menu dans son intégralité grâce à un display: block.
Commençons donc par le commencement: le petit lifting subie par le site. En dehors de l'envie de changer, une nouvelle maquette s'avérait nécessaire pour plusieurs raisons.
J'ai de nouveau changé la gestion des CSS dans les pages du site, toujours pour contourner les limitations de IE concernant la propriété position: fixed.
Voila quelque chose qui m'agaçait depuis quelque temps : les limitations d'Internet Explorer dans sa gestion des CSS rendaient l'affichage des pages du site quelque peu aléatoire. La solution était donc évidente : construire une feuille de style spécifique à IE qui serait utilisée uniquement pour ce navigateur. J'ai donc ajouté un petit script javascript sur chaque page pour identifier le navigateur qui se connecte et charger la feuille de style adéquate.
Quelques mises à jour éparses...
Un petit mot concernant le bouton Retour en haut de la page : ce bouton se trouve en bas à droite des pages, avec un attribut position: fixed. Cette propriété CSS permet de garder un objet en position fixe dans la fenêtre de navigation: le bouton reste toujours à sa place lorsque vous descendez dans la page. De plus, le morceau de code HTML décrivant le bouton se trouvant en toute fin de code, il faut lui définir une propriété z-index pour qu'il soit visible. Cette propriété permet de spécifier le niveau d'empilement des différentes structures; en lui attribuant la valeur z-index: 1, le bouton se placera par dessus tout le reste.
De nouvelles corrections à l'ordre du jour:
Quelques petites techniques css et/ou javascript pour modifier le comportement par défaut des listes à puces ordonnées.
Comment gérer la création de l'écran d'une application web lorsque ces différents composants doivent être positionner par rapport à leur centre.
Petite introduction à l'utilisation du nouvel élément HTML 5 meter et à la manière de lui assurer un rendu sur les navigateurs qui ne le supporte pas.
Après une mise à jour avortée (la 7, prévue cet été), voici enfin que j'arrive à peu près au bout des modifications et évolutions que je souhaitais apporté au site cette année (2011).
Petite introduction à l'utilisation de l'élément progress, apparu dans les recommendations HTML 5.
Petit memento sur l'utilisation des caractères unicodes dans différents langages de programmation / structuration / présentation. Un travail en construction...
Petite compilation loin d'être exhaustive des différentes incarnations graphiques du site depuis ses débuts en 2003.
Une série d'articles ces derniers jours m'a amené à aborder la question des citations dans un document web, et à expliquer les techniques que j'utilise depuis plusieurs années.
Quelques notes rapides et en vrac sur la façon dont je gère des projets CSS depuis quelques temps. Comme il n'existe pas vraiment de standards dans le domaine, il s'agit ici d'une simple habitude de travail.
Petite introduction à la manière dont on peut obtenir le centrage, à la fois vertical et horizontal, d'un élément HTML positionné en absolue.
Travaillant principalement sur un produit permettant de construire des applications web, j'ai souvent dû expliquer à mes collègues issus du monde java le pourquoi du comment du positionnement et de la taille des éléments HTML en CSS. Ceci est un texte rédigé pour expliquer la chose...
Assurer un affichage correct des pages d'un site web sur tous les navigateurs est parfois une gageure, surtout lorsqu'il s'agit d'Internet Explorer, un navigateur obsolète qui ne respecte que partiellement les langages de publication web. Mise au point de ma position sur le sujet.
La présentation des tableaux en HTML peut parfois être irritante, surtout lorsque vous souhaitez leur donner une taille précise. Voici quelques petites astuces qui permettent de récupérer une largeur et une hauteur définie.
Et bien voilà : cela à pris plus de temps que prévu, tout n'est pas terminé, loin de là, mais nous lançons aujourd'hui une nouvelle page d'accueil de Framasoft, certains diraient en version « beta ».
Le langage CSS est plutôt simple et intuitif. Mais, en s'habituant à cette aisance d'utilisation, on en oublie parfois certaines de ses subtilités (en tout cas c'est mon cas). En voici une parmi d'autres : la présentation des « enfants » et des « descendants » d'un élément.
Les feuilles de styles servent à mettre en forme n'importe quel élément d'une page web. Pourtant, une balise HTML pose problème : le champ de sélection select utilisable dans les formulaires. Voici quelques pistes pour contourner certaines limites dans le rendu des navigateurs web.
L'utilisation des feuilles de styles en cascade pour mettre en page son site web n'est pas toujours évident, non que cette technique soit compliquée mais parce que, malgré l'existence de normes communes, chaque navigateur n'en fait un peu qu'à sa tête. Heureusement, des solutions existent. Cependant, leur utilisation ne risque-t-elle pas d'entretenir le statu quo ?!
Internet, en tant que nouveau vecteur de contenu rédactionnel, nécessite de repenser des modèles d'édition créés pour d'autres supports. C'est le cas par exemple des « notes de bas de page » : ont-elles encore un sens dans une publication sur la toile mondiale ? Et comment les présenter ?
Sur le modèle des pages « Ressources Mozilla » et « Charles Vess, ressources et références », voici une liste de liens qui vous aidera à découvrir les standards de publication sur internet.
Document de travail prélude à la création d'un ensemble de codes, html, css, javascript et wiki permettant de gérer une liste de tâches.
SimpleSlides est un projet tout simple, un POC pour illuster la manière dont on peut réaliser rapidement une visionneuses d'images avec du HTML, un peu de CSS et de javascript. Sa seule ambition est d'éventuellement servir de base à des projets plus aboutits et complets.
Compilation des différents usages de classes et d'identifiants dans la mise ne forme et la caractérisation d'un document web.
J'utilise des icônes sur ce site depuis sa création en 2003, notamment pour illustrer le menu principal. Après différentes moutures, voici la dernière solution adoptée.
Technique CSS pour présenter une liste de tâches dans une page web en simulant l'état coché (fait) et non coché (à faire).
Projet abandonné : la notation à base d'étoiles est dorénavant géré avec un élément meter.

Une proprosition encore à l'état d'ébauche mais qui n'est pas sûr de trouver sa place dans les specs CSS 4.
EDMUNDS, Randy. Balancing Text for better readability. blogs.adobe.com,
Améliorer la lisibilité d'un texte lorsqu'il est centré. Plutôt convaincant.

DE MOURA, Felipe Nascimento. A tale of a CSS3 Animation Demo. hacks.mozilla.org,
NABORS, Rachel. Flashless Animation. 24ways,
MILLS, Chris. Native CSS feature detection via the @supports rule. dev.opera,
Lancement de Web plateform Docs, un site communautaire chargé de réunir et de publier de la documentation autour des technologies web, soutenu par le W3C, Adobe, Facebook, Google, HP, Microsoft, Nokia, Mozilla et Opera (vous trouvez pas qu'il manque quelqu'un là...).
GREMILLION, Ben. The Code Side Of Color. Smashing Magazine,
GLAZMAN, Daniel. CSS Variables, why we drop the $foo notation. Glazblog,
ATKINS, Tab. Let's Talk about CSS Variables. Tab Completion,
DUBOST, Karl. De CSS à HTTP. Les carnets de La Grange,
WALKER, Alex. The Cicada Principle and Why It Matters to Web Designers. Design festival, . Eric Meyer fait la même chose, mais en css uniquement.
ATKINS, Tab. A Standards-Compliant CSS Parser. Tab Completion,
STEFANOV, Stoyan. CSS variables. phpied.com,
BROWN, Tiffany. Understanding the CSS Transforms Matrix. Dev.Opera,
ATZENI, Alessio. A Pure CSS3 Cycling Slideshow. Smashing magazine,
GRANNELL, Craig. Opera confirms WebKit prefix usage. .net, . Et voilà : la chienlit commence !
GARDNER, Lyza. The EMs have it: Proportional Media Queries FTW!. Cloud Four,
VEROU, Lea. On CSS preprocessors. lea.verou.me,
LAZARIS, Louis. A Call For Better Fragment Identifiers. Impressive Web,
MILLS, Chris. CSS3 radial gradients. Dev.opera,
SNOOK, Jonathan. Scalable and Modular Architecture for CSS. smacss.com,
LAZARIS, Louis. How Do Browsers Render the Different CSS Border Style Values?. Impressive Webs,
WATERHOUSE, Tom. The Guide To CSS Animation: Principles and Examples. Smashing Magazine,
COYIER, Chris. Nine Image Expander. css-tricks,
Très jolie démonstration de la conversion d'une animation flash en html/css/javascript.
HEILMANN, Chris. Detecting and generating CSS animations in JavaScript. hacks.mozilla.org,
BARON, David. CSS Conditional Rules Module Level 3. W3C,
Syntaxe de règles condditionnelles, qui nous permettrait d'écrire des styles en fonction de ce que supporte le navigateur web, et éviter ainsi de devoir utiliser des outils comme modernizr.
STUDHOLME, Oli. Don't use IDs in CSS selectors ?. Oli.jp,
CAVANAUGH, Nate. CSS Quick Tip: CSS Arrows and Shapes Without Markup. yuiblog,
CEDERHOLM, Dan. Understanding CSS3 Transitions. A List Apart, . Ce n'est pas du HTML 5 mais du CSS 3 : comment modifier dynamiquement la valeur de certaines propriétés CSS, ce que permettent la plupart des librairies javascript. On pourra toujours se demander si c'est aux feuilles de styles de faire cela, mais c'est en tout cas simple et rapide à mettre en place.
CROFT, Jeff. On the term “HTML5”. jeffcroft.com, . Sur l'utilisation du terme « HTML 5 », qui commence à désigner le HTML 5 à proprement parler mais aussi toutes les autres nouvelles spécifications web (CSS 3, DOM 3, Geolocation, etc.). Bruce Lawson propose NEWT (« New Exciting Web Technologies ») ; Jeffrey Zeldman pencherait plutôt pour HART, « HTML5 And Related Technologies », et ça sonne plutôt bien. Pourquoi ne pas simplement parler d'Open Web, ou d'Open Web technologies ?
SNOOK, Johnatan. Why we don't have a parent selector. snook.ca, . L'absence de sélecteurs de parent en CSS fait prafois cruellement défaut, mais on comprend avec cet article pourquoi il est si difficile à implémenter.