Bordure entre deux colonnes

Petite astuce de rien du tout pour créer une bordure d’un ou plusieurs pixels entre deux colonnes.

C’est difficile à faire ?

Pas vraiment, mais ça se complique quand on souhaite que cette bordure soit toujours de la hauteur de la colonne le plus grande. Faut-il la placer sur le conteneur de gauche ou de droite ?

Solutions

On peut dans un premier temps penser à utiliser la techniques des colonnes factices et placer un background-image sous les colonnes, mais cela présente deux petits soucis :

  • la largeur des colonnes sera alors fixée ;
  • on fait appel à une image alors qu’un simple style CSS pourrait suffire.

Voici la méthode que j’utilise à la place :

<div style="overflow:hidden;height:1%;">
    <div style="float:left;width:200px;border-right:5px solid #000;">
        <p>
            Colonne A.
        </p>
    </div>
    <div style="float:left;width:200px;border-left:5px solid #000;margin-left:-5px;display:inline;">
        <p>
            Colonne B.
        </p>
    </div>
</div>

L’astuce consiste donc à placer deux bordures et à les faire se superposer ensuite via une marge négative de la largeur de la bordure. Simple, mais efficace.


5 commentaires ↓

#1 le Pierrot le 11.15.09 à 11:16

Je fais très rarement des colonnes, mais pourquoi pas ? bon dimanche…

#2 Stéphane Deschamps le 11.16.09 à 14:02

Ah, amusant, je n’y avais pas pensé. J’en suis resté aux colonnes factices, que j’aime bien parce que souvent un simple trait est un peu brutal.

#3 Samuel Le Morvan le 11.18.09 à 14:25

Hé bin, column-rule alors ?

#4 Vincent le 11.18.09 à 18:01

Bin, question support navigateur c’est pas l’extase hein.

Webkit et Mozilla je crois, non ?

#5 Delphine M. le 11.20.09 à 17:34

Hi hi ! Il y a des petits trucs tout bête comme ça auxquels on ne pense pas avant de les lire sur HTML Zen Garden. 😉

Quand je pense que la semaine dernière même je me posais la question (sans vouloir faire des colonnes factices).


Laisser un commentaire

Mise en forme : vous pouvez utiliser la syntaxe Markdown. Vous verrez, c’est chouette !