【发布时间】:2011-05-17 12:00:40
【问题描述】:
我有一个这样的页面:
<body>
<table width="100%">...</table>
<table width="100%">...</table>
<table width="100%">...</table>
<table width="100%">...</table>
</body>
我需要做的是使所有这些表格的宽度为 85%,并在页面上水平居中。如果页面是单个页面,这将很容易,但这需要在 100 多个页面上工作,并且它们唯一的共同点是样式表文件。所以我只需要用 css 来做这个。我无法覆盖 div 内的表格或使用 jquery。
我尝试的是:
body { text-align:center; }
body > table { text-align: left; margin: 0 auto; width: 85%; }
这在 Firefox 和 google chrome 上完美运行,但它似乎不适用于 ie9(没有测试,但我确信它不适用于早期的 ie 版本)
我尝试了很多他们在类似问题上写的方法,但无法解决这个问题。
编辑:
页面的文档类型是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
我改成了:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
它现在也可以在 ie9 上运行!
更新后的问题是:是否可以不更改文档类型?
【问题讨论】:
-
我确定子选择器本身工作得很好。另一方面,CSS
width规则可能会因为table元素上的width属性而被忽略。您是否尝试过从标记中删除width="100%"? - 它真的不属于那里。 -
选择器“不工作”与未应用 CSS 规则是完全不同的问题。
-
啊,我将文档类型从“4.01 Transitional”设置为“1.0 Transitional”,现在似乎可以使用了。但我现在想知道,是否有一个解决方案可以在不更改文档类型的情况下应用(仅使用 css,因为我正在尝试这样做)(我没有设计这个网站,我不想编辑数百个文件)
-
@conrad 您的 HTML 4 过渡文档类型看起来无效 - 请参阅 w3.org/TR/html40/struct/global.html
-
@conrad:只需使用 HTML5 文档类型:
<!DOCTYPE html>。并不是说它会解决您的问题,但它会删除格式错误的文档类型作为问题/
标签: css css-selectors