Affichage des articles dont le libellé est Elément. Afficher tous les articles
Affichage des articles dont le libellé est Elément. Afficher tous les articles

2012-03-13

CSS: Le Modèle de Boîte

Pendant la création ou l’édition de sites ou de blogs les balises du HTML (HyperText Mark-up Language) qu’on utilise sont destinées à contenir au moins un medium (notamment: image, texte, vidéo). À ce titre, les balises ou éléments html sont perçus comme des conteneurs ou boîtes avec des caractéristiques très particulières à certaines. Pour rendre le document web plus attrayant la manipulation de ces éléments (comme le div ou la table) est faite avec le CSS (Cascading Style Sheet) suivant l’idée du modèle de boîte.

Une petite tentative de compréhension de ce modèle paraît utile pour savoir comment exploiter la technologie qu’offre le CSS à notre avantage.

Le modèle

On peut trouver une ressemblance du modèle de boîte avec un cadre pour photo. Les différentes parties qu’on peut distinguer dans ce modèle sont: la marge, le bord, le rembourrage, la largeur.

Modèle de boîte

i- La marge La marge est une partie qui se trouve à l’extérieur. Elle quitte le bord de l’élément du coté extérieur et s’étend au-delà. La commande ‘margin’ permet de la définir.

ii- Le bord Le bord est la limite réelle d’un élément. C’est le point de démarcation entre l’extérieur et l’intérieur. La commande qui définit le bord est ‘border’.

iii- Le rembourrage C’est l’intervalle de la bordure au contenu de l’élément. La commande de définition du rembourrage est ‘padding’.

iv- La largeur (zone d’affichage) C’est la partie interne du conteneur destinée à recevoir le contenu vraisemblablement à afficher (dans la majeure partie des cas). Pour manipuler la largeur, on utilise la commande ‘width’.

Mise en œuvre

Dans la pratique on peut se poser la question de savoir s’il faut utiliser tout élément avec toutes ses parties à la fois. Heureusement le modèle ne l’impose pas. On peut ne pas indiquer une bordure si ce n’est pas utile, se débarrasser d’une marge si on n’en a pas besoin. Cependant certaines conditions peuvent s’imposer au technicien.

Fixe ou dynamique?
La valeur ‘auto’ qu’on peut attribuer à certaines parties permet de laisser le système décider de la disposition d’un élément par rapport au contenu et au contenant. Les valeurs fixes absolues servent à manifester les préférences personnelles du propriétaire.

Le contenu à afficher est probablement la chose la plus essentielle car après tout on pourrait la présenter dans une page html toute simple sans se soucier d’une quelconque élégance. Le modèle nous montre aussi que la zone des données est une partie centrale autour de laquelle se place le reste. Ce qui fait qu’en absence de spécifications d’une marge et/ou d’un rembourrage, un élément se résume fondamentalement à sa largeur; que celle-ci soit automatique (width: auto) ou fixe (width: 999px).

Mentionnons au passage que la valeur de rembourrage ou de marge n’est pas déduite de la zone d’affichage réel des données d’un élément.

Insertion d’un élément dans un autre
Si la largeur d’un élément est automatique, elle sera ajustée en tenant compte de sa marge et son rembourrage; ceci de manière à tenir dans l’objet auquel il est interne. Dans le cas où cet élément-conteneur ne peut le contenir on assistera à un débordement.

Si la largeur d’un élément est fixe, sa taille est conservée également à sa marge et son rembourrage avec l’ambition de s’intégrer dans l’objet auquel il est interne. Un débordement de cet élément survient s’il ne peut tenir en entier dans un autre élément-conteneur.

Marge fixe autour d’un élément
Un élément à marge fixe et à largeur automatique dans un autre
Un élément à marge fixe et à largeur fixe dans un autre

Note: Pour montrer la marge d’un élément il faut la placer dans un autre avec un fond coloré et sans bourrage.

Deux directives profitables

1. Dans le souci de créer le retrait d’un contenu de la bordure visible d’un élément, il faut utiliser la commande de rembourrage; padding (padding: 10px par exemple).

2. Pour écarter l’un de l’autre deux objets se trouvant dans le même contenant, en général on privilégiera la commande margin en sachant qu’entre deux objets qui se suivent la marge la plus grande l’emporte. Plus précisément avec un objet flottant à gauche par exemple (float: left), la commande margin permet de mettre une séparation avec l’élément le plus voisin.

Eléments avec padding et margin à valeur fixée entre eux
Eléments avec une valeur de margin à zéro

Conclusion

Le modèle de boîte nous donne la possibilité de donner de l’attrait à un site ou un blog. L’esthétique obtenue dépendra de la cohérence avec le modèle de boîte. Plus les règles de style définies sont en accord avec le modèle de boîte, meilleure est l’esthétique produite.
Maintenant les suggestions n’ont rien de religieux ou de doctrinal. Elles dépendent seulement d’une certaine éthique de développement. J’ai personnellement vu et je continue de voir des manières de faire traduisant une autre conception qui donnent le résultat visuel attendu. De plus des fois on se trouve devant des difficultés ou face à des défis de conception qui amènent à tordre le coup à certains principes de codage mais cela doit rester des exceptions et ne pas se transformer en une conduite habituelle.

© Copyright 2011-2012. United Kingdom of Love - Tous droits réservés.
Mots-clefs Technorati: , , ,
the hostgator coupon

2012-02-27

Quelques Techniques de Tabulation en HTML/CSS

La tabulation en html n’est pas aussi aisée que dans un document créé dans un éditeur comme Office Word ou OpenOffice car il n’existe pas un élément (<tab></tab> par exemple) propre à créer une tabulation. Cependant si on désire tabuler en html on peut utiliser quelques techniques que cet article propose.

La balise table

Une tabulation évoque l’idée d’une colonne vide dans du texte. Il n’en faut pas plus pour nous amener à penser à l’élément <table></table> pour créer notre tabulation.

Dans le premier cas on met notre texte à l’intérieur de la table comme une donnée de table, en prenant soin de l’ajuster convenablement.

Exemple:

<table style="border: 1px solid #F90;">
 <tbody>
  <tr>
   <td bgcolor=#6C3 width=30px></td>
   <td>Après la tabulation notre texte commence ici sur cette ligne&nbsp;</td>
  </tr>
  <tr>
   <td colspan="2">et continue normalement sur la ligne suivante.</td>
  </tr>
 </tbody>
</table>

Effet rendu:


Après la tabulation notre texte commence ici sur cette ligne 
et continue normalement sur la ligne suivante.


Je ne sais pas pour vous mais j’aime bien quand mon texte est à l’extérieur. Dans le second cas donc, on sépare la table du texte.

Exemple:

<table style="border: 1px solid #FF9900; display: inline">
 <tbody>
  <tr>
   <td bgcolor=#66CC33 width=30px></td>
  </tr>
 </tbody>
</table>On tabule une fois à l’aide d’une colonne de <span style="font-family: ‘Courier New’, Courier, monospace; font-size: 100%"><table></table> </span>
<br />Et le reste du texte suit.

Effet rendu:



Dans ce code notre texte réel se trouve à l’extérieur et autour de la table, non plus comme une donnée tabulaire. Il faut aussi noter qu’on a utilisé l’attribut width pour indiquer une largeur fixe. La colonne ainsi définie peut être utilisée pour plusieurs tabulations de même dimension.

Exemple:

<table style="border: 1px solid #FF9900; display: inline">
 <tbody>
  <tr>
   <td bgcolor=#66CC33 width="30px"></td>
   <td bgcolor=#66CC33 width="30px"></td>
  </tr>
 </tbody>
</table>On tabule deux fois avec deux colonnes de même largeur.

Effet rendu:


Une autre possibilité consiste à augmenter la taille de la largeur de colonne pour une tabulation plus grande.

Exemple:

<table style="border: 1px solid #FF9900; display: inline">
 <tbody>
  <tr>
   <td bgcolor=#66CC33 width="60px"></td>
  </tr>
 </tbody>
</table>Ici on tabule une seule fois avec une colonne deux fois plus grande; vous voyez?

Effet rendu:


Le code &nbsp;

Le code &nbsp; est le code pour un espace non tronqué. Il permet de conserver le caractère d’espace et peut donc servir à créer une tabulation.

Exemple:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On tabule à l’aide du code &nbsp;

Effet rendu:

           On tabule à l’aide du code &nbsp;

On peut inclure directement des espaces dans le document à l’aide de la barre d’espace mais dans beaucoup de systèmes les espaces ainsi insérés sont effacés. Le code &nbsp; permet de conserver le caractère d’espace. Il est intéressant de placer cette chaîne d’espaces dans la balise <span></span>.

Exemple:

<span style="border: 1px solid #FF9900; background-color: #66CC33">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Ce texte commence après une tabulation.
<br /><span style="border: 1px solid #FF9900; background-color: #66CC33">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border: 1px solid #FF9900; background-color: #66CC33">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Ici on a tabulé deux fois. Cette double-tabulation équivaut chez nous à une distance d’environ 60px.

Effet rendu:

          Ce texte commence après une tabulation.

                    Ici on a tabulé deux fois. Cette double-tabulation équivaut chez nous à une distance d’environ 60px.

La balise pre

La balise <pre></pre> est un élément html pour présenter du texte tel quel. Elle conserve du texte ayant une certaine disposition préétablie par l’auteur. Cette balise me paraît la plus indiquée pour l’objectif de tabulation ou d’indentation.

Exemple:

<pre style="font-family: Georgia; font-size: 100%; border: 1px solid #FF9900; background-color: #66CC33;">  Avec la balise <pre></pre> le texte apparaît   tel que 
pré-formaté. On arrange notre 
texte   
  à notre convenance et la balise 
le prend    en charge.  C’est 
du WYTIWYG (What You Type Is What You Get) 
en puissance,    hé hé hé.
</pre>

Effet rendu:

  Avec la balise <pre></pre> le texte apparaît   tel que 
pré-formaté. On arrange notre 
texte   
  à notre convenance et la balise 
le prend    en charge.  C’est 
du WYTIWYG (What You Type Is What You Get) 
en puissance,    hé hé hé.

Le style text-indent

La déclaration de la règle de style avec text-indent permet d’indiquer une distance d’indentation pour un texte à imprimer dans le medium concerné.

Exemple:

<p style=" border: 1px solid #FF9900; background-color: #66CC33; text-indent: 30px">La déclaration de la règle de style avec text-indent permet <br />bla bla bla
<p>

Effet rendu:



Le style margin

Avec ce style on réserve une distance qui est une marge à gauche (margin-left) ou à droite (margin-right pour du texte écrit de la droite vers la gauche) de l’élément utilisé. Cette marge est la distance du bord extérieur de l’élément précédent dans le flux normal du document.

Exemple:

<p style="margin-left: 30px">On crée une marge de 30 pixels à gauche pour notre tabulation.</p>

Effet rendu:

On crée une marge de 30 pixels à gauche pour notre tabulation.

On peut combiner les styles text-indent et margin pour la tabulation (c’est même utile pour mimer une liste). Note: J’ai spécifié une bordure en couleur et une couleur de fond pour les tabulations seulement dans le but de les mettre en lumière. Vous pouvez enlever cette partie de code. Vous pouvez également déclarer du style pour gérer la visibilité de la balise <table></table> surtout.

Exemple:

<table style="visibility: hidden;"></table>

Le choix d’une technique peut dépendre

Ce sont là quelques techniques qu’on peut utiliser pour faire de la tabulation dans un document html. Votre choix peut dépendre de votre situation. Si vous êtes sur un système ou une plateforme où vous n’êtes pas autorisé à utiliser votre propre style, il vous reste les éléments html. Anyway, bonne implémentation à vous.

© Copyright 2011-2012. United Kingdom of Love - Tous droits réservés.