CSS rules for webkit based browsers

11,067

The problem is that you're overriding your webkit styling with the non-webkit styling. Reversing the order should fix this:

#mgheader .letters {
  display: inline-block;
  margin-left: 10px;
  position: absolute;
}

@media screen and (-webkit-min-device-pixel-ratio:0) {
  #mgheader .letters {
    display: inline-block;
    margin-left: 55px;
    margin-top: -45px;
    position: absolute;
  }
}  

You may also want to check that your -webkit-min-device-pixel-ratio fires on all webkit-using devices, but it probably does.

For reference, Cascading Style Sheets are read from top to bottom. The key word is Cascading. If one CSS rule is given before an identical CSS rule, the latter one will take precedence. In your example you were styling specifically to webkit browsers but then overriding it with the general styling rules. Reversing the order means that the webkit styling here will override the general styling (without affecting non-webkit browsers).

Share:
11,067
Draco
Author by

Draco

Updated on July 23, 2022

Comments

  • Draco
    Draco almost 2 years

    I have the next CSS code:

    #mgheader .letters {
      display: inline-block;
      margin-left: 55px;
      margin-top: -45px;
      position: absolute;
    }
    
    #mgheader .letters {
      display: inline-block;
      margin-left: 10px;
      position: absolute;
    }
    

    Now I want to execute the first just in Google Chrome and Safari, and the second in other browsers.

    I tried this, but second code seems to be executing always:

    @media screen and (-webkit-min-device-pixel-ratio:0) {
      #mgheader .letters {
        display: inline-block;
        margin-left: 55px;
        margin-top: -45px;
        position: absolute;
      }
    }   
    
    #mgheader .letters {
      display: inline-block;
      margin-left: 10px;
      position: absolute;
    }
    

    How can I fix that?

  • Draco
    Draco about 11 years
    Thanks you! Very helpful :)