在Opera 11中浮动时元素宽度的计算。*

时间:2011-06-01 12:16:03

标签: css layout opera css-float

我正在处理Opera 11.5 beta中的一个问题(我假设这与所有Opera 11版本相关),其中浮动的块级元素(无序列表)被赋予任意固定宽度并导致子元素换行 - 以与IE6相同的方式进行。

该元素向右浮动,目前没有兄弟姐妹。在样式表中没有为列表指定宽度。

我想知道Opera在这些实例中使用什么样的逻辑来计算宽度?

我上传的图片将Opera 11.5与Firefox 4.1与Dragonfly / Firebug输出进行比较。

http://twitpic.com/55f79o/full

jsFiddle:http://jsfiddle.net/i_like_robots/HKAQ9/

2 个答案:

答案 0 :(得分:2)

根据我的说法,这是Opera的一个错误。

在计算元素的宽度时,它会根据子元素的所有宽度的总和计算,但如果你有2个Div元素作为子元素显示为块元素,实际上宽度不是两个元素的总和。 / p>

要解决此问题,您只需指定父元素的宽度,而不是允许Opera计算。

@clairesuzy - 您可以使用我在此处发布的代码http://www.go4expert.com/forums/showthread.php?t=27000

查看操作中的错误

答案 1 :(得分:1)

我不知道为什么(稍后会看)

但是Opera并不喜欢没有宽度的replace

.replace {
    display:block;
    overflow:hidden;
    text-indent:-9999px;
    background: no-repeat 0 0;
    width: 10px;
}

我认为课程(按照它的名字)是要放置一个替换的背景图像,所以可以在它上面放一个宽度吗?

已更新它已连接到文本隐藏的text-indent方法 - 没有文本缩进,它在Opera中也没问题