html - 如何用子元素覆盖设置了“边框和溢出隐藏”的元素的边框
问题描述
我写了这么一段代码,但是指定子元素position: absolute
的边框并没有和父元素的边框重叠。
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.lists {
position: relative;
overflow: hidden;
height: 60px;
border-top: 15px solid green;
}
.list {
position: absolute;
top: -15px; /* .items border width */
}
.items+.items {
border-left: 1px solid white;
}
.items {
float: left;
width: 20vw;
height: 60px;
border-top: 15px solid black; /* overlap this border! */
background: red;
}
<div class="lists">
<ul class="list">
<li class="items">text</li>
<li class="items">text</li>
<li class="items">text</li>
<li class="items">text</li>
<li class="items">text</li>
<li class="items">text</li>
</ul>
</div>
根据 W3C的说法,溢出隐藏认为存在隐藏边界的可能性。
该值表示该框的内容被剪切到其填充框内,并且UA不得提供任何滚动用户界面来查看剪切区域之外的内容,也不允许通过用户直接干预进行滚动,例如在触摸屏上拖动或使用鼠标上的滚轮。
实际上,当我删除溢出时,我得到了理想的行为。
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.lists {
position: relative;
/* this property removed overflow: hidden; */
height: 60px;
border-top: 15px solid green;
}
.list {
position: absolute;
top: -15px; /* .items border width */
}
.items+.items {
border-left: 1px solid white;
}
.items {
float: left;
width: 20vw;
height: 60px;
border-top: 15px solid black; /* overlap this border! */
background: red;
}
<div class="lists">
<ul class="list">
<li class="items">text</li>
<li class="items">text</li>
<li class="items">text</li>
<li class="items">text</li>
<li class="items">text</li>
<li class="items">text</li>
</ul>
</div>
但是,我想设置溢出:隐藏。这个问题是由溢出属性引起的吗?如何解决这个问题?提前致谢...
解决方案
这似乎有效:https ://jsfiddle.net/04wzq396/2/
问题是,如果您对同一元素使用position
和overflow
属性,则只能将子元素弹出其边界之外position: fixed;
(相对于视口)。position: absolute;
以类似的方式工作,但它相对于其第一个定位的祖先放置元素。
所以这里的解决方案是为溢出的元素添加一个容器并将位置属性移到那里。如果随后top
将元素的属性.list
从 -15 增加到 0,则绿色边框将不再可见。
推荐阅读
- opencv - 使用 OpenCV 的 DNN 库加载 yolov3 时出现“未知层类型:net in function”
- reactjs - 父元素聚焦时元素的 getComputedStyle
- python - 我应该使用一个类来定义将使用相同参数的函数,还是应该使用全局变量?
- maven - java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling
- material-ui - 继续使用 Material-UI 0.20.1 意味着什么?
- javascript - 有条件地在 Gatsby 中导入组件以获得非常动态的模板
- angular - 引导程序不以角度 7 呈现
- excel - 如何将每个单独的 excel 行导出到自己的单独 csv 文件?
- c# - 动态生成列时,如何修复 DataGrid 中缺少的行显示?
- php - FosUserBundle 模拟外部