Opera : 要求更加严密的 CSS

很多人说 Firefox 下面的效果和 Opera 是一致的,实践告诉我还是有很大的区别,可能没有必要罗列一个一个的细节,总体方向是,Opera 要求的 CSS 写得更加的严密,很少有“理所当然”的成分。

现在你可以用 Opera 和另外一个浏览器看看这个页面 在其他浏览器中内容部分是居中的,但是 Opera 是偏左的,因为我们都知道默认的 text-align 就是 left。而 FF 和 IE 依赖 margin 的 auto 把它居中了,我觉得有点草率。

解决方法自然是写得更加严密一些,在 body(上面例子中是 #struc)定义 text-align 为 center,在 #wrap 再定义回 left。

update : 感谢 playpiggy ,他指出上面的问题有可能出在 display:inline-block 的 firefox 的不支持问题上,使用 margin:auto 是更好的方法,这个我此前没有认识到:)

{我上午不爽改过来了} 另外一个例子可以看看我这个地方,使用 default 这一套 css 的时候(也就是首页和搜索页之类),margin 和 padding 是没有消掉的, 我们都知道这样“默认”的 margin 和 padding 会出现很多浏览器兼容的问题,包括 if..else 十月份的新版式也没有很好地解决(在右下角,用 IE 看)。这种情况下,FF 和 IE 都按照自己的“理解”为 margin 和 padding 赋值,而 Opera 很多时候用 0 赋值,因此不如干脆消掉 margin 和 padding,自己定义麻烦一点,效果会很好。

这也不能说是谁的 bug,只是 Opera 这样的做法我更加喜欢一些,虽然有时候会很麻烦去找哪个参数没有定义完整,但这样代码也更加强壮。

4 Responses to "Opera : 要求更加严密的 CSS"

  1. text-align 指的是文字的对齐方式,与一个 div 的位置无关吧。使用 margin:auto 居中似乎是目前比较标准的做法。我还是更倾向于 Firefox。

    playpiggy  PM Mon Oct 30  #
  2. @playpiggy
    有关,你可以做个实验知道了。可能是因为作为 Windows 下唯一通过 Acis2 的浏览器(此前只有苹果牌的通过),而 Acid2 是 W3 CSS 的终极指标,可能因此比较严格。

    — Di  PM Mon Oct 30  #
  3. 做实验了,我觉得还是没有关系。

    研究了一下你说的这个页面,造成差异的原因不是 text-align 的问题,而是这个页面里有一句 display:inline-block; 造成了问题。把这句删掉 Opera 就居中显示了。Firefox 不支持display:inline-block;,所以就造成了差异。

    margin:auto 在 Opera 下也是居中的。

    playpiggy  PM Mon Oct 30  #
  4. inline-block 也要照顾 IE 的吧,去掉之后好像会变形。如果用 margin:auto 应该比较好

    — Di  PM Mon Oct 30  #

Commenting is closed for this article.