【问题标题】:CSS Browser SelectorsCSS 浏览器选择器
【发布时间】:2012-04-11 02:07:54
【问题描述】:

在使用绝对定位布局页面时,我意识到不同浏览器的呈现方式不同。我一直在网上寻找有关 css 选择器的信息,看看是否有某种方法可以根据用户使用的浏览器来改变定位,但我找不到任何非常有用的东西。有什么想法吗?

【问题讨论】:

  • 您使用绝对定位有什么特别的原因吗?应尽可能避免这种情况。
  • @Oliver 为什么觉得绝对定位不好?
  • 我正在为一个表格使用绝对定位,该表格显示在一个作为弹出窗口覆盖在主页上的图像上。
  • 不同浏览器的页面呈现方式不同,请忍受。在您的特定情况下,您提供最少的测试用例示例(例如通过 jsfiddle.net)是有意义的。
  • 您可能做错了什么导致浏览器之间的呈现不同。根据使用的浏览器更改topleft 听起来完全是错误 解决方案。

标签: css positioning absolute


【解决方案1】:

这对我来说似乎是一个糟糕的策略...我不想根据浏览器的种类从绝对定位切换到相对定位或其他定位。他们都应该实现相当相似的定位。您可能需要添加一些额外的样式以使特定元素在某些浏览器上正常运行,但是根据浏览器更改全球定位方法并不是一个好主意,IMO。

更新:

仅在 CSS 上,没有任何标准机制来检测浏览器。您可以使用以下技巧来检测特定版本的 IE,例如:

<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->

或类似的东西:

<!--[if gte IE 6]>
<link rel="stylesheet" type="text/css" href="iespecific.css" />
<![endif]-->

如需更完整的选项列表see here.

另一种选择是使用 jQuery(如果您愿意的话)并根据浏览器使用 javascript 调整元素的样式。比如:

if ( $.browser.msie ) {
    $("#div ul li").css( "display","inline" );
 } else {
    $("#div ul li").css( "display","inline-table" );
 }

更多examples here.

请注意:以上方法都不是绝对可靠的。例如,可以让 Firefox 将自己标识为 Internet Explorer。

【讨论】:

  • 我没有考虑从绝对变为相对。我只是想根据他们使用的浏览器更改顶部、左侧的位置。
  • @user1281231 更新了我的答案,因为您已经阐明了更改定位的含义。
  • 感谢您的回复。我现在明白了。
猜你喜欢
  • 1970-01-01
  • 2014-02-01
  • 2017-11-28
  • 2019-06-04
  • 1970-01-01
  • 2017-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多