【发布时间】:2020-05-20 21:29:20
【问题描述】:
我有一些表格,基于divs。当表格行悬停时,我想在它的顶部和底部添加边框。但是尽管有box-sizing: border-box,我的块还是变大了 2 个像素。行不能有固定的高度。
这里是示例:https://jsfiddle.net/j4nwdju6/
我不能只添加不可见或透明的边框,因为它会在行之间产生空白。
【问题讨论】:
-
无法复制。计算出的高度保持不变。
我有一些表格,基于divs。当表格行悬停时,我想在它的顶部和底部添加边框。但是尽管有box-sizing: border-box,我的块还是变大了 2 个像素。行不能有固定的高度。
这里是示例:https://jsfiddle.net/j4nwdju6/
我不能只添加不可见或透明的边框,因为它会在行之间产生空白。
【问题讨论】:
您可以通过调整悬停状态的顶部和底部边距来抵消这一点:
.row:hover {
background: yellow;
border-top: 1px solid black;
border-bottom: 1px solid black;
margin: -1px 0;
}
【讨论】:
为行添加边框,使其在悬停时不会跳跃
.row {
display: flex;
border:1px solid white;
}
【讨论】:
I can't just add invisible or transparent borders, because it will spawn whitespaces between rows..
一个非常简单的技巧是将margin-top: -2px; 添加到:hover 样式中,这样位置就不会改变:JSFiddle。
【讨论】:
margin: -1 0; 将解决该问题 :)
您可以像这样在.row 中添加透明边框
.row {
display: flex;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
}
这不会影响悬停时 div 的高度。
更新
要删除黑白行添加 margin-top:-2px 。检查这个fiddle。
【讨论】:
I can't just add invisible or transparent borders, because it will spawn whitespaces between rows..