我有一个表格(一个日历),并且在每个 td 元素上都有一个 CSS 悬停。我在这个悬停上设置了一个边框,但是它弄乱了单元格的宽度和高度(即新的边框会将下一行稍微向下推,等等)
有什么办法解决这个问题吗?
我有一个表格(一个日历),并且在每个 td 元素上都有一个 CSS 悬停。我在这个悬停上设置了一个边框,但是它弄乱了单元格的宽度和高度(即新的边框会将下一行稍微向下推,等等)
有什么办法解决这个问题吗?
您可以通过在所有 td 元素上使用与 td 背景颜色相同的边框来解决问题,并且只更改边框的颜色(而不是宽度)以获得与您最初设计的效果非常相似的效果,而不会弄乱宽度和高度。
原始边框对用户来说是不可见的,因为它的颜色与背景相匹配。
你可以(如果悬停没有通过过渡平滑)在盒子上有一个填充(比如说 5px),在悬停时你可以添加 2px 的边框并使填充 3px,所以它仍然与 5px 的距离盒子的末端。
CSS 因这样做而臭名昭著,因为“边框”属性不会添加到对象的总高度中。它的行为类似于边距。您可以做的是在 CSS 文件中的 <td> 选择器中添加一些边距规则:
td.hoverable {
border:1px solid #00F;
margin:-1px;
}
这样当您悬停时,新的“边距”规则也会生效,从而将 <td> 的面积减少 1px,这应该允许边框显示。
编辑:哎呀,是的。我的意思是margin:-1px;
:) 谢谢!