提问人: 提问时间:9/23/2011 最后编辑:Jacques Mathieu 更新时间:4/11/2018 访问量:6414
跨浏览器兼容性和 docType 声明
Cross Browser Compatibility and docType declaration
问:
我设计了一个网页并在 .网页在 IE 上显示正常,但在 IE 上显示不然。
在使其兼容的过程中,我将 DocType 声明从 更改为 。这未能修复交叉兼容性。另外,我发现当我将 DocType 从 更改为 时,网页设计搞砸了。firefox, chrome & IE-8
firefox & chrome
HTML 4.01 Transitional
XHTML 1.1
HTML 4.01 Strict
firefox & chrome
HTML 4.01 Transitional
XHTML 1.1
现在我的问题是,如果 DocType 在设计网页时确实很重要,我应该使用哪一个来实现交叉兼容性?有没有其他不涉及 DocType 的解决方案?
答:
4赞
eric
9/23/2011
#1
听起来你只是在改变DOCTYPE,而没有改变任何HTML或CSS。这是您需要做的事情,因为每个 DOCTYPE 的呈现方式都不同。
根据您的需要,我推荐一个 STRICT - HTML4.01 STRICT、XHTML1.0 STRICT 或 XHTML1.1。或者HTML5(虽然我自己还没有用过)。此外,如果您使用的是 XHTML,请确保您的 doctype 声明正确无误,并在 html 标记中包含 xmlns。
供参考:
- QuirksMode 有很多很棒的信息,包括浏览器 兼容性信息。
- A List Apart 也非常有帮助 文章。
- 我参考了 HTML 和 CSS2 规范 经常。
要检查您的文档类型:
HTML 4.01 严格、过渡、框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 严格、过渡、框架集
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1 格式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
HTML5的
<!DOCTYPE html>
评论
0赞
eric
9/23/2011
水平菜单/侧边栏问题听起来可能与浮点/清除有关,也可能与display:block/inline/inline-block有关,这在渲染上肯定有差异。
0赞
9/23/2011
谢谢埃里克!我现在就试试,让我们看看进展如何。
0赞
eric
9/23/2011
你能发布HTML和CSS吗?这真的会有所帮助。
0赞
eric
9/23/2011
好的,好吧,如果菜单和侧边栏都是带有 display:block 的 DIV,并且菜单是 float:left,则侧边栏可能需要一个 clear:left 或 clear:both 来防止它向上移动到菜单行。
评论
Horizontal menu bar
位于顶部,位于菜单栏的正下方。当我更改 docType 时,然后中断并切换到 MenuBar 旁边,其他元素随机重新排列。side bar
sidebar
div