Comment utiliser la propriété shape outside
Si l’on se réfère à la page référence, « La propriété shape-outside
définit une forme (qui peut ne pas être un rectangle) autour de laquelle le contenu en ligne devra « s’écouler ». Cette propriété permet donc de contourner un élément en épousant sa forme. On peut utiliser une valeur avec un mot clé
Une valeur utilisant une fonction :
Une valeur de type url :
Ou enfin une valeur du type gradient :
Mise en forme et pratique
L’utilisation de cette propriété n’est pas forcément simple. Ca l’est si l’on utilise une structure vraiment basique, comme suggéré sur la page css trick.
Voici un exemple d’application :
Le principe est ici assez simple :
On prend une image. A l’origine celle-ci est carrée et fait 200px sur 200px. Je lui applique un border radius de 50% pour lui donner une apparence de cercle.
A la suite je place du texte dans une balise paragraphe.
J’applique un float à l’image, et la propriété shape-outside: circle(50%); Sans le border-radius, vous n’obtiendrez pas l’effet de contour. Le texte sera accolé à l’image. Grâce au border-radius, l’image apparaît arrondie et l’effet du shape-outside est nettement visible.
Utiliser shape-outside en imbriquant les éléments
Dans le deuxième exemple, on utilise le même principe, sauf que l’image est à l’intérieur d’une div, ainsi que le texte. Rien ne change ici, on cible également l’image et on applique le même css. L’effet fonctionne aussi. La difficulté survient lorsqu’on essaye d’utiliser cette propriété avec une mise en page en flex-box. L’effet ne marche plus et il faut donc bien réfléchir à la structure de ses blocs pour l’utiliser;
Utilisation avancée de la propriété shape-outside
Consultez ces deux références pour en savoir plus