【发布时间】:2016-05-02 15:44:06
【问题描述】:
考虑一个位于包含一些内容和垂直滚动条的容器中的自动建议输入:
显示自动建议时,它们应该出现在内容的顶部不会影响容器的滚动条。
我希望得到:
注意滚动条和上面一模一样。
但是,我得到以下信息:
注意滚动条受到影响,建议被剪切。
为什么绝对定位的建议会影响容器的滚动条?
你会如何解决这个问题?
注意事项:
- 滚动容器时,输入和建议应该一起移动。
- 您可以修改 HTML,但输入和建议列表应保留在
.autosuggest内(将.autosuggest视为第三方组件,其 HTML 无法更改,但您可以更改其 CSS)。李> - 如果有帮助,您可以使用 flexbox。
- 我正在寻找纯 CSS 的解决方案。请不要使用 Javascript。
.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>
【问题讨论】:
-
预期结果是什么?容器溢出-y 设置为自动并具有固定高度。自动建议不能让该容器保持原样。删除 overlow 并且滚动消失
-
@charlietfl 我用预期的行为更新了问题。
-
你也可以用代码更新你的问题吗?屏幕截图很好,但您现在应该知道您需要在问题中包含代码。
-
@BoltClock 我在问题中添加了一个代码 sn-p。
-
请问让建议随输入一起滚动的目的是什么? ...不能向下滚动以查看内容,因为建议已经部分隐藏了。
标签: html css overflow css-position