1485 sujets

Web Mobile et responsive web design

Bonjour à tous et à toutes,

J'ai un problème avec un autre site Internet (sur WordPress cette fois-ci) que je développe en local.
J'ai un footer qui est (plutôt) bien positionné sur mon écran.
J'ai voulu voir s'il l'était toujours sur une petite résolution d'écran (320x480).
Evidemment, ça n'était plus le cas. Il était au milieux (verticalement) au lieu d'être en bas.
Heureusement, il y a une "section" Responsive dans la feuille de style du thème. J'ai donc modifié le margin du footer à cet endroit, en mettant d'abord des % au lieu des px (en espérant que ça fonctionne sur d'autres résolutions)...
Voilà ce que ça donne :

footer {

		width: 100%;
        
		left: 0px !important;

		padding: 20px 0px 20px 0px;

		margin: 48% 0px 0px 0px;

		background: rgba(0,0,0,0.8);

		text-align: center;
}


Bon, comme c'était (maintenant) bien positionné en résolution 320x480, j'ai voulu voir sur d'autres résolutions (360x640 768x1024 800x1280...)...
Ah bah, j'ai vu... Plus la résolution augmente, plus mon Footer est haut sur la page
En affichage Paysage, ça marche relativement bien mais en affichage Portrait, c'est la cata.

Comment faire pour que mon Margin prenne en compte de la hauteur de mon écran (quelle que soit la résolution et je dirais même l'orientation) ?
Pourquoi ça ne fonctionne pas quand je mets ma valeur de margin en % (pas plus qu'en auto d'ailleurs, il me semble) ?
Sur un autre forum, un utilisateur faisait des calculs savants pour adapter (entre autre) ses valeurs margin par rapport à l'écran. On ne pourrait pas faire la même chose ici ?

D'avance merci pour votre réponse.
Bonne journée à vous Smiley cligne

P.S : 2 précisions : certains (puristes) pourraient dire que comme je mets
margin: 48% 0px 0px 0px;

je pourrais très bien mettre simplement
margin-top: 48%;

c'est pas faux, sauf que j'ai testé et ça me décale (légèrement) mon footer vers la droite (l'alignement par défaut de mon footer).
De plus, j'ai essayé avec l'unité rem et em à la place de %, mais j'ai le même effet.
@spip93 : Je ne suis pas sûr que vous soyez partit sur une bonne piste. Mais sans page en ligne difficile d'en dire plus...
en gros vous voulez une marge ( marging pas padding) situé en haut ( top ) de votre box model
margin-top : valeur_dynamique  ; 

pour la valeur_dynamique qui est la valeur de retour d'une fonction a part auto et calc() ou du javascript et utiliser une unité relative (em % vw ) à des parents différents je ne vois rien.
peut être explorez box-sizing: border-box | content-box ?
Modifié par 75lionel (07 Jun 2016 - 10:38)
Modérateur
Pour infos
les marges et padding verticaux prennent en reference la largeur et non la hauteur.

https://www.w3.org/TR/CSS2/box.html#margin-properties / https://www.w3.org/TR/CSS2/box.html#padding-properties
w3c a écrit :
<percentage>
The percentage is calculated with respect to the width of the generated box's containing block. Note that this is true for 'margin-top' and 'margin-bottom' as well. /.../ even for 'padding-top' and 'padding-bottom'.

Modifié par gcyrillus (11 Jun 2016 - 20:58)