28172 sujets

CSS et mise en forme, CSS3

Salut, j'ai un probleme de css qui peut etre tout bete mais je n'arrive pas a voir comment m'en sortir.

J'ai mis un premier bloc en full width avec une hauteur et en float left, du coup ce qui vient apres se place automatiquement en dessous.

Je veux faire juste en dessous donc, un bloc en
position: relative;
contenant 2 blocs en
position: absolute;
:
un qui va de
left: 0;
à
right: 500px;

un autre qui fait
width: 500px
et
right: 0;


le probleme est que le conteneur qui est en relative ne prends pas automatiquement la hauteur des 2 blocs qui sont en absolute, sachant que la hauteur des blocs absolute n'est pas connue car elle dépends de ce que l'utilisateur a rentré comme infos. je voudrais alors savoir comment faire pour que le conteneur prenne automatiquement la hauteur des blocs qu'il contient sachant que le
height: auto;
ne marche pas.

Bon je sais pas si c'est tres clair comme explication, c'est la premiere fois que je viens sur un forum en css.

Merci d'avance Smiley biggrin
C'est bon j'ai trouvé une solution sur ce forum sur un autre sujet, j'ai appris qu'on pouvait faire des largeur calculées avec
width: calc(100% - 500px);

Du coup je ne suis pas obligé d'utilisaer le position: absolute et la hauteur s'adapte automatiquement Smiley smile

A plus!
C'est très clair et il n'y a pas à ma connaissance d'autre solution de de connaître la hauteur maximum. On se sert justement de cette techno pour faire un menu déroulant qui "bave" par dessus le reste de la page sans agrandir le conteneur.
J'ai posé récemment une question de ce genre sur ce même forum, mais dans le cas précis j'ai trouvé facilement un contournement.
Si quelqu'un a une réponse je suis preneur...
Es tu bien sûr que tu as absolument besoin que les deux blocs internes soient en position:absolute?
Edit: nos messages se sont croisés. Tu as trouvé comment rendre les blocs en ligne.
Modifié par PapyJP (02 Mar 2015 - 15:13)
avec la fonction de calcul de largeur, je n'ai pas besoin non, j'ai mis les 2 blocs internes en float left simplement avec le bloc de gauche largeur 100% - 500px et le bloc de droite avec en largeur 500px du coup le bloc de droite fait toujours 500px meme si on reduit la taille de l'ecran Smiley smile
benW94 a écrit :
C'est bon j'ai trouvé une solution sur ce forum sur un autre sujet, j'ai appris qu'on pouvait faire des largeur calculées avec
width: calc(100% - 500px);

Du coup je ne suis pas obligé d'utilisaer le position: absolute et la hauteur s'adapte automatiquement Smiley smile
A plus!

Attention la valeur calc n'est pas implémentée par IE8, penser au fall-back en %.
Modifié par Hermann (02 Mar 2015 - 14:53)
Ou alors beaucoup plus simplement et entièrement compatible serait de passer par le contexte de formatage particulier des flottants.
Tu peux très bien aussi passer par un "display: table-cell".
Je ne vois pas l'intérêt, concernant ton premier bloc, de mettre un "float: left" combiné à un "width: 100%", ça revient à un "display: block" qui est le display par défaut des <div>.