【发布时间】:2017-06-26 21:53:40
【问题描述】:
我正在设计一个列表,为了与对等元素保持一致,该列表需要位于具有圆角边框的元素中。该列表可能足够高,也可能不足以导致垂直滚动条。
如果我用全圆角设置列表样式,滚动条会遮住圆角,看起来很破:
ul {
border: 2px solid grey;
border-radius: 10px;
overflow-x: hidden;
overflow-y: auto;
max-height: 8em;
}
<ul>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ul>
如果我删除了右侧的圆角,滚动条在出现时看起来是正确的:
ul {
border: 2px solid grey;
border-radius: 10px 0 0 10px;
overflow-x: hidden;
overflow-y: auto;
max-height: 8em;
}
<ul>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ul>
但这意味着当列表太短而无法滚动时,元素看起来不一致。我可以设置overflow-y:scroll 而不是自动,但我宁愿避免总是显示栏。有没有办法设置这个样式,使没有溢出的元素有圆角,但有滚动条的元素没有? (欢迎使用其他解决方案!)
【问题讨论】:
-
你用的是chrome,对吧?第一个示例在 Firefox 中运行。
-
我什至没有想过要检查。它在 Chrome 中坏了,在 IE 和 Edge 中也坏了。 Firefox 能很好地处理这一点很酷(特别是考虑到他们反对自定义滚动条外观的强硬立场),但我真的很喜欢在任何平台上看起来都很好的东西。
标签: css