如何让"position:fixed"css在IE 7+中使用TRANSITIONAL doctype?

rom*_*n m 17 css doctype internet-explorer-7

我知道position:fixed;在IE 7之前IE不支持,如果你有IE浏览器,它只适用于IE 7 STRICT DOCTYPE.

我的问题是:"如何让它与IE 7一起使用TRANSITIONAL DOCTYPE?"

请不要建议更改DOCTYPE,因为这不回答我的问题,谢谢.

bob*_*nce 23

您不需要严格的DOCTYPE来获得fixed支持.您只需要一个触发标准模式(或"几乎标准")的DOCTYPE .这可以是过渡性文档类型,例如:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Run Code Online (Sandbox Code Playgroud)

或XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)

只要包含系统ID(最后的URI).

如果您的网页确实依靠Quirks模式(啊!),我很抱歉,但你不能使用fixed,将不得不诉诸JavaScript的黑客(但你可能需要那些IE6无论如何).

  • @Jonny:HTML5` <!DOCTYPE html>`触发完整的标准模式. (9认同)

Asa*_*san 10

即使使用Transitional/Strict Doc类型,固定位置也不适用于我.但是我在兼容模式下使用IE9,并且假设使用IE8运行时库进行渲染.要解决此问题,我必须将以下CSS添加到元素中.

.elementToBeFixed {
    position: fixed;
    top: 0;
    left: 0;
}
Run Code Online (Sandbox Code Playgroud)

它不适用于Top或Left缺失你必须明确地将它们设置为零(或你想要的值),以便它在IE的所有版本中工作....不用说IE糟透了.