停止CSS覆盖HTML宽度属性

时间:2012-03-19 13:12:14

标签: html css

我有一些旧内容包含表格,其宽度由HTML宽度属性指定,如下所示:<table width="250">。 CSS选择器table的规则会覆盖此属性。我是否可以停止此覆盖,以便表格具有HTML attributute中指定的宽度(这不是总是250像素,这只是一个示例)?我可以挑选出不应该用选择器#column1 table覆盖宽度的表格。

7 个答案:

答案 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;
}