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