Existe-t-il un moyen de positionner une image d'arrière-plan à un certain nombre de pixels à droite de son élément?
Par exemple, pour positionner quelque chose d'un certain nombre de pixels (disons, 10) à partir de la gauche , voici comment je procéderais:
#myElement {
background-position: 10px 0;
}
background-position: -10px 0;
? Je vérifie juste :)Réponses:
J'ai trouvé cette fonctionnalité CSS3 utile:
Pour autant que je sache, cela n'est pas pris en charge dans IE8. Dans le dernier Chrome / Firefox, cela fonctionne bien.
Voir Puis-je utiliser pour plus de détails sur les navigateurs pris en charge.
Source utilisée: http://tanalin.com/en/blog/2011/09/css3-background-position/
Mise à jour :
Cette fonctionnalité est désormais prise en charge dans tous les principaux navigateurs, y compris les navigateurs mobiles.
la source
right
left
top
bottom
. Par exemple, ce qui suit ne sera pas rendu:background-position: right 10px 10px
mais devrait être écrit commebackground-position: right 10px top 10px
Existe-t-il un moyen de positionner une image d'arrière-plan à un certain nombre de pixels à droite de son élément?
Nan.
Les solutions de contournement populaires incluent
margin-right
sur l'élément à la placetop right
la source
La solution la plus simple consiste à utiliser des pourcentages. Ce n'est pas exactement la réponse que vous cherchiez depuis que vous avez demandé une précision en pixels, mais si vous avez juste besoin de quelque chose pour avoir un petit rembourrage entre le bord droit et l'image, donner quelque chose à 99% fonctionne généralement assez bien.
Code:
la source
CSS3 a modifié la spécification de
background-position
afin qu'il fonctionne avec un point d'origine différent. Malheureusement, je ne trouve aucune preuve qu'il est encore implémenté dans les principaux navigateurs.http://www.w3.org/TR/css3-background/#the-background-position Voir l'exemple 12.
la source
Version 21.0.1180.89
Comme proposé ici , c'est une jolie solution multi-navigateur qui fonctionne parfaitement:
Je l'ai utilisé car la fonctionnalité CSS3 de spécification des décalages proposés dans la réponse marquée comme résolvant la question n'est pas encore si bien prise en charge par les navigateurs. Par exemple
la source
La réponse la plus appropriée est la nouvelle syntaxe à quatre valeurs pour la position d'arrière-plan, mais jusqu'à ce que tous les navigateurs la prennent en charge, votre meilleure approche est une combinaison de réponses antérieures dans l'ordre suivant:
la source
Une astuce simple mais sale consiste à simplement ajouter le décalage souhaité à l'image que vous utilisez comme arrière-plan. ce n'est pas maintenable, mais cela fait le travail.
la source
Cela fonctionnera sur la plupart des navigateurs modernes ... à part IE (support du navigateur) . Même si cette page répertorie> = IE9 comme prise en charge, mes tests n'étaient pas d'accord avec cela.
Vous pouvez utiliser la propriété calc () css3 comme ceci;
Pour moi, c'est le moyen le plus propre et le plus logique de réaliser une marge à droite. J'utilise également une solution de rechange
border-right: 10px solid transparent;
pour IE.la source
background-position: 92% 8px; background-position: calc(100% - 12px) 8px;
right 10px center
syntaxe a un support plus étendu dans les navigateurs._
par un-
Ok si je comprends ce que vous demandez, vous feriez cela;
Vous avez votre conteneur DIV appelé
#main-container
et.my-element
qui s'y trouve. Utilisez-le pour commencer;Soit dit en passant, il est préférable d'utiliser des classes si vous faites référence à un élément de niveau inférieur dans une page (je suppose que vous êtes donc mon changement de nom ci-dessus.
la source
La spécification CSS3 autorisant différentes origines pour la position d'arrière-plan est maintenant prise en charge dans Firefox 14 mais toujours pas dans Chrome 21 (apparemment IE9 les prend en charge en partie, mais je ne l'ai pas testé moi-même)
En plus du problème Chrome référencé par @MattyF, il existe un résumé plus succinct ici: http://code.google.com/p/chromium/issues/detail?id=95085
la source
Si vous avez des éléments proportionnés, vous pouvez utiliser:
Dans cet exemple,
.valid
serait la classe avec l'image et.half
serait une ligne avec la moitié de la taille de celle standard.Sale, mais fonctionne comme un charme et c'est raisonnablement gérable.
la source
Si vous souhaitez l'utiliser pour ajouter des flèches / autres icônes à un bouton par exemple, vous pouvez utiliser des pseudo-éléments css?
Si c'est vraiment une image d'arrière-plan pour l'ensemble du bouton, j'ai tendance à incorporer l'espacement dans l'image, et à utiliser simplement
Mais si je dois ajouter par exemple une flèche conçue à un bouton, j'ai tendance à avoir ce html:
Et ont tendance à faire ce qui suit avec CSS:
En utilisant le sélecteur: after, j'ajoute un élément en CSS juste pour contenir cette petite icône. Vous pouvez faire de même en ajoutant simplement une étendue ou un
<i>
élément à l'intérieur de l'élément a. Mais je pense que c'est une façon plus propre d'ajouter des icônes aux boutons et qu'il est compatible avec tous les navigateurs.vous pouvez consulter le violon ici: http://codepen.io/anon/pen/PNzYzZ
la source
content: '';
plutôt que,content:0;
mais c'était une solution utile pour moila source
utiliser le centre à droite comme position puis ajouter une bordure transparente pour la compenser?
la source
Si vous avez un élément à largeur fixe et connaissez la largeur de votre image d'arrière-plan, vous pouvez simplement définir la position d'arrière-plan sur: la largeur de l'élément - la largeur de l'image - l'écart que vous voulez à droite.
Par exemple: avec un élément de 100 pixels de large et une image de 300 pixels de large, pour obtenir un écart de 10 pixels à droite, vous le définissez sur 100-300-10 = -210 px:
Et vous obtenez les 80 pixels les plus à droite de votre image à gauche de votre élément, et un écart de 20 pixels à droite.
Je sais que ça peut sembler stupide mais parfois ça fait gagner du temps ... J'utilise ça beaucoup de manière verticale (écart en bas) pour les liens de navigation avec du texte en dessous de l'image.
Je ne sais pas si cela s'applique à votre cas.
la source
mon problème était que j'avais besoin de l'image d'arrière-plan pour rester à la même distance de la bordure droite lorsque la fenêtre est redimensionnée, c'est-à-dire pour tablette / mobile, etc. Ma solution consiste à utiliser un percenatge comme ceci:
et il reste en place.
la source
Oui! bien pour positionner une image d'arrière-plan comme si 0px du côté droit du navigateur au lieu de la gauche - j'utilise:
la source