28112 sujets

CSS et mise en forme, CSS3

upload/1662908882-62242-navigateur-firefox.gif Bonjour à vous tous,

Je suis confronté à un comportement étrange du navigateur Chrome en mode affichage smartphone. Les logos n'ont pas tous les mêmes tailles alors que les fichiers ont le même format (GIF), la même taille (1 cm x 1 cm) et la même résolution (72 px). Je ne sais pas comment lier les images importées, alors je vous donne les captures écran que j'ai faites.

Les logos :
upload/1662908862-62242-navigateur-chrome.gif
upload/1662908909-62242-navigateur-firefox.gif
upload/1662908927-62242-navigateur-ie.gif
upload/1662908943-62242-navigateur-opera.gif
upload/1662908958-62242-navigateur-safari.gif

Affichage smartphone :
upload/1662908513-62242-capture.png

Affichage écran d'ordinateur de bureau :
upload/1662908660-62242-capture1.png

Savez-vous pourquoi les logos ont des tailles différentes en mode smartphone ? C'est un bug du navigateur dans ce mode d'affichage ?

Merci pour votre aide,
que le code soit avec vous !

Voilà le code HTML :
<!DOCTYPE html>
<html lang="fr">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta name="viewport" content="width=500, initial-scale=1">
	<link href="styles2.css" type="text/css" rel="stylesheet">
	<title>Tableau</title>
</head>
<body class="marge_bas">
	<section>
		<article>
			<div class="container_blanc">
				<table class="compatible">
					<tr>
						<td class="sans_trait">dfgsdfg</td>
						<td><img src="navigateur-chrome.gif" alt="Pictogramme du navigateur Chrome" class="logo_grand"><br>Chrome</td>
						<td><img src="navigateur-ie.gif" alt="Pictogramme du navigateur Edge" class="logo_grand"><br>Edge</td>
						<td><img src="navigateur-firefox.gif" alt="Pictogramme du navigateur Firefox" class="logo_grand"><br>Firefox</td>
						<td><img src="navigateur-opera.gif" alt="Pictogramme du navigateur Opera" class="logo_grand"><br>Opera</td>
						<td><img src="navigateur-safari.gif" alt="Pictogramme du navigateur Safari" class="logo_grand"><br>Safari</td>
					</tr>
				</table>
			<div>
		</article>
	</section>
	</section>
</body>
</html>


Le code CSS :
.compatible{
	border-collapse: collapse;
	width: 100%;
}

@media only screen and (min-device-width : 320px) and (max-device-width : 480px) {
	.compatible{
		font-size: 1.4em;
	}
	.compatible, td{
		padding: 20px 0;
		font-size: 1.05em;
	}
	.logo_grand{
		width: 30%;
		height: auto;
	}
}

Modifié par ObiJuanKenobi (11 Sep 2022 - 17:11)
Modérateur
Bonjour,

1) Si tu mets l'instruction concernant .logo_grand en dehors du @media, ça donne quoi sur smartphone et ça donne quoi sur ordinateur de bureau ?

2) Mets les images dans une page que l'on pourrait consulter.

Amicalement,
1) En dehors de @media, les logos s'affichent avec la même taille entre eux.

2) Je ne sais pas comment publier la structure HTML, la mise en forme CSS et les liens des images (accompagnés des images). Tu connais un site web qui permet de tout afficher ?
Modifié par ObiJuanKenobi (13 Sep 2022 - 09:25)
Modérateur
Bonsoir.

tu indique width: 30%; pour les images dans un tableau en width:100% , et le résultat en réduisant la largeur de la fenêtre est selon ton code normal. Si tu reduis encore plus ta fenêtre , tu verras le tableau débordé malgré le width:100%.

Pourquoi ?
Pour comprendre il faut savoir comment un tableau se comporte :
https://developer.mozilla.org/fr/docs/Web/CSS/table-layout

le table-layout va donc determiner de quel façon l'algorithme va afficher le tableau et calculer sa largeur , ainsi que celle de ces cellules.

Une fois que tu as lu et compris, tu remarqueras que la cellule contenant le mot edge est celle qui nécessite le moins d'espace en largeur ( l'image à 30% n'interfere pas) , du coup, comme un tableau s'adapte par défaut à son contenu, en réduisant la largeur de celui-ci, il compressera ces cellules autant qu'il peut.

Bon , maintenant, tu veut toutes les cellules de la même largeur et le tableau en width:100%. Il te suffit de faire un reset sur : table-layout:fixed sans donner de largeur au cellule, mais uniquement au tableau. (il y a des chances alors que certains textes débordent des cellules) voir l'exemple interactif de la page cité plus haut.

cdt
Meilleure solution