1485 sujets

Web Mobile et responsive web design

Hello !

Je me demande pourquoi, lorsque j'inspecte avec dev tools en mode ipad par exemple un site que je suis entrain de réaliser, dev tools indique juste au-dessus de celui-ci la résolution de 1024 x 768, alors que dans la fenêtre Style, il me charge un @media (max-width: 1360px) au lieu du @media (min-width: 768px) and (max-width: 1024px) que j'ai définis ?!
Voire des fois le media n'est pas chargé du tout...
Bug or not?
Bonjour Foebb,

A mon avis aucun bug, juste les délimitations qui ne sont pas franches. Ainsi tu as des valeurs qui se chevauches de fait le navigateur hésite à charger les propriétés. En gros il y a va au petit bonheur la chance et s'il est pas trop bête tape dans le mille.

Essaie en définissant une largeur minimale ET maximale dans tes requêtes sur le media en veillant à ce qu'il n'y ai pas de chevauchement et normalement tes problèmes devraient se résoudre d'eux-mêmes.
Greg_Lumiere a écrit :
Bonjour Foebb,

A mon avis aucun bug, juste les délimitations qui ne sont pas franches. Ainsi tu as des valeurs qui se chevauches de fait le navigateur hésite à charger les propriétés. En gros il y a va au petit bonheur la chance et s'il est pas trop bête tape dans le mille.

Essaie en définissant une largeur minimale ET maximale dans tes requêtes sur le media en veillant à ce qu'il n'y ai pas de chevauchement et normalement tes problèmes devraient se résoudre d'eux-mêmes.


Ah oui ok, je n'avais effectivement pas pensé à ça..
Et de quelle manière puis-je vérifier les chevauchement sans relire tout le code? Y a t'il un outil dispo?
D'avance merci
foebb a écrit :

Et de quelle manière puis-je vérifier les chevauchement sans relire tout le code? Y a t'il un outil dispo?
Aucun à ma connaissance.

Par contre, pour t'aider dans ta gestion de tes media-queries, tu peux utiliser le visualiseur inclus dans Firefox. Celui-ci permet de redimensionner la zone d'affichage et de constater en temps réel l'application des paramètres inclus dans tes media-queries.
Pour ce faire, appuie simultanément sur MAJ + F7 : cette action ouvre le module Développement sur l'onglet Feuilles de style.
En haut à droite de ce bandeau, se trouve l'icône Vue adaptative (1 ensemble de 3 carrés gigognes).
Ensuite tu peux (si tu le souhaite) refermer le bandeau développement.

Tu peux aussi t'aider de la partie Inspecteur (bandeau Développement) qui pour chaque élément du DOM te ressort la liste des propriétés Css appliquées (effectivement ou annulées) ; cela inclus aussi les media-queries.

En compilant tout ça tu devrais y voir le jour rapidement si tant est que ton code soit bien organisé.

De plus une bonne vérification te mettra sûrement en lumière des doublons ou des non-desiderata que tu pourras corriger dans la foulée (des bergamottes Smiley cligne ).


Pour ma part, j'ai combiné tout ceci avec une feuille de papier et un stylo. Les vieilles méthodes fonctionnent toujours aussi bien Smiley langue


Edit : Je parle ici de Firefox, c'est un réflexe lié à mes habitudes mais il existe les mêmes outils sur (tous ?) les autres navigateurs.
Modifié par Greg_Lumiere (29 Apr 2016 - 12:52)
Greg_Lumiere a écrit :
Bonjour Foebb,

A mon avis aucun bug, juste les délimitations qui ne sont pas franches. Ainsi tu as des valeurs qui se chevauches de fait le navigateur hésite à charger les propriétés. En gros il y a va au petit bonheur la chance et s'il est pas trop bête tape dans le mille.

Essaie en définissant une largeur minimale ET maximale dans tes requêtes sur le media en veillant à ce qu'il n'y ai pas de chevauchement et normalement tes problèmes devraient se résoudre d'eux-mêmes.


En fait, quand tu parles de délimitations et chevauchement, ce sont celles des medias quaries ou des div? j'ai un doute d'un coup...
Je parlais des media-queries. C'était bien ça le sujet de base ?

Il va de soit que ton Html doit lui aussi être parfaitement correct (rhô le gros pléonasme).

Qu'on ne mélange pas tout. Tu viens avec une question de Css, le Css se construit en aval du Html donc cela présuppose que ton Html est sur pied, tu l'a vérifié et est syntaxiquement correct autrement le Css, malgré ses super-pouvoirs, ne pourra rien pour toi l'ami.

Tu viens me parler de "div imbriquées"... Si elles sont bien formées, elles ne provoqueront aucune erreur. Seulement veille à ce qu'elles soient bien toutes fermées.
Ceci est valable pour toute balise.

Attention toutefois
<div>
 <div>
 </div>
</div>
<!-- est CORRECT -->

<div>
 <div>
</div>
<div>
</div>
<!-- est INCORRECT : une div n'est pas fermée -->

<div>
 <div>
</div>
 </div>
<!-- est CORRECT : mais l'indentation est mal faite -->

<div>
 <div>
 </div>
</span>
<!-- est INCORRECT : une balise span fermante ne peut s'accoupler avec une div ouvrante -->

<div>
 <div>
  <div>
   <div>
   </div>
  </div>
 </div>
</div>
<!-- est CORRECT -->


<!-- => des exemples avec uniquement des Div mais ceci est valable pour toutes les autres balises : une balise ouvrante appelle une balise fermante de même type et de même niveau (j'en ouvre X, j'en ferme X et pas y. -->



Pour tes media-queries, tu devras avoir quelques chose qui ressemble à ceci (PS: les valeurs ne servent qu'à servir l'exemple, ce qui est important est la mécanique) :
- taille d'affichage < 320px (a)
- taille comprise entre 320 et 720px (b)
- taille comprise entre 720 et 1024px (c)
- taille comprise entre 1024 et 1550px (d)
- taille > 1550px (e)
Ca c'est ton schem de base. Ensuite bien sûr tu peux ajouter des media-querie qui vont chevaucher tes précédentes déclaration. Ceci est faisable si tant est que tu ne touche pas aux mêmes propriétés que précédemment.
Donc tu pourrais très bien ajouter un :
- taille comprise entre 400 et 800px Si tu ne vise pas les mêmes propriétés que (b) et (c).

Tu vois le principe ?


Bon aller je suis d'humeur je le transcris en css
@media all and (max-width: 320px) {
 body { /* instructions */ }
}
@media all and (min-width: 321px) and (max-width: 720px) {
 body { /* instructions */ }
}
@media all and (min-width: 721px) and (max-width: 1024px) {
 body { /* instructions */ }
}
@media all and (min-width: 1025px) and (max-width: 1550px) {
 body { /* instructions */ }
}
@media all and (min-width: 1551px) {
 body { /* instructions */ }
}
/* Imaginons qu'à ce stade tu ai arrangé ton design général */

@media all and (min-width: 400px) and (max-width: 800px) {
 .fioritures { /* instructions */}
}
<!-- rien ne t'empeche d'ajouter d'autre délimiteurs tant que tes instructions ne concernent pas ton design général -->

Modifié par Greg_Lumiere (29 Apr 2016 - 14:53)