Html 是否可以将表格的宽度设置为“宽度”;“自动”;在CSS中,但确认宽度属性?

Html 是否可以将表格的宽度设置为“宽度”;“自动”;在CSS中,但确认宽度属性?,html,css,Html,Css,这是一个有点奇怪的问题,但却是一个相当具体的案例。我正试图将现代风格融入一个传统网站。问题的一部分是CSS重置,这是新样式的一部分,包括以下CSS: table { width: 100%; } 在传统网站中,他们没有这种风格,并且假设一张桌子会缩小到合适的尺寸,就设计了网站的风格。从表面上看,这是对过渡样式表的简单添加: table { width: auto; } 但是,表元素时不时地有一个width属性。在不应用任何CSS的情况下,此属性将得到尊重,但一旦应用CSS“修

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

table {
    width: 100%;
}
在传统网站中,他们没有这种风格,并且假设一张桌子会缩小到合适的尺寸,就设计了网站的风格。从表面上看,这是对过渡样式表的简单添加:

table {
    width: auto;
}
但是,表元素时不时地有一个
width
属性。在不应用任何CSS的情况下,此属性将得到尊重,但一旦应用CSS“修复”,表的大小将减小到最小


我可以编写一些JavaScript来检测具有width属性的表,并使用它来定义它们的样式,但我很好奇:有没有一种方法可以在纯CSS中实现这一点?

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

是的。删除
width
属性,并使用CSS而不是不推荐使用的属性定义其宽度。添加一些sane table类,并为这些类提供所需的宽度。

您可以使用
:not()
基于属性排除:

链接到演示:


您可以为测试更改表的显示,不必设置宽度和处理填充、边距或框大小。


我相信这是OP的意图,但在过渡阶段没有多大帮助。当然!我没有将其添加到过渡样式表中,而是调整了重置,以便将任何没有宽度属性的表设置为100%宽度。谢谢你提醒我关于
:not()
/* styles for tables with no "width" attribute */
table:not([width]) {
    width: auto;
}
table {
    display:block;
    background:gray;
}
td, tr {
    width:100%;
    display:table-cell;
}
table[width], tr {
    border: 1px solid;
    table-layout:fixed;
    display:table;
}