文本定位无法正常工作

时间:2013-10-31 20:24:34

标签: html internet-explorer firefox if-statement quirks-mode

我有一个if语句,用于决定呈现页面的内容。

<script language="JavaScript">
if (NS4) {
    document.write('<LAYER NAME="floatlayer" LEFT="22" TOP="60">');
}

if ((IE4) || (NS6)) {
    document.write('<div id="floatlayer" style="position:absolute; left:22; top:62;">');
}
</script>

现在我知道这是有效的,因为这是以前版本的代码,我没有遇到任何问题。我创建了一个页面,强制页面呈现为最新的查看器(IE10,Chrome1)我使用了一个简单的Meta标签来执行此操作;

<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">

当我继续使用IE并将其切换到Quirks模式时,页面正常工作,所有内容都正确排列,但除了Quirks以外的任何内容都被破坏了。这是什么原因以及如何解决?

2 个答案:

答案 0 :(得分:0)

22不是CSS中left的有效值。对于22px值,您可能需要top和类似值。但是,在怪癖模式下,浏览器会在某些属性中接受无单位长度;见http://quirks.spec.whatwg.org/#the-unitless-length-quirk。这就是为什么事情在怪癖模式下适合你。

答案 1 :(得分:0)

修复就像删除

一样简单
<script language="JavaScript">

if (NS4) {
    document.write('<LAYER NAME="floatlayer" LEFT="22" TOP="60">');
}

if ((IE4) || (NS6)) {
    document.write('<div id="floatlayer" style="position:absolute; left:22; top:62;">');
}
</script>

并为表创建一个类。然后我在.css文件中设置属性并正确定位文本。