Quelle est la différence entre “l'écran” et “écran” dans les media queries?
Quelle est la différence entre screen
et only screen
dans les media queries?
<link media="screen and (max-device-width: 480px)" rel="stylesheet" href="m.css" />
<link media="only screen and (max-device-width: 480px)" rel="stylesheet" href="m.css" />
Pourquoi sommes-nous obligés d'utiliser only screen
? Ne screen
pas en elle-même suffisamment d'informations pour être rendus seulement pour l'écran?
J'ai vu beaucoup de sites sensibles à l'aide de l'une de ces trois façons différentes:
@media screen and (max-width:632px)
@media (max-width:632px)
@media only screen and (max-width:632px)
Vous devez vous connecter pour publier un commentaire.
Examinons vos exemples un par un.
Ce un soit disant pour une fenêtre avec un
max-width
de 632px que vous souhaitez appliquer ces styles. À cette taille, vous serait de parler à propos de quelque chose de plus petit qu'un écran de bureau dans la plupart des cas.Ce un soit disant pour un appareil avec un
screen
et une fenêtre avecmax-width
de 632px appliquer le style. C'est presque identique au précédent, sauf que vous spécifiezscreen
par opposition à la d'autres types de médias les plus courantes autres étantprint
.Voici une citation directement à partir de W3C pour expliquer celui-ci.
Comme il n'existe pas de tel type de média que "seulement", la feuille de style doit être ignoré par les anciens navigateurs.
Voici la lien vers cette citation qui est montré dans l'exemple 9 sur cette page.
J'espère que cela jette une certaine lumière sur les media queries.
EDIT:
Assurez-vous de vérifier @hybrides excellente réponse sur la façon dont le
only
mot-clé est vraiment manipulé.only
mot-clé permet de masquer les feuilles de style à partir des navigateurs plus anciens, voir la réponse de @hybride ci-dessous. Il l'explique très bien.media
attribut de lalink
élément.screen
comme rien énumérées dans les autres types de médias.Ce qui suit est Adobe docs.
Les requêtes de média spécification fournit également le mot-clé
only
, qui est destinée à cacher les requêtes de média à partir de navigateurs plus anciens. Commenot
, le mot-clé doit venir au début de la déclaration. Par exemple:Les navigateurs qui ne reconnaissent pas les media queries s'attendre à une liste séparée par des virgules des types de médias, et la spécification dit qu'ils devrait tronquer chaque valeur immédiatement avant le premier caractère non alphanumérique qui n'est pas un trait d'union. Donc, un vieux navigateur devrait interpréter l'exemple précédent comme ceci:
Parce qu'il n'y a pas de tel type de support seulement, la feuille de style est ignoré. De même, un vieux navigateur devrait interpréter
comme
En d'autres termes, il doit s'appliquer les règles de style pour tous les appareils à écran, même si elle ne sait pas ce que les médias requêtes veux dire.
Malheureusement, c'est à dire de 6 à 8 omis de mettre en œuvre la spécification correctement.
Au lieu d'appliquer les styles pour tous les appareils à écran, il ignore la feuille de style tout à fait.
En dépit de ce problème, il est toujours recommandé de préfixer les requêtes de média avec uniquement si vous souhaitez masquer les styles à partir d'autres, moins navigateurs les plus courants.
Donc, à l'aide de
et
aura le même effet dans IE6-8: tant va empêcher les styles en cours d'utilisation. Ils seront, cependant, être toujours téléchargé.
Aussi, dans les navigateurs qui prennent en charge CSS3 media queries, les deux versions de charger les styles si la fenêtre, la largeur est plus grande que
401px
et le type de média est l'écran.Je ne suis pas entièrement sûr de ce qui les navigateurs qui ne prennent pas en charge CSS3 media queries aurait besoin de la
only
versionpar opposition à
pour s'assurer qu'elle n'est pas interprétée comme
Il serait un bon test pour quelqu'un ayant accès à un appareil de laboratoire.
De style pour de nombreux smartphones avec des écrans plus petits, vous pouvez écrire:
Pour bloquer les navigateurs plus anciens de voir un iPhone ou un téléphone Android feuille de style, vous pouvez écrire:
Lire cet article pour plus http://webdesign.about.com/od/css3/a/css3-media-queries.htm
only
mot-clé dans ce contexte, droite?Réponse par @hybride est très instructif, sauf qu'il n'explique pas le but, comme mentionné par @ashitaka "Que si vous utilisez le Mobile Première approche? Donc, nous avons le mobile CSS d'abord et ensuite utiliser min-largeur de cibler plus grands sites. Nous ne devrions pas utiliser le seul mot-clé dans ce contexte, droite? "
Souhaitez ajouter ici que le but est simplement d'empêcher les non soutenir les navigateurs à utiliser que d'Autres périphériques de style, comme si elle commence à partir de "l'écran" sans qu'elle va le prendre pour écran où comme si elle commence à partir de "seulement" style sera ignoré.
Répondre à ashitaka, considérons cet exemple
Si nous n'utilisons pas de "seulement" il faudra encore travailler en tant que bureau de style sera également utilisé frappant android styles mais avec une surcharge inutile. Dans ce cas, SI un navigateur est non porteurs, il se replie sur la deuxième feuille de Style en ignorant la première.
screen
ici est de définir la taille de l'écran de la requête de média. E. g la largeur maximale de la zone d'affichage est 480px. C'est donc la spécification de l'écran, par opposition aux autres types de médias.only screen
ici est utilisé pour prévenir les anciens navigateurs qui ne prennent pas en charge les requêtes des médias avec les caractéristiques des médias de l'application de la spécifié les styles.