J'ai fait des recherches sur les requêtes multimédias et je ne comprends toujours pas comment cibler des appareils de certaines tailles.
Je veux pouvoir cibler les ordinateurs de bureau, les tablettes et les mobiles. Je sais qu'il y aura des divergences mais ce serait bien d'avoir un système générique qui puisse être utilisé pour cibler ces appareils.
Quelques exemples que j'ai trouvés:
# Mobile
only screen and (min-width: 480px)
# Tablet
only screen and (min-width: 768px)
# Desktop
only screen and (min-width: 992px)
# Huge
only screen and (min-width: 1280px)
Ou:
# Phone
only screen and (max-width:320px)
# Tablet
only screen and (min-width:321px) and (max-width:768px)
# Desktop
only screen and (min-width:769px)
Quels devraient être les points d'arrêt pour chaque appareil?
css
mobile
media-queries
tablet
betamax
la source
la source
Réponses:
IMO ce sont les meilleurs points d'arrêt:
Edit : affiné pour mieux fonctionner avec les grilles 960:
Dans la pratique, de nombreux concepteurs convertissent les pixels en ems, les b / c ems offrant généralement un meilleur zoom. Au zoom standard
1em === 16px
. Multipliez les pixels par1em/16px
pour obtenir des ems. Par exemple,320px === 20em
,.En réponse au commentaire,
min-width
est standard dans la conception "mobile-first", dans laquelle vous commencez par concevoir pour vos plus petits écrans, puis ajoutez des requêtes multimédias sans cesse croissantes, vous faisant avancer sur des écrans de plus en plus grands. Peu importe si vous préférezmin-
,max-
ou des combinaisons de ceux-ci, soyez conscient de l'ordre de vos règles, en gardant à l'esprit que si plusieurs règles correspondent au même élément, les règles ultérieures remplaceront les règles précédentes.la source
min-width: 320px
CSS ne remplace lemin-width: 801px
?Ne ciblez pas des appareils ou des tailles spécifiques!
La sagesse générale n'est pas de cibler des appareils ou des tailles spécifiques , mais de recadrer le terme «point d'arrêt»:
Vous pouvez utiliser responsivepx.com pour trouver les points d'arrêt «naturels», comme dans «les points d'arrêt sont morts» par Marc Drummond .
Utilisez des points d'arrêt naturels
Les «points d'arrêt» deviennent alors le point réel auquel votre conception mobile commence à «casser», c'est-à-dire à cesser d'être utilisable ou visuellement agréable. Une fois que vous avez un bon site mobile fonctionnel, sans requêtes multimédias, vous pouvez cesser de vous préoccuper des tailles spécifiques et simplement ajouter des requêtes multimédias qui gèrent des fenêtres successivement plus grandes.
Si vous n'essayez pas d'épingler un dessin à une taille d'écran exacte, cette approche fonctionne en supprimant la nécessité de cibler des appareils spécifiques . L' intégrité de la conception elle-même à chaque point d'arrêt garantit qu'elle tiendra à n'importe quelle taille. En d'autres termes, si un menu / une section de contenu / tout ce qui cesse d'être utilisable à une certaine taille, créez un point d'arrêt pour cette taille , pas pour une taille de périphérique spécifique.
Voir le post de Lyza Gardner sur les points d'arrêt comportementaux , ainsi que le post de Zeldman sur Ethan Marcotte et comment la conception de sites Web réactifs a évolué à partir de l'idée initiale.
Utiliser le balisage sémantique
De plus, le plus simple et plus sémantique de la structure DOM avec
nav
,header
,main
,section
,footer
etc. ( en évitant abominations commediv class="header"
avec internes imbriquésdiv
balises) plus il sera de réactivité ingénieur, évitant notamment des flotteurs en utilisant CSS Grid Layout (Sarah Drasner générateur de grille est un excellent outil pour cela) et flexbox pour organiser et réorganiser selon votre plan de conception RWD.la source
Si vous souhaitez cibler un appareil, écrivez simplement
min-device-width
. Par exemple:Pour iphone
Pour tablettes
Voici quelques bons articles:
la source
@media only screen and (min-device-width: 1024){}
ou quelque chose comme ça pour remplacer ces changements. Alternativement, vous pouvez le faire@media only screen and (MAX-device-width: 1024){}
si vous avez commencé avec une conception de bureau et que vous souhaitez apporter des modifications uniquement aux choses inférieures à 1024.J'ai utilisé ce site pour trouver la résolution et développé CSS par nombre réel. Mes chiffres varient un peu par rapport aux réponses ci-dessus, sauf que mon CSS frappe réellement les appareils souhaités.
Aussi, ayez ce morceau de code de débogage juste après votre requête multimédia, par exemple:
Ajoutez cet élément de débogage dans chaque requête média unique et vous verrez quelle requête a été appliquée.
la source
Les meilleurs points d'arrêt recommandés par Twitter Bootstrap
la source
Requêtes multimédias pour les points d'arrêt de périphérique courants
la source
la source
Ce n'est pas une question de nombre de pixels, c'est une question de taille réelle (en mm ou pouces) de caractères à l'écran, qui dépend de la densité des pixels. Par conséquent, "min-width:" et "max-width:" sont inutiles. Une explication complète de ce problème est ici: quel est exactement le ratio de pixels de l'appareil?
Les requêtes "@media" prennent en compte le nombre de pixels et le ratio de pixels de l'appareil, ce qui se traduit par une "résolution virtuelle" qui est ce que vous devez réellement prendre en compte lors de la conception de votre page: si votre police est de largeur fixe 10px et la " résolution horizontale virtuelle "est de 300 px, 30 caractères seront nécessaires pour remplir une ligne.
la source
De nos jours, la chose la plus courante est de voir des appareils à écran rétinien, en d'autres termes: des appareils avec des résolutions élevées et une densité de pixels très élevée (mais généralement inférieure à 6 pouces de taille physique). C'est pourquoi vous aurez besoin de retina afficher des requêtes multimédias spécialisées sur votre CSS. Voici l'exemple le plus complet que j'ai pu trouver:
Source: site Web CSS-Tricks
la source
Étant donné qu'il existe de nombreuses tailles d'écran variables qui changent toujours et qui changeront probablement toujours la meilleure façon de procéder est de baser vos points d'arrêt et vos requêtes multimédias sur votre conception.
La façon la plus simple de procéder consiste à saisir la conception de votre bureau et à l'ouvrir dans votre navigateur Web. Rétrécissez lentement l'écran pour le rétrécir. Observez pour voir quand le design commence à "casser" ou a l'air horrible et exigu. À ce stade, un point d'arrêt avec une requête multimédia serait requis.
Il est courant de créer trois ensembles de requêtes multimédias pour ordinateur, tablette et téléphone. Mais si votre conception semble bonne sur les trois, pourquoi s'embêter avec la complexité de l'ajout de trois requêtes multimédias différentes qui ne sont pas nécessaires. Faites-le au besoin!
la source
Une fonctionnalité supplémentaire est que vous pouvez également utiliser des requêtes media dans l' attribut media de la
<link>
balise.Avec cela, le navigateur télécharge toutes les ressources CSS, quel que soit l' attribut média . La différence est que si la requête multimédia de l'attribut multimédia est évaluée à false, ce fichier .css et son contenu ne seront pas bloqués au rendu.
Par conséquent, il est recommandé d'utiliser l' attribut media dans la
<link>
balise car il garantit une meilleure expérience utilisateur.Ici, vous pouvez lire un article Google sur ce problème https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-blocking-css
Quelques outils qui vous aideront à automatiser la séparation de votre code CSS dans différents fichiers en fonction de vos requêtes multimédias
Webpack https://www.npmjs.com/package/media-query-plugin https://www.npmjs.com/package/media-query-splitting-plugin
PostCSS https://www.npmjs.com/package/postcss-extract-media-query
la source
Le comportement ne change pas sur le bureau. Mais sur les tablettes et les mobiles, j'agrandis la barre de navigation pour couvrir la grande image du logo. Remarque: Utilisez la marge (haut et bas) autant que nécessaire pour la hauteur de votre logo.
Pour mon cas, le haut et le bas 60px ont parfaitement fonctionné!
Vérifiez la barre de navigation ici .
la source
la source
J'utilise le suivant pour faire mon travail.
la source
la source