CSS继承填充,然后减少数量

标签 css

我有一个类被添加到网站的各个部分以显示部分是可编辑的。该类名为 .editable

当用户登录后,当他们将鼠标悬停在此类部分上时,该部分周围会显示一个红色虚线边框。

我目前是这样做的:

.editable { /* add padding to act as clear border */
    padding:1px; 
}
.editable:hover { /* remove padding and add border */
    padding:0px; 
    border:1px dashed red 
}

如评论中所示,我添加了 1px 的填充,因此当鼠标悬停时显示边框时,该部分不会“移动”。

当要编辑的部分已经有填充时,就会出现问题。例如

.sectionToBeEdited {
    padding:10px;
}

当我添加 .editable 类时 <div class="sectionToBeEdited editable">blah</div>填充被覆盖。

问题 有没有办法继承填充设置,然后向其添加 1px?然后在悬停时将任何填充减少 1 像素。

我知道另一种方法是将可编辑部分包装在单独的 div 中并在那里应用填充,但这涉及重写和添加大量类和 div。

或者有其他方法吗?

最佳答案

CSS 只能覆盖其值,不支持数学运算。

您可以通过为您的 editable 类使用白色/透明边框而不是填充来解决您的问题。

.editable { /* change border color to something invisible */
    border:1px solid white;
}
.editable:hover { /* make border visible */
    border:1px dashed red;
}

关于CSS继承填充,然后减少数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077232/

相关文章:

html - 为什么将 ul 向右浮动时 div 没有出现在下一行?

html - 创建具有 60% 不同颜色的 CSS3 环

javascript - 中心 table ,即使它比父容器宽

javascript - 为什么 div 的测量宽度与浏览器测量不同?

CSS 别名 : marginTop vs margin-top?

javascript - 为什么文字会压低图片?

聊天的 CSS 溢出值

html - 移动设备上的图库

html - 将鼠标悬停在 div 上时,如何在链接上触发多个悬停操作?

javascript - 如何在窗口滚动时为导航栏设置动画