Preface: Now on the street to look at, basically 90% of the people are holding a cell phone, walking, shopping, eating all the time, so for our front-end development of the program ape, so that the Web page to adapt to mobile can be said to be satisfied. So recently also has been learning and practice. Then touch the REM unit, and try to figure out the difference between the units.
PX Features
1. IE cannot adjust the font size using PX as the unit;
2. Most of the foreign sites can be adjusted because they use EM or REM as font units;
3. Firefox can adjust PX and em,rem, but a large percentage of Chinese netizens use IE (or kernel).
px Pixels (Pixel). Relative length units. Pixel px is relative to the display screen resolution. (quoted from CSS2.0 manual)
EM is the relative length unit. The font size relative to the text within the current object. If the font size of the current inline text is not artificially set, the default font size is relative to the browser. (quoted from CSS2.0 manual)
The default font height for any browser is 16px. All non-adjustable browsers are compliant with: 1EM=16PX. So 12px=0.75em,10px=0.625em. To simplify the conversion of font-size, you need to declare font-size=62.5% in the body selector in the CSS, which makes the EM value 16px*62.5%=10px, so 12px=1.2em, 10px=1em, That means you just have to divide your original PX value by 10 and then put EM in as the unit.
EM features
1. The value of EM is not fixed;
2. Em inherits the font size of the parent element.
So when we are writing CSS, we need to pay attention to two points:
- 1. Declare font-size=62.5% in the body selector;
- 2. Divide your original PX value by 10 and then replace it with EM as the unit;
- 3. Recalculate the EM values of the enlarged fonts. Avoid duplicate declarations of font size.
This is to avoid the 1.2 * 1.2 = 1.44 phenomenon. For example, when you declare a font size of 1.2em in #content, you can only have 1em when declaring the font size of p, not 1.2em, because this em is not em, it becomes 1em=12px because it inherits the font height of #content.
REM Features
REM is a new relative unit of CSS3 (root em, root em), and this unit has aroused widespread concern. What is the difference between this unit and EM? The difference is that when you use REM to set the font size for an element, it is still relative size, but relative to the HTML root element. This unit is a combination of relative size and absolute size of the advantages in one, through it can only modify the root elements in proportion to adjust all font size, but also to avoid the size of the font-layer composite chain reaction. Currently, in addition to IE8 and earlier versions, all browsers support REM. For browsers that do not support it, the workaround is simple enough to write an absolute unit statement. These browsers ignore font sizes that are set with REM. Here is
An example:
p {font-size:14px; font-size:.875rem;}
Note: Choosing which font units to use is primarily up to your project, and if your user base is using the latest version of the browser, it is recommended to use REM, if you want to consider compatibility, use PX, or both.
1. Ie9/ie10 does not support REM when used for pseudo-elements or when using a font shorthand statement;
2. While IOS safari5.0-5.1 supports REM, REM is not supported when using media queries.
Figuring out the difference between the unit px,em,rem of CSS