在类和媒体查询中重复数据删除CSS规则

时间:2016-05-28 21:35:14

标签: css css3 media-queries

我目前有一个CSS,其规则在.small#a的媒体查询中都是重复的,因为当浏览器宽度小于600px并且单击按钮时我想要相同的行为

在我的实际情况中,规则很长,我想避免复制它们。 如何重复删除这样的CSS?



$('#b').click(function(){ $('#a').addClass('small'); });

#a { background-color: green; }
.small { background-color: yellow !important; /* many other rules */ }

@media (max-width: 600px) { 
    #a { background-color: yellow !important; /* many other rules */ }
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="a">Hello</div>
<input id="b" type="button" value="Change" />
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

我认为没有办法在纯CSS中执行此操作,这是您可以使用SASS之类的预编译器解决的问题之一,您可以在任何地方使用变量或{{3例如

答案 1 :(得分:0)

我可以考虑使用Javascript解决您的问题。

window.onresize = function(event){
 if(window.innerWidth < 600px){
  // add the class to the element
 }else{
 // remove the class
 }
}

如果不使用预编译器,我认为你不能以任何其他方式实现你想要的东西。

答案 2 :(得分:0)

您必须使用CSS预处理器才能执行此操作。

否则你必须使用jQuery根据视口宽度切换其他类,或者将.small样式分配给#a,然后制作媒体查询以在你不要时撤消它不希望它看起来像那样。