"Go" learning css to understand the difference between the unit EM and px

Source: Internet
Author: User

Quoted here is Jorux's "95% Chinese web site needs to rewrite CSS" article, the topic is a bit scary, but it is the current domestic web page production of some shortcomings. I have always been confused about the relationship between PX and EM and the characteristics, and have seen a great harvest. Usually use PX to define the font, so the browser can not enlarge the font function, and most of the foreign sites are available under IE. Because

1, IE can not adjust those using PX as the unit font size;

2, the majority of foreign sites can be adjusted because of its use of EM as a font unit;

3, Firefox can adjust px and em, but more than 96% of Chinese netizens use IE browser (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 has the following characteristics:

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, the body selector declaration font-size=62.5%;

2. Divide your original PX value by 10, then replace with EM as unit;

3. Recalculate the EM value of the enlarged font. 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.

However, 12px Kanji exception, is obtained by the above method 12px (1.2em) size of Chinese characters in IE does not equate directly with 12px defined font size, but slightly larger. This problem Jorux has been solved, just in the body selector to change 62.5% to 63% can be displayed normally. The reason may be that when IE processes Chinese characters, the accuracy of the value of floating point is limited. I wonder if there is any other explanation.

Source: cz268.com.cn

"Go" learning css to understand the difference between the unit EM and px

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.