Css Firefox使用垂直对齐和边框底部移动

Css Firefox使用垂直对齐和边框底部移动,css,firefox,Css,Firefox,这种css会导致文本在Firefox中滚动时向上移动,但在其他浏览器中不会 #element{ height:40px; } #element a,img{ vertical-align:middle; } #element a{ font-size:16px; color:#d1d1d1; text-decoration:none; } #element:hover a{ border-bottom: #fff 1px dotted; } 对我来说有道理。您正在添加1倍宽度的边框。这将

这种css会导致文本在Firefox中滚动时向上移动,但在其他浏览器中不会

#element{
height:40px;
}

#element a,img{
vertical-align:middle;
}

#element a{
font-size:16px;
color:#d1d1d1;
text-decoration:none;
}

#element:hover a{
border-bottom: #fff 1px dotted;
}

对我来说有道理。您正在添加1倍宽度的边框。这将更改图元的尺寸。一个简单的解决方案是有一个永久的边框,只需更改其颜色:

#元素a{
字体大小:16px;
颜色:#d1d1;
文字装饰:无;
边框底部样式:虚线;
边框底宽:1px;
边框底色:透明;
}
#元素:将鼠标悬停在a上{
边框底色:#fff;
}

对我来说很有意义。您正在添加1倍宽度的边框。这将更改图元的尺寸。一个简单的解决方案是有一个永久的边框,只需更改其颜色:

#元素a{
字体大小:16px;
颜色:#d1d1;
文字装饰:无;
边框底部样式:虚线;
边框底宽:1px;
边框底色:透明;
}
#元素:将鼠标悬停在a上{
边框底色:#fff;
}

添加
显示:内联块
页边距底部:-1px以补偿悬停时底部的额外像素

#element:hover a{
  border-bottom: #fff 1px dotted;
  margin-bottom: -1px;
  display: inline-block;
}

添加
显示:内联块
页边距底部:-1px以补偿悬停时底部的额外像素

#element:hover a{
  border-bottom: #fff 1px dotted;
  margin-bottom: -1px;
  display: inline-block;
}

这对我来说是有意义的,但其他浏览器不这样做,我会把颜色作为一个补丁。这对我来说是有意义的,但其他浏览器不这样做,我会把颜色作为一个补丁。不知道为什么这会被否决。它解决了最初的问题,并在FF、Chrome和IE中保持一致。负边距不是一个hack(),内联块只是将类似块的行为添加到
a
元素中,而不会破坏它们的
inline
行为。还是我遗漏了一些明显的东西?不知道为什么这会被否决。它解决了最初的问题,并在FF、Chrome和IE中保持一致。负边距不是一个hack(),内联块只是将类似块的行为添加到
a
元素中,而不会破坏它们的
inline
行为。还是我遗漏了一些明显的东西?