Dois-je utiliser "border: none" ou "border: 0'?
Laquelle des deux méthodes est conforme aux normes W3C? - Ils tous deux se comportent comme prévu dans les navigateurs?
border: none;
border: 0;
- J'aime ce type de négliger les questions.
Vous devez vous connecter pour publier un commentaire.
Les deux sont valables. C'est votre choix.
Je préfère
border:0
parce que c'est plus court, je trouve cela plus facile à lire. Vous pouvez trouvernone
plus lisible. Nous vivons dans un monde très capable CSS post-processeurs, donc je vous recommande d'utiliser tout ce que vous préférez, puis le lancer à travers un "compresseur". Il n'y a pas de guerre sainte, qui mérite d'être défendue ici.Que tout est dit, si vous êtes à la main par écrit toute votre production CSS, je maintiens —en dépit de la grogne dans les commentaires— il ne fait pas de mal à être conscient de la bande passante. À l'aide de
border:0
sera économiser une quantité infinitésimale de la bande passante. Sur son propre compte que pour très peu, mais si vous faire tous les octets, vous allez faire votre site web plus rapide.Les spécifications CSS2 sont ici. Ces sont en CSS3 mais en aucune manière pertinente à cette.
Vous pouvez utiliser n'importe quelle combinaison de largeur, le style et la couleur.
Ici,
0
définit la largeur,none
le style. Ils ont le même résultat de rendu: rien n'est montré.border:none
est en quelque sorte mieux, mais en utilisant ce que votre raisonnement est défectueux.Ils sont équivalents effet, pointant vers les différentes raccourcis:
Et l'autre..
À la fois le travail, il suffit de choisir un et d'aller avec elle 🙂
border: 0;
est valide.border: 0
n'est PAS le raccourci pourborder-width: 0
. Au lieu de cela, la version courte définit toujours tous les trois propriétés:border-color
,border-style
etborder-width
.Comme d'autres l'ont dit les deux sont valables et fera l'affaire. Je ne suis pas convaincu à 100% qu'ils sont identiques, bien que. 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.
Si bien qu'ils sont tous les deux valides que vous pouvez avoir besoin de garder un œil sur vos styles si elles font en cascade et comme je pense.
border: none
au lieu deborder: 0
.(note: cette réponse a été mis à jour sur 2014-08-01 pour le rendre plus détaillée, plus précise, et pour ajouter un démonstration en direct)
L'expansion de la court et propriétés
Selon CSS2 DU W3C.1 spécification (“valeurs Omises sont fixés à leurs valeurs initiales”), les propriétés suivantes sont équivalentes:
Si ces règles sont les plus précis appliqué aux bordures d'un élément, les frontières ne seront pas affichés, soit en raison de largeur nulle, ou en raison de
hidden
/none
style. Si, au premier regard, ces trois règles look équivalent. Cependant, ils ont un comportement différent lorsqu'il est combiné avec d'autres règles.Bordures d'un tableau du contexte dans l'effondrement des frontières modèle
Lorsqu'une table est rendu à l'aide de
border-collapse: collapse
, puis rendus frontière est partagé entre plusieurs éléments (frontières de l'intérieur sont partagés entre en tant que voisin de cellules; des frontières extérieures sont partagés entre les cellules et la table elle-même; mais aussi des lignes, des groupes de lignes, les colonnes et les groupes partagent des frontières). Le cahier des charges définit certains les règles de la frontière, la résolution des conflits:Donc, dans le tableau contexte,
border: hidden
(ouborder-style: hidden
) aura la priorité la plus élevée et fera de la frontière commune caché, n'importe quoi.Sur l'autre extrémité de l'priorités,
border: none
(ouborder-style: none
) ont la priorité la plus faible, suivie par la zéro-largeur de la bordure (parce qu'il est le plus étroit de la frontière). Cela signifie qu'un valeur calculée deborder-style: none
et un valeur calculée deborder-width: 0
sont essentiellement les mêmes.Règles de cascade et héritage
Depuis
none
et0
affecter des propriétés différentes (border-style
etborder-width
), ils se comportent différemment lorsqu'un règle plus spécifique définit seulement le style ou tout simplement la largeur. Voir Chris répondre pour un exemple.Démonstration en direct!
Voulez voir tous ces cas, en une seule page? Ouvrez le démonstration en direct!
À l'aide de
ne fonctionne pas dans certaines versions de IE.
IE9 est bien, mais dans les versions précédentes, elle affiche la frontière, même si ce style est "aucun".
J'ai vécu cela lors de l'utilisation d'une impression de la feuille de style où je ne voulais pas de frontières sur les zones de saisie.
semble bien fonctionner dans tous les navigateurs.
Vous pouvez simplement utiliser à la fois selon les spécifications fournies par l'Oli.
J'ai toujours utiliser
border:0 none;
.Si il n'y a pas de mal à les spécifier séparément et certains navigateurs va analyser les CSS plus rapide si vous utilisez l'héritage CSS1 appels de la propriété.
Si
border:0;
normalement par défaut le style de bordure pournone
, j'ai cependant remarqué que certains navigateurs imposer leur style de bordure par défaut qui peut étrangement remplacerborder:0;
.J'utilise:
De 8.5.4 dans CSS 2.1:
Si l'une de vos méthodes ont l'air bien.
Bien, de voir avec précision la différence entre
border: 0
etborder: none
nous pouvons faire quelques expériences.Expérience:
Permet de créer trois divs, première dont la frontière ne peut être désactivé en réglant sa largeur à zéro, le second, qui ne peut être désactivée en définissant son style à aucun, et une troisième avec une frontière qui ne peut être "handicapé" par la fixation de sa couleur transparente. Alors que diriez-vous de l'effet de:
border: 0;
border: none;
border: transparent
border-style: solid!important;
border-color: red!important;
border-width: 2px!important;
border-color: red!important;
border-width: 2px!important;
border-style: solid!important;
JS:
CSS:
HTML:
Mes résultats étaient les mêmes dans les deux firefox et chrome:
border: 0;
Semble border-width à0
et border-style denone
, mais pas de modifier la frontière de la couleur;border: none;
Semble être la seule à changer border-style (ànone
);border: transparent;
Semble changer border-color àtransparent
et border-style denone
;Alors que les résultats seront plus que probablement le même (pas de bordure), le 0 et aucun n'est, techniquement, s'adressant à différentes choses.
0 adresses largeur de la bordure et aucun des adresses du style de bordure. Évidemment une frontière de 0 largeur est inexistant donc n'auront donc aucun style.
Toutefois, si plus tard, dans votre feuille de style que vous avez l'intention de remplacer cette, vous serait naturellement plus précisément l'adresse de l'un ou de l'autre. Si je voulais un 3px frontière, qui serait directement primordial border: 0 en ce qui concerne la largeur. Si je voulais une bordure en pointillé, qui serait directement primordial de la frontière: aucun en ce qui concerne le style.
Façon la plus simple de supprimer la frontière avec le css
NOUS DEVRIONS UTILISER FRONTIÈRE 0
Selon mon avis et de l'expérience, je dirais veuillez utiliser Border: 0;
Il est valide et une très bonne raison, parce que chaque fois que nous utilisons la frontière: aucun, je comprends que ça marche, mais pensez à nous à l'aide d'un border, 1px, 2px, 3px etc. Je veux dire que nous sommes en donnant la valeur de nos frontières, est ...px/em/rem droit, donc nous avons besoin d'utiliser border: 0; pour la suppression de la valeur limite, car comme nous le savons, quand nous utilisons background: none; cela signifie que nous sommes enlever l'arrière-plan de fond qui n'est pas une valeur, c'est autre chose.
Grâce
Dans mon point de vue,
border:none
est un travail, mais pas valide w3c standardafin de mieux nous pouvons utiliser
border:0;
border: none
.