css - 在悬停时添加边框会扩展元素

标签 css

我有这个设置:

<div class="outer" id="elem1">Lorem ipsum dolor sit amet</div>

.outer {
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box;    
    box-sizing: border-box; 
}
#elem1{
    position:absolute;
    top:0px;
    left:0px;
    background:#ccc;
    color:white;
    padding:5px;
 }
.chover{
    border: 1px solid red;
}

正如您在悬停时看到的,元素大小会扩大,我正在努力防止这种情况发生:

http://jsfiddle.net/nVaE9/38/

最佳答案

可以给.outer添加透明边框

.outer {
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box;    
    box-sizing: border-box; 
    border: 1px solid transparent;
}

然后将替换为相同宽度的红色边框。


尽管不用 jQuery 也可以实现:

.outer {
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box;    
    box-sizing: border-box; 
    border: 1px solid transparent;
}
#elem1 {
    position:absolute;
    top:0px;
    left:0px;
    background:#ccc;
    color:white;
    padding:5px;

}
.outer:hover {
    border: 1px solid red;
}

关于css - 在悬停时添加边框会扩展元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24171998/

相关文章:

jquery - 动态 CSS Sprite 注入(inject)

html - CSS悬停在特定位置显示文本

css - 使用 CSS,我怎样才能让元素 B 上的伪类 'empty' 影响元素 A 的样式?

html - 允许相对位置和顶部,直到 div 触及页面顶部

html - Firefox CSS 空白 :nowrap not being honoured

css - float 跨度增加了IE中div的宽度

html - 如何制作最细的字体

jquery - 鼠标从一个 div 移动到另一个 div,不要在父级的鼠标离开时隐藏未包裹在父级内部的 div - jquery

html - Flexbox 内容在 Firefox 中溢出

html - 我如何做到这一点,当打开一个 div 时,右边的信息不会被推到下面?