Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE中的HTML页面对齐问题(在没有DTD验证程序的情况下使用) 第1页 第2页 第3页_Html_Css_Doctype - Fatal编程技术网

IE中的HTML页面对齐问题(在没有DTD验证程序的情况下使用) 第1页 第2页 第3页

IE中的HTML页面对齐问题(在没有DTD验证程序的情况下使用) 第1页 第2页 第3页,html,css,doctype,Html,Css,Doctype,这是我的css <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html > <body> <div id="container"> <div id="menu"> <ul> <li

这是我的css

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >

<body>
<div id="container"> 
<div id="menu"> 
    <ul> 
        <li><a >page1</a></li> 
        <li><a >page2</a></li> 
        <li><a >page3</a></li>            
    </ul> 
</div>
</div> 
</body> 
</html> 

#菜单{
保证金:0px 10px 10px 10px;
溢出:隐藏;
字体大小:13px;
字体大小:粗体;
}
#菜单ul{
保证金:0;
填充:0;
}
#菜单ulli{
利润率:0px 2px;
显示:内联;
垂直对齐:中间对齐;
文本对齐:居中;
}
#容器{
宽度:785px;
保证金:0自动;
背景色:#fff;
填充顶部:6px;
垫底:10px;
}
我希望菜单应该在页面的中间。
但是在
IE
中,如果我删除
DTD验证器
它总是在左边c。。我想要一个没有dtd验证器的解决方案,为什么要删除dtd声明?您的页面必须分类为有效格式之一。如果您没有此声明,您的浏览器通常会求助于“怪癖”模式,这实际上并不符合标准


别忘了看看

为什么要删除DTD声明?您的页面必须分类为有效格式之一。如果您没有此声明,您的浏览器通常会求助于“怪癖”模式,这实际上并不符合标准


别忘了看一看,没有DTD会导致浏览器恢复到“怪癖模式”——这样做会导致他们使用其旧版本的怪癖实现,这可能会有很大的变化。使用(正确的)DTD会导致“标准模式”,从而使浏览器之间达到最大的一致性

这里的问题不是DTD,而是CSS

使用与容器相同的菜单居中方法:设置宽度并将左右边距设置为“自动”:

<style>
#menu {
    margin: 0px 10px 10px 10px;
    overflow: hidden;
    font-size: 13px;
    font-weight: bold;
}

#menu ul {
    margin: 0;
    padding: 0;
}

#menu ul li {
    margin: 0px 2px;
    display: inline;
    vertical-align: middle;
    text-align: center;
}


#container {
    width: 785px;
    margin: 0 auto;
    background-color: #fff;
    padding-top: 6px;
    padding-bottom: 10px;
}

</style>

#菜单{边距:0自动;宽度:500px;}

这是基于标准的,并且得到了很好的支持。

没有DTD会导致浏览器恢复到“怪癖模式”——这样做会导致他们使用其旧版本的怪癖实现,这可能会有很大差异。使用(正确的)DTD会导致“标准模式”,从而使浏览器之间达到最大的一致性

这里的问题不是DTD,而是CSS

使用与容器相同的菜单居中方法:设置宽度并将左右边距设置为“自动”:

<style>
#menu {
    margin: 0px 10px 10px 10px;
    overflow: hidden;
    font-size: 13px;
    font-weight: bold;
}

#menu ul {
    margin: 0;
    padding: 0;
}

#menu ul li {
    margin: 0px 2px;
    display: inline;
    vertical-align: middle;
    text-align: center;
}


#container {
    width: 785px;
    margin: 0 auto;
    background-color: #fff;
    padding-top: 6px;
    padding-bottom: 10px;
}

</style>

#菜单{边距:0自动;宽度:500px;}

这是基于标准的,并且得到了很好的支持。

最好的办法是给菜单一些宽度,然后将边距设置为自动:

<style>
#menu { margin:0 auto ; width:500px ; }
</style>

请在此处查看:

最好的做法是给菜单留出一些宽度,然后将边距设置为“自动”:

<style>
#menu { margin:0 auto ; width:500px ; }
</style>
请在此处查看:

查看我的评论:

“但在IE中,如果我移除DTD “验证程序总是在左边”- 解决方案:不要删除
doctype

为什么要删除它?

除非别无选择,否则不应删除doctype

如果真的没有办法解决这个问题(例如,您使用的是一个不使用doctype的大型遗留站点,但在本例中似乎不太可能),您可以通过添加以下CSS将其集中在IE中:

#menu {
  width: 200px;
  margin:auto auto;
}
见我的评论:

“但在IE中,如果我移除DTD “验证程序总是在左边”- 解决方案:不要删除
doctype

为什么要删除它?

除非别无选择,否则不应删除doctype

如果真的没有办法解决这个问题(例如,您使用的是一个不使用doctype的大型遗留站点,但在本例中似乎不太可能),您可以通过添加以下CSS将其集中在IE中:

#menu {
  width: 200px;
  margin:auto auto;
}

“但是在IE中,如果我删除DTD验证器,它总是在左边”-解决方案:不要删除
doctype
。为什么要删除它?“但是在IE中,如果我删除DTD验证器,它总是在左边”-解决方案:不要删除
doctype
。为什么要删除它?因为我们正在处理一个无法删除的现有html页面modified@Praneel字体好吧,我给了你你需要的解决方案。将
text align:center
应用于
#container
的父元素(这里唯一明智的选择是
body
),然后将
text align:left
应用于
#container
。我不知道为什么我在回答中写了
#menu
;我会更改它。因为我们正在处理一个现有的html页面,该页面不能modified@Praneel字体好吧,我给了你你需要的解决方案。将
text align:center
应用于
#container
的父元素(这里唯一明智的选择是
body
),然后将
text align:left
应用于
#container
。我不知道为什么我在回答中写了
#menu
;我会换的。