CSS \ 9 dans la propriété width


209

Qu'est-ce que cela veut dire? Je suppose que c'est un piratage de navigateur, mais je n'ai pas pu trouver exactement ce qu'il fait.

width: 500px\9;

Quelle est la signification de \9?


dans un fichier css .. définition de la largeur d'un élément.
— fait,

pas de doublon exact, mais cette question vous répond: stackoverflow.com/questions/701732/size-in-css-with-slash
— Raptor

ne semble pas être valide dans aucune version CSS, pour autant que je puisse voir ...
— Marc B

Je ne pense pas que cette question se réfère à la même chose.
— bien en fait

6
@Shivan Raptor: Non, ce n'est pas le cas. C'est une question totalement différente.
— BoltClock

Réponses:


290

\9 est un "hack CSS" spécifique à Internet Explorer 7, 8 et 9.

Cela signifie simplement que la seule ligne spécifique de CSS se terminant par un \9;à la place de ;n'est valide que dans IE 7, 8 et 9.

Dans votre exemple,

width: 500px\9;signifie qu'une largeur de 500 pixels (même résultat que width: 500px;) ne sera appliquée que lors de l'utilisation d'IE 7, 8 et 9.

Tous les autres navigateurs ignoreront width: 500px\9;complètement et ne s'appliqueront donc pas du tout width: 500px;à l'élément.

Si votre CSS ressemblait à ceci ...

#myElement {
    width: 300px;
    width: 500px\9;
}

Le résultat serait de #myElement500 pixels de large dans IE 7, 8 et 9, tandis que dans tous les autres navigateurs, il #myElementaurait une largeur de 300 pixels.

Plus d'informations


ÉDITER:

Cette réponse a été écrite en 2011. Il convient maintenant de noter que ce hack fonctionne également dans IE 10.


1
@ jdavid.net, si ça ne casse pas votre CSS, absolument rien, AFAIK.
— Sparky

10
\0au lieu de \9l'appliquera également à IE10
— abc123

21
@ abc123 permet d'espérer qu'ils n'obtiendront jamais IE à la version 16.
— Hoffmann

4
D'après mon expérience, je demandais \9également à IE 10 avec une widthpropriété, au moins en mode d'émulation d'IE. Le mode d'émulation est buggé dans le meilleur des cas, c'est peut-être pourquoi.
— davidjb

1
@davidjb, c'est parce que ce n'est pas vraiment un émulateur. Il a été conçu pour remplacer le code plus ancien.
— Sparky

13

C'est un hack CSS pour IE9 et versions inférieures

écrivez comme ceci:

width: 500px\9;

Lisez cet article http://dimox.net/personal-css-hacks-for-ie6-ie7-ie8/


4
Merci pour le lien, mais l'article n'explique pas ce qu'il fait.
— bien en fait

1
Nous utilisons hack pour IE pour deux choses. 1) il existe des propriétés qui ne sont pas prises en charge par IE comme display: inline-block & 2) Chaque navigateur affiche différemment certaines propriétés HTML et css. consultez cet article blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block
— sandeep

Vérifiez le lien également coding.smashingmagazine.com/2010/06/07/…
— sandeep

IE prend en charge display: inline-block ;, mauvais exemple.
— reisio

Cependant, cela ne semble pas être un hack particulièrement utile pour la propriété 'width'. Du moins pas en dehors du mode bizarreries.
— reisio

2

Dans IE9 pour définir la propriété width, vous ajoutez simplement ce hack.

par exemple

.align {
    float:left;
    margin:5px;
    background-color:blue;
    width:65px;
    width:\9 !important;
}

2

Hack CSS pour IE9

/* Hack CSS IE9 */
.csshackie9 {color:#f00\9\0\;}

7
vous devriez publier plus d'informations sur ce qu'est ce hack au lieu de créer un lien vers l'extérieur - si ce blog a disparu, la valeur de votre réponse diminuerait. De plus, tout le monde ne parle pas russe.
— Marcin Orlowski

1
Il serait préférable de fournir des informations essentielles en anglais, car le lien que vous avez publié est vers le blog russe.
— Artemix

OP, tu devrais te dénoncer et aller t'asseoir sur la marche coquine.
— slugmandrew
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.