CSS, background-repeat distance
Je veux mettre un background-image
mais avec une certaine distance entre les répétitions.
Par exemple, j'ai cette image pour devenir un background-image
:
Et je tiens à corriger les répétitions dans un modèle comme ceci:
Vérifier la JSFiddle aire de jeux
Je suis à la recherche d'un CSS3 solution propre, pas de JS, pas d'éléments supplémentaires, et ainsi de suite. Si je dois utiliser très moderne CSS3 (appuyés par les nations unies) astuces est ok.
Vous devez vous connecter pour publier un commentaire.
Je suppose que le navire a pas mal navigué, mais il y a quand même une solution basée sur les données-URI.
Vous pouvez générer un SVG contenant votre image qui a une taille plus grande que l'image (par exemple pour faire de la marge 60px il suffit de faire une largeur égale à la largeur de l'image (40px) + marge souhaitée (60px) = 100px):
La prochaine étape est l'incorporation de votre image à l'intérieur de la SVG:
Et enfin ajouter ce fichier SVG en tant que background-image avec les données URI:
Voir le jour Violon.
On peut dire que c'est assez gros et sale solution de contournement. Cependant, c'est un pur CSS solution qui ne nécessite pas de création supplémentaire d'éléments HTML /JavaScript. Il a quelques inconvénients:
Possible solution à tous ces problèmes est d'utiliser les préprocesseurs CSS, par exemple Sass. Vous pouvez faire un mixin, par exemple:
Vous pouvez ajouter ici beaucoup de choses, par exemple toutes les autres valeurs de marge, vous pouvez encoder l'image pour l'injecter au lieu de l'écrire manuellement à l'aide de la Boussole, voir, par exemple, cet article pour en savoir plus sur ce processus. Ce qui semble déjà bien mieux et plus confortable à utiliser.
Vous devez utiliser le
space
attribut dans le background-repeat (CSS3)http://www.impressivewebs.com/space-round-css3-background/
Pas tous les navigateurs de le soutenir, et il semble que c'est uniquement pour l'espace vertical de l'échantillon des photos.
Le mieux choisi serait de modifier l'image de fond qu'elle a de l'espace autour de l'image réelle (rembourrage de l'image avec une zone vide)
background-repeat: space
est commetext-align: justify
, il ajuste les espaces entre les images des répétitions de l'élément de taille, mais ne permet pas de définir ces espaces à votre convenance. Modification de la taille de l'image est la solution de contournement dans mon esprit, nous allons voir si quelqu'un vient avec une autre solution.