DTD文档类型的声明对CSS样式的影响

前几天在改版一个站点时,发现里面的CSS样式表(部分原始的样式都是大写的)不生效,折腾了很久都没明白为什么?

后来还是fisher发现,它原始的页面是没有DTD文档类型的声明的,所以对于大写的样式,它是生效的;在我修改后加了DTD的文档声明,对大写的CSS就不认可了。

奇怪的是刚刚我单独的做了两个页面试了下,一个是有DTD声明的,一个是没有的,调用同一个CSS(用大写),结果在Firefoxt和IE下又都是生效的,这到底是怎么回事?有待进一步测试……

在搜索与上面相关的问题时,无意中看到下面这个问题,DTD文档类型(Document Type Definition)影响margin实现居中的分析,也是同一个话题,就贴出来分享下吧……详见(http://www.52css.com/article.asp?id=723

XHTML 1.0 Transitional示例的代码如下:

如果我们去掉DTD声明,发现页面就出问题了。看下面的运行效果:

如何才能让页面居中呢,同样的代码,同样的margin:0 auto;页面容器居左了,解决办法如下:

主要的定义样式:
body {text-align:center; }
#container {margin:0 auto; width:500px; background:#ccc;}
当您定义text-align:center;以后,会发现在IE下页面已经居中了,但是您会发现在mozilla下页面仍然是居左的,解决办法就是在子元素定义时候设定时再加上“margin:0 auto;”这样就可以完成页面容器居中的效果。