Bonjour,
Je me trouve actuellement face à un problème de présentation que je n'ai réussi qu'à contourner grâce à javascript. Je suis sûr qu'il doit exister un moyen de le faire joliment en css mais je ne trouve pas donc je viens chercher de l'aide
Déjà, je vous pose la situation avec mon bout de code :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 <!DOCTYPE html> <HTML style="width:100%; height:100%"> <HEAD> <link rel='stylesheet' type='text/css' href='_css_div.css' /> </HEAD> <BODY style="width:100%; height:100%; margin:0; padding: 0; "> <DIV id="d1" style="position:absolute; width:700px; height:500px; left:50px; top:50px ; background-color:lightgrey;"> <DIV id="d2" class="posa w100" style="width:100%; height:50px; top:0px; background-color:lightgreen;"> Partie fixe, height en px. </DIV> <DIV id="d3" class="posa w100" style="height:50px; bottom:0px; background-color:lightgreen;"> Partie fixe, height en px. </DIV> <DIV id="d4" class="posa w100" style="bottom:50px; top:50px; background-color:red;overflow:hidden"> <DIV id="d5" class="posr w100" style="background-color:pink;"> <P style="margin-top:0px">Partie s'adaptant à son contenu.</P> <FIELDSET> <LEGEND>Cadre 1</LEGEND> <INPUT type="text"><BR/> <INPUT type="text"><BR/> <INPUT type="text"> </FIELDSET> <FIELDSET> <LEGEND>Cadre 2</LEGEND> <INPUT type="text"><BR/> <INPUT type="text"><BR/> <INPUT type="text"> </FIELDSET> </DIV> <DIV id="d6" class="posr w100" style="background-color:yellow;overflow:hidden"> <FIELDSET> <LEGEND>Cadre 3</LEGEND> <DIV id="d7" class="posr w100" style="background-color:yellow;overflow:auto"> <TABLE> <TR><TD>c1</TD><TD>l1</TD></TR> <TR><TD>c2</TD><TD>l2</TD></TR> <TR><TD>c3</TD><TD>l3</TD></TR> <TR><TD>c4</TD><TD>l4</TD></TR> <TR><TD>c5</TD><TD>l5</TD></TR> <TR><TD>c6</TD><TD>l6</TD></TR> <TR><TD>c7</TD><TD>l7</TD></TR> <TR><TD>c8</TD><TD>l8</TD></TR> <TR><TD>c9</TD><TD>l9</TD></TR> <TR><TD>c10</TD><TD>l10</TD></TR> <TR><TD>c11</TD><TD>l11</TD></TR> <TR><TD>c12</TD><TD>l12</TD></TR> <TR><TD>c13</TD><TD>l13</TD></TR> <TR><TD>c14</TD><TD>l14</TD></TR> <TR><TD>c15</TD><TD>l15</TD></TR> </TABLE> </DIV> </FIELDSET> </DIV> <DIV id="d7" class="posr w100" style="background-color:blue"> <P style="margin-top:0px">Partie s'adaptant à son contenu.</P> <FIELDSET> <LEGEND>Cadre 4</LEGEND> <INPUT type="text"><BR/> <INPUT type="text"><BR/> <INPUT type="text"> </FIELDSET> </DIV> </DIV> </DIV> </BODY> </HTML>
Code css : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 * { margin: 0; padding: 0; } HTML, BODY { background-color: #dfe9f6; height: 100%; margin: 0px; padding: 0px; } .posa { position: absolute; } .posr { position: relative; } .w100 { width: 100%; }
Ce que j'aimerais faire, c'est avoir une div d1 qui s'adapte en hauteur à son contenu en fonction la hauteur de la div d7 et ceci jusqu'à une certaine limite (600px).
Les div en vert clair ont une hauteur fixée (et impérativement en pixel). Les div rose et bleu ont une hauteur automatiquement de façon à n'afficher que leur contenu.
La div jaune est variable.
Mettons que la somme des hauteurs des différentes div fasse 480 pixel alors d1 fera 480px.
Mettons que la somme des hauteurs des différentes div fasse 650px et dépasse donc la hauteur limite, la div d7 a la hauteur maxi pour que l'ensemble fasse 600px et à un ascenseur pour faire défiler son contenu.
Est ce faisable en pur css?
Merci d'avance et s'il y a des questions, ne pas hésiter
Partager