636 votes

Dois j’utiliser ' frontière : aucun ' ou ' frontière : 0 ' ?

Laquelle des deux méthodes est conforme aux normes W3C ? Ils ont tous deux se comportent-elles comme prévu dans les navigateurs ?

border : none ;
border : 0 ;

531voto

Oli Points 65050

Soit est valide. Votre choix, mais je serait en faveur d' border:0 que c'est plus court. Si vous avez beaucoup de trafic, vous remarquerez la différence!

Vous semblez être inquiet sur les spécifications. Eh bien ici, ils sont.

'border'
    Value:      [ <border-width> || <border-style> || <'border-top-color'> ] | inherit
    Initial:    see individual properties
    Applies to:     all elements
    Inherited:      no
    Percentages:    N/A
    Media:      visual
    Computed value:     see individual properties 

La valeur indique clairement que vous pouvez utiliser n'importe quelle combinaison de largeur/style/couleur. Dans ce cas, vous devez n'avoir qu'un seul. 0 définit la largeur, none le style.

180voto

Nick Craver Points 313913

Ils sont équivalents, en effet, pointant vers les différents raccourcis:

Et l’autre...

Tous les deux travaillent, juste en choisir un et accompagnent  :)

42voto

Chris Points 15358

Comme d'autres l'ont dit les deux sont valables et fera l'affaire. Je ne suis pas convaincu à 100% qu'ils sont identiques. Si vous avez un peu de style en cascade passait alors qu'ils pourraient, en théorie, produire des résultats différents car ils sont substituant des valeurs différentes.

Par exemple. Si vous réglez "border: none;" et puis plus tard, ont deux styles différents qui remplacent la largeur de la bordure et le style, alors on va faire quelque chose et l'autre non.

Dans l'exemple suivant sur IE et firefox le premier test de deux divs sortir avec pas de frontière. Les deux sont cependant différents avec la première div dans le deuxième bloc de la plaine et de la deuxième div dans le deuxième bloc ayant une largeur moyenne bordure pointillée.

Donc, si ils sont tous les deux valides, vous pouvez avoir besoin de garder un œil sur vos styles si elles font en cascade et comme je pense.

<html>
<head>
<style>
div {border: 1px solid black; margin: 1em;}
.zerotest div {border: 0;}
.nonetest div {border: none;}

div.setwidth {border-width: 3px;}
div.setstyle {border-style: dashed;}

</style>
</head>
<body>

<div class="zerotest">
<div class="setwidth">
"Border: 0" and "border-width: 3px"
</div>
<div class="setstyle">
"Border: 0" and "border-style: dashed"
</div>
</div>

<div class="nonetest">
<div class="setwidth">
"Border: none" and "border-width: 3px"
</div>
<div class="setstyle">
"Border: none" and "border-style: dashed"
</div>
</div>

</body>
</html>

22voto

Kieran Points 91

À l’aide

ne fonctionne pas dans certaines versions d’Internet Explorer. IE9 est très bien, mais dans les versions précédentes, il affiche la frontière même si le style est « none ». J’ai fait l’expérience lorsque vous utilisez une feuille de style impression où je ne voulais pas frontières sur les zones de saisie.

semble fonctionner correctement dans tous les navigateurs.

12voto

Xenni82 Points 61

Vous pouvez utiliser simplement les deux selon les spécifications aimablement fournies par Oli.

J’ai toujours utiliser `` .

Cependant, il n’y a pas de mal à les spécifier séparément et certains navigateurs analysera le CSS plus vite si vous n’utilisez pas les appels de propriété CSS1 hérités.

Bien que sera normalement par défaut le style de bordure à , j’ai cependant remarqué certains navigateurs leur style de bordure par défaut qui peut remplacer étrangement l’application `` .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X