Prenons l'exemple d'une entrée autosuggest située dans un conteneur avec du contenu et une barre de défilement verticale :
Lorsque les suggestions d'autosuggestion sont affichées, elles doivent apparaître en haut du contenu. sans affecter la barre de défilement du conteneur .
Je m'attends à recevoir :
Notez que la barre de défilement est exactement la même que ci-dessus.
Mais, j'obtiens ce qui suit :
Notez que la barre de défilement est affectée, et que les suggestions sont coupées.
Pourquoi les suggestions positionnées affectent-elles absolument la barre de défilement du conteneur ?
Comment réparer cela ?
Notes :
- Lorsque vous faites défiler le conteneur, l'entrée et les suggestions doivent se déplacer ensemble.
- Vous êtes autorisé à modifier le HTML, mais l'entrée et la liste de suggestions doivent rester à l'intérieur.
.autosuggest
(considérer.autosuggest
comme un composant tiers dont le HTML ne peut être modifié, mais dont vous pouvez modifier le CSS). - Vous pouvez utiliser le système Flexbox, si cela peut vous aider.
- Je cherche une solution uniquement en CSS. Pas de Javascript s'il vous plaît.
.container {
height: 100px;
width: 300px;
margin-top: 50px;
overflow-y: auto;
border: 1px solid black;
}
.autosuggest {
position: relative;
width: 250px;
}
.input {
font-size: 16px;
width: 230px;
padding: 5px 10px;
border: 0;
background-color: #FFEBBF;
}
.suggestions {
list-style-type: none;
margin: 0;
padding: 5px 10px;
width: 230px;
background-color: #85DDFF;
position: absolute;
}
.content {
width: 120px;
padding: 5px 10px;
}
<div class="container">
<div class="autosuggest">
<input class="input" type="text" value="input">
</div>
<div class="content">
content content content content content content content content content content
</div>
</div>
<div class="container">
<div class="autosuggest">
<input class="input" type="text" value="input">
<ul class="suggestions">
<li>suggestion 1</li>
<li>suggestion 2</li>
<li>suggestion 3</li>
<li>suggestion 4</li>
<li>suggestion 5</li>
<li>suggestion 6</li>
<li>suggestion 7</li>
<li>suggestion 8</li>
<li>suggestion 9</li>
</ul>
</div>
<div class="content">
content content content content content content content content content content
</div>
</div>
0 votes
Quels sont les résultats attendus ? Le conteneur overflow-y est réglé sur auto et a une hauteur fixe. Les suggestions d'auto ne peuvent pas laisser ce conteneur tel quel. Retirez l'overlow et le scroll disparaît.
0 votes
@charlietfl J'ai mis à jour la question avec le comportement attendu.
0 votes
Pouvez-vous également mettre à jour votre question avec le code ? Les captures d'écran sont bien, mais vous devriez savoir maintenant que vous devez inclure le code dans la question.
0 votes
@BoltClock J'ai ajouté un extrait de code à la question.
0 votes
Puis-je demander à quoi sert le fait que les suggestions défilent avec les entrées ? ... Ce ne peut pas être pour faire défiler vers le bas pour voir le contenu, puisque les suggestions le cachent déjà partiellement.