1

这是一个有点奇怪的问题,但却是一个相当具体的案例。我正在尝试将现代风格融入传统网站。部分问题是作为新样式一部分的 CSS 重置,其中包括以下 CSS:

table {
    width: 100%;
}

在旧版网站中,他们没有这种风格,并且假设表格可以缩小以适应网站的风格。从表面上看,这是对过渡样式表的简单补充:

table {
    width: auto;
}

但是,表格元素时不时地有一个width属性。在没有应用任何 CSS 的情况下,会遵守此属性,但一旦应用了 CSS“修复”,表格的大小就会减小到最小。

我可以编写一些 JavaScript 来检测具有宽度属性的表格并使用它来定义它们的样式,但我很好奇:有没有办法在纯 CSS 中做到这一点?

4

4 回答 4

2

您可以使用以下属性根据属性排除:not()

演示链接: http: //tinker.io/8e18e/0

/* styles for tables with no "width" attribute */
table:not([width]) {
    width: auto;
}
于 2013-07-16T17:00:08.587 回答
0

是的。删除该width属性并使用 CSS 而不是已弃用的属性定义它们的宽度。添加一些健全的表格类,并为这些类提供您期望的宽度。

于 2013-07-16T16:59:51.463 回答
0

不,CSS 没有办法说“使用此属性替换的过时的表示属性”或类似的。

于 2013-07-16T16:43:02.290 回答
0

您可以测试更改表格的显示,不必设置宽度和处理填充、边距或框大小。 http://tinker.io/8e18e/1

table {
    display:block;
    background:gray;
}
td, tr {
    width:100%;
    display:table-cell;
}
table[width], tr {
    border: 1px solid;
    table-layout:fixed;
    display:table;
}
于 2013-07-16T17:41:10.870 回答