Puisque vous avez appris par cœur l'article précédent vous savez comment construire une forme irrégulière à gauche du texte ou à droite : en empilant une série de "lanières" flottées à gauche ou à droite.
Question non résolue : comment faire apparaître une image dans cette forme, dans cette pile de lanières ? Pour l'occasion j'utiliserai une version miniature (120 pixels de large, 150 de haut) de ma poire de démonstration :
Afficher une image comme celle-ci est simple :
<img width="120" height="150" src="http://gnagnagna/PoireMini.png" />
… où "gnagnagna" doit bien sûr être remplacé par le chemin d'accès à l'image. Vous avez déjà fait ce genre de chose, je pense ? Bon, revenons à nos poires et nos lanières et admettons qu'on veuille placer cette poire sur le côté gauche du texte.
Découper l'image
Une première idée est, justement, de découper l'image en bandes horizontales avec votre PhotoBoutique ou analogue préféré. Pour y voir clair je n'ai coupé ici que cinq bandes de 30 pixels de hauteur mais pour un effet agréable il serait plus judicieux de faire 30 bandes de 5 pixels de hauteur… Oui, c'est du boulot.
Ceci fait, on rogne le côté droit de chaque bande en s'arrêtant au premier pixel opaque. Oui, oui, c'est du boulot. On fabrique alors cinq images de 30 pixels de haut et de 30, 97, 115, 118 et 115 pixels de large, respectivement. Nommons-les laniere1.png à laniere5.png. Arrivé à ce point, le plus dur est fait. La suite ressemble beaucoup à ce que nous avons vu dans l'article précédent :
- définir une classe CSS :
.laniere {float:left; clear:left; height:30px; margin:0; padding:0;border:none}
Les margin:0; padding:0;border:none ne sont là que par précaution : il y a peut-être un peu de décoration autour de vos images usuelles. - mettre dans le code HTML, avant le texte "à marges courbes", cinq lignes ressemblant chacune à
<img class="laniere" width="xx" src="http://gnagnagna/laniereN.png" />
Le width de chaque lanière se précise individuellement, à la mimine et sans se tromper. - Voilà.
Si l'on veut placer la poire à droite il faut refaire le rognage des bandes en partant du bord gauche de l'image – et redéfinir la classe CSS, évidemment.
Bilan
Cette méthode n'est pas mauvaise, elle marche et je m'en suis déjà servi… ce qui a montré trois gros défauts :
- le travail de découpe n'est vraiment pas marrant, pour dire le moins ;
- si la hauteur de bande ne convient pas, si l'image est plus agréable en plus clair ou plus foncé, si… il faut tout refaire : le code HTML bien sûr mais aussi toute la trituration d'image ;
- enfin, à l'affichage, on a souvent des surprises : trente ou quarante images, même minuscules, n'arrivent pas instantanément ni simultanément dans le navigateur. Une image où manquent deux ou trois bandes horizontales, ça fait amateur.
Pour toutes ces raisons j'ai cherché à éviter le découpage physique de l'image. Rendez-vous aux prochains articles…
- Exemple de marges courbes
- Pile de flottants
- Découpage de l'image
- <img /> et background-image
- Solution
- Marge de droite