覆盖.css样式表文件(非嵌入式)

时间:2019-01-27 18:25:29

标签: javascript html css liquid

是否可以以某种方式覆盖默认的CSS样式表(在这种情况下为液体),而不使用内联样式? 另外,我希望该样式仅应用于该特定页面,而不应用于其他任何页面。

是的,我可以在该特定页面的!important标记内使用<style>,但是我需要重做很多事情。太多的工作,看起来很凌乱。

那么我有什么办法可以将所有元素重置为默认属性值,并在那一页上使用我自己的样式?

3 个答案:

答案 0 :(得分:1)

您不能修改.css文件,但是可以使用js动态替换文件。

function replaceFile(newFile, fileLink) {
    var oldcss = document.getElementsByTagName("link").item(fileLink);
    var newcss = document.createElement("link");
    newcss.setAttribute("rel", "stylesheet");
    newcss.setAttribute("type", "text/css");
    newcss.setAttribute("href", newFile);
    document.getElementsByTagName("head").item(0).replaceChild(newcss, oldcss);
}

另一种解决方案是使用jQueryjs添加所需的样式。

$('.demo').css({'background-color':'red','color':'white');

答案 1 :(得分:0)

css代表级联样式表,因此添加样式后,只能使用其他样式进行更改或删除。专门回答您的问题, ,您不能。或如评论中所述,只需从该特定页面删除样式表即可。

答案 2 :(得分:0)

您可以使用*选择包装器中的所有元素并覆盖:

示例:

.mylink{
  color: red;
}

.mylink:hover{
  color: black;
}

.reset *{
  color: orange;
}

.reset *:hover{
  color: silver;
}
This is the link without reset: 
<a href="#" class="mylink">Link</a>


<div class="reset">
    This is the link with reset: 
    <a href="#" class="mylink">Link</a>
</div>