今天在准备一个页面日常时,发现了一个在Chrome和IE9+上的bug, 例子在 http://jsfiddle.net/7f6bs/。
<style>
.wrap {
overflow: hidden;
width: 30px;
height: 21px;
}
.holder {
height: 21px;
line-height: 21px;
}
</style>
<ul>
<li class="wrap">
<div class="holder">visible</div>
<div class="hide"> here</div>
</li>
</ul>
由于“here”超出了容器(设置了overflow:hidden)范围,只能看见"visible"。 如果使用ctrl+f查找“here”的话,匹配到的”here“会向上移动以显示在容器的可见范围内。overflow掉的内容仍然是可以搜索的,这似乎不是问题,但问题在于,使用ctrl+f后会改变页面的布局,即使我们不再search后,overflow的内容仍然在可见范围内,而本来应该显示的东西看不见了,除非刷新页面。这个bug(我认为是bug)在chrome和IE9+上出现,firefox和safari上没发现。
还没有发现非常好的解决方案,使用display:none和visibility:hidden可以避免此类问题,但这两个属性的使用可能会影响页面布局。