224 votes

Pourquoi mes requêtes média CSS3 ne fonctionnent-elles pas sur les appareils mobiles ?

Dans le fichier styles.css, j'utilise des requêtes média, qui utilisent toutes deux une variation de :

/*--[ Normal CSS styles ]----------------------------------*/

@media only screen and (max-width: 767px) {

    /*--[ Mobile styles go here]---------------------------*/
}

Les sites sont redimensionnés selon la disposition que je souhaite dans un navigateur ordinaire (Safari, Firefox) lorsque je réduis la fenêtre, mais la disposition mobile ne s'affiche pas du tout sur un téléphone. Au lieu de cela, je ne vois que le CSS par défaut.

Quelqu'un peut-il m'indiquer la bonne direction ?

3 votes

Quel est ce téléphone portable ? Media Queries est une nouvelle fonctionnalité de CSS, tous les navigateurs de téléphones mobiles ne la supportent pas...

1 votes

iPhone 4 et je fais également des tests sur un téléphone Android (2.2 Froyo) avec une résolution de 320 x 480.

0 votes

En fait, j'ai adopté la requête média suivante sur l'iPhone 4 et cela fonctionne (mais je dois modifier mon CSS pour tenir compte de la résolution supérieure) @media only screen and (-webkit-min-device-pixel-ratio : 2) { }

580voto

redconservatory Points 4848

Ces trois conseils étaient utiles, mais il semble que je doive ajouter une balise méta :

<meta content="width=device-width, initial-scale=1" name="viewport" />

Maintenant, il semble fonctionner à la fois sur Android (2.2) et sur l'iPhone, sans problème...

70 votes

En fait, <meta name="viewport" content="width=device-width, initial-scale=1">.

2 votes

@LukasLukac pourquoi ça ?

0 votes

Convention je parierais @Jon

91voto

The4thIceman Points 2051

N'oubliez pas d'utiliser les déclarations css standard. au-dessus de la requête média ou la requête ne fonctionnera pas non plus.

.edcar_letter{
    font-size:180px;
}

@media screen and (max-width: 350px) {
    .edcar_letter{
        font-size:120px;
    }
}

7 votes

En fait, il faut que vos styles css soient empilés par ordre décroissant de la taille standard à la plus petite. La règle s'applique toujours si vous avez vos requêtes média dans le même fichier.

1 votes

Cela fonctionne pour moi même si je n'ai pas de déclaration css standard pour cette classe.

0 votes

Cela fonctionne pour moi, merci !

22voto

Moin Zaman Points 15424

Je soupçonne le mot-clé only est peut-être le problème ici. Je n'ai aucun problème à utiliser des requêtes média de ce type :

@media screen and (max-width: 480px) { }

21voto

user1290329 Points 116

j'ai utilisé bootstrap dans un site de presse mais il ne fonctionne pas sur IE8, j'ai utilisé le javascript css3-mediaqueries.js mais cela ne fonctionne toujours pas. si vous voulez que votre media query fonctionne avec ce fichier javascript ajoutez screen à votre ligne media query dans css

Voici un exemple :

<meta name="viewport" content="width=device-width" />

<style>
     @media screen and (max-width:900px) {}
     @media screen and (min-width:900px) and (max-width:1200px) {}
     @media screen and (min-width:1200px) {}
</style>

<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
<script type="text/javascript" src="css3-mediaqueries.js"></script>

css Ligne de liaison aussi simple que la ligne ci-dessus.

17voto

dklog79 Points 175

Aujourd'hui, j'ai eu une situation similaire. La requête média ne fonctionnait pas. Au bout d'un moment, j'ai constaté que l'espace après "et" était manquant. Une requête média correcte devrait ressembler à ceci :

@media screen and (max-width: 1024px) {}

2 votes

C'est pourquoi nous avons des validateurs CSS. Cela n'a rien à voir avec ce problème particulier, car le PO a déjà indiqué que les media queries fonctionnent en fait dans les navigateurs non mobiles.

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