Bonjour à tous.
Pour réaliser des mises en formes personnalisées, j'ai remplacé un <select><option> par un système basé sur du css :
Code : 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 .select { display:flex; flex-direction: column; position:relative; height:23px; } .option { padding:0 45px 0 20px; min-height:20px; display:flex; flex-direction: row; justify-content: space-between; background: var(--primary); position:absolute; top:0; width: 100%; pointer-events:none; order:2; z-index:11; transition:background .4s ease-in-out; box-sizing:border-box; overflow:hidden; white-space:nowrap; } .option:hover { background:#666; } .select:focus .option { position:relative; pointer-events:all; } .input { opacity:0; position:absolute; left:-99999px; } .input:checked + label { order: 1; z-index:12; background: var(--secondary); border-top:none; position:relative; } .input:checked + label:after { content:''; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid black; position:absolute; right:10px; top:calc(50% - 2.5px); pointer-events:none; z-index:13; } .input:checked + label:before { position:absolute; right:0; height: 40px; width: 40px; content: ''; background: var(--secondary); }Le résultat est satisfaisant, sauf sur un point : si je l'applique à une liste d'options trop importante, l'affichage vertical dépasse la hauteur de la fenêtre du navigateur, ce qui n'est pas très esthétique.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <div class='select' tabindex='1'> <input class='selectopt input' name='liste' type='radio' value='0' id='opt0' checked disabled><label for='opt0' class='option'>Sélectionner</label> <input class='selectopt input' name='liste' type='radio' value='1' id='opt1'><label for='opt1' class='option'>Machin <i class='bi bi-images fs-2' ></i></label> ... </div>
D'où la question : est-il possible, dans cette configuration, de limiter la hauteur de l'affichage de la liste des options.
En vous remerciant pour votre aide, et bien cordialement.
JD
Partager