Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停止CSS覆盖HTML宽度属性_Html_Css - Fatal编程技术网

停止CSS覆盖HTML宽度属性

停止CSS覆盖HTML宽度属性,html,css,Html,Css,我有一些旧内容,其中包含的表的宽度是用HTML宽度属性指定的,如:。CSS选择器表的规则将覆盖此属性。我是否可以停止此重写,使表具有HTML属性中指定的宽度(并不总是250像素,这只是一个示例)?我可以选择不应使用选择器覆盖其宽度的表格#column1 table尝试以下操作: #column1 table { width: auto; } 正如您所知,css将始终覆盖旧的html内联属性。使用所见即所得编辑器时,这通常是一个问题 我用javascript和jquery解决了cms中所

我有一些旧内容,其中包含的表的宽度是用HTML宽度属性指定的,如:
。CSS选择器
表的规则将覆盖此属性。我是否可以停止此重写,使表具有HTML属性中指定的宽度(并不总是250像素,这只是一个示例)?我可以选择不应使用选择器覆盖其宽度的表格
#column1 table

尝试以下操作:

#column1 table {
    width: auto;
}
正如您所知,css将始终覆盖旧的html内联属性。使用所见即所得编辑器时,这通常是一个问题

我用javascript和jquery解决了cms中所见即所得编辑器生成的旧html的这个问题。我遍历表并读取宽度和高度属性,然后将其转换为内联css:

var $table = $('#column1 table');
$table.css({
    "width" : $table.attr('width'),
    "height" : $table.attr('height')
});

您不能用html覆盖css,但可以添加属性
style
例如:

style = " width: 250px;"
编辑:您可以在外部通过放置来覆盖它!重要提示:在css规则的末尾,它将取消与所更改内容相关的任何其他css属性

例如:

看看这个链接

在html中输入Id,即

在桌面上,然后在css中,只需执行以下操作

#TABLE1
{
width:250;
}

您能告诉我们为什么要使用这样的内联html属性吗

除非你有很强的理由,否则我建议你把所有与风格相关的东西都转移到CSS上。如果CSS有自己的文件,而不是内联文件,那就更好了


始终将内容与演示分离是一种更好的做法。

我想到的一个可能但不雅观的答案是将CSS选择器
表的规则替换为
:not(#column1)表的规则。不过,这只适用于某些现代浏览器,而不适用于IE。

如前所述,我建议您使用样式表!您只需在styles.css中实现这一点:

table {
   width:250px;
}
如果还不够,你可以加上!重要的,比如:

table {
   width:250px !important;
}
并在html的头部添加如下样式表:

<link rel="stylesheet" type="text/css" href="css/stlyes.css">

否则,您需要将style=“width:250px”直接添加到每个表中。如果要将宽度再次更改为例如260px,则必须再次更改所有宽度


但是,如果您可以访问HTML代码,建议您进行查找替换,以获得干净的代码。几乎任何非常简单的文本编辑程序都应该有“查找-替换”选项…

我知道这个问题是两年前提出的,但它可能对其他有类似问题的人有所帮助。您可以使用CSS属性选择器:

table:not([width]) {
    width: 250px;
}

请注意,据我所知,它在IE 9下不起作用。

为什么不能简单地删除覆盖该属性的css
width
规则?因为这是在许多旧的导入内容上。我可能会编写一个find-replace脚本,用于所有与#column1 table匹配的表,但最好找到一种更简单的方法。我认为最好删除所有内联宽度和高度属性,否则您可能需要添加其他内联样式,正如Christopher KenneyI所建议的,您导入了html,对吗?你可以尝试(我不确定它是否有效)添加!对你的CSS风格很重要。您这样使用它:table{width:250px!important;}据我所知,250px只是一个示例宽度,对吗@tog22?或者所有的桌子都是250像素大的?那不行,我试过了。它计算表的宽度时,就好像没有应用CSS或HTML宽度属性一样。只需使用宽度:250px而不是自动。@tog22我添加了我曾经使用过的javascript(和jquery)解决方案。为什么在不需要js的情况下,只需简单的CSS就可以获得如此困难的解决方案?这将使整个代码更加肮脏!我发布的js解决方案是针对使用wysiwyg编辑器的情况。使用!“重要”可能会导致我不愿意面对的其他问题。我知道,请参阅我对原始问题的澄清意见。谢谢,但请参阅我对原始问题的澄清意见。@togg22:是的,是的!重要的事情可能会有所帮助。但是,我不会将其用作style=“…”而是在样式表中使用。否则,您可以进行查找替换,这将是推荐的!我不认为这回答了我的问题,是吗?
table:not([width]) {
    width: 250px;
}