我有一些旧内容包含表格,其宽度由HTML宽度属性指定,如下所示:<table width="250">
。 CSS选择器table
的规则会覆盖此属性。我是否可以停止此覆盖,以便表格具有HTML attributute中指定的宽度(这不是总是250像素,这只是一个示例)?我可以挑选出不应该用选择器#column1 table
覆盖宽度的表格。
答案 0 :(得分:5)
你不能用html覆盖css但你可以添加属性style
例如:
style = " width: 250px;"
编辑:您可以通过将!important放在css规则的末尾来覆盖它,这将取消与您正在更改的内容相关的任何其他css属性。
例如:
#column1 table {
width: 250px !important;
}
答案 1 :(得分:4)
试试这个:
#column1 table {
width: auto;
}
您知道,css将始终覆盖旧的html内联属性。使用wysiwyg编辑器时,这通常是个问题。
我为使用javascript和jquery的cms中的一个wysiwyg编辑器生成的旧html解决了这个问题。我遍历表格并读取宽度和高度属性,然后我将其转换为内联css:
var $table = $('#column1 table');
$table.css({
"width" : $table.attr('width'),
"height" : $table.attr('height')
});
答案 2 :(得分:0)
您能否告诉我们您为何使用这样的内联html属性?
除非你有充分的理由,否则我建议你将与风格相关的东西移到CSS上。如果CSS有自己的文件,也不是内联的,那就更好了。
最好始终将内容与演示文稿分开。
答案 3 :(得分:0)
我遇到的一个可能但不优雅的答案是将CSS选择器table
的规则替换为:not(#column1) table
的规则。然而,这只适用于某些现代浏览器,而不适用于IE。
答案 4 :(得分:0)
如上所述,我建议您使用样式表!你只需将它实现到styles.css中:
table {
width:250px;
}
如果还不够,你可以添加!important,如:
table {
width:250px !important;
}
并在html的头部添加这样的样式表:
<link rel="stylesheet" type="text/css" href="css/stlyes.css">
否则你需要将style =“width:250px”直接添加到每个表中。如果您想再次更改宽度,例如260px,您将不得不再次更改所有这些。
但是,如果您可以访问HTML代码,那么建议您进行查找替换,无论如何都要使用干净的代码。几乎任何非常简单的TextEdit程序都应该有一个Find-Replace选项......
答案 5 :(得分:0)
我知道这个问题是在2年前提出的,但对于有类似问题的其他人来说可能会有所帮助。您可以使用CSS属性选择器:
table:not([width]) {
width: 250px;
}
请注意,据我所知,它不会在IE 9下工作。
答案 6 :(得分:-2)
看一下这个链接.. http://www.w3schools.com/cssref/pr_dim_width.asp
在html中输入Id即
在桌子上,然后在css中做
#TABLE1
{
width:250;
}