How do I avoid using !important?

大城市里の小女人 提交于 2019-12-07 01:46:34

问题


I am trying to make my website responsive. However, when I use another media query, a lot of things won't work. For example:

(Normal CSS)

div#divName
{
    font-size:1em;
}

(Media query code)

@media screen and (max-width: 320px) 
{
    div#divName
    {
        font-size:.5em;
    }
}

This doesn't work. It only works when I use "!important" behind it. But I don't know if that is correct or "wrong". Could anyone tell me how I can fix this?


回答1:


All !important does is increase specificity. To avoid using !important, all you need to do is increase specificity.

In your case, both of your selectors have identical specificity. The issue is most likely caused by your media query being placed before your "Normal CSS", and thus getting overridden.

  1. If they're in the same CSS file, ensure your "Normal CSS" is placed before your media query.
  2. If they're in different CSS files, ensure the file containing your media query is included in your HTML document after your "Normal CSS".



回答2:


make sure your CSS rules that you want to override loads after.
in your case

div#divName
{
    font-size:1em;
}

should be loaded first and after that:

@media screen and (max-width: 320px) 
{
    div#divName
    {
        font-size:.5em;
    }
}

you want to have two separated files style.css and responsive.css and include them in following order:

<link href="style.css" rel="stylesheet" /> 
<link href="responsive.css" rel="stylesheet" />


来源:https://stackoverflow.com/questions/27443589/how-do-i-avoid-using-important

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!