Do you know the difference between EM and px in CSS?

Source: Internet
Author: User

In the domestic website, including three portals, as well as "leading" China's web design trend of the blue ideal, chinaui, etc. are used PX as a font unit. Only Baidu somehow made an adjustable example. On the other side of the ocean, almost all mainstream sites use EM as a font unit, which is also adjustable. Yes, PX is much easier to use than EM, and most readers don't know what em is or how many px it's worth. Foreign people attach great importance to website usability (accessibility), not only because of its rooted human spirit, the direct reason may be because there is a law to restrain them-for example, Section 508 in the United States, forcing the site to achieve a certain degree of ease of use.

Key points:

IE cannot adjust the font size using PX as the unit;

Most of the foreign sites can be adjusted because they use the EM as a font unit;

Firefox can adjust px and em, but more than 96% of Chinese netizens use IE (or kernel).

px Pixels (Pixel). Relative length units. Pixel px is relative to the display screen resolution.

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.

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:

The value of EM is not fixed;

EM inherits the font size of the parent element.

So when we are writing CSS, we need to pay attention to several points:

The body selector declares the font-size=62.5%;

Divide your original PX value by 10 and then replace it with EM as the unit;

Recalculate the EM values of those magnified 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.


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.

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.