px 为单位:
px 实际上就是像素,用PX设置字体大小时,比较稳定和精确。但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,如果改变了浏览器的缩放,这时会使用我们的Web页面布局被打破。这样对于那些关心自己网站可用性的用户来说,就是一个大问题了。因此,这时就提出了使用“em”来定义Web页面的字体。
em 为单位:
em 就是根据基准来缩放字体的大小。em 实质是一个相对值,而非具体的数值。这种技术需要一个参考点,一般都是以<body>的“font-size”为基准。如WordPress官方主题Twenntytwelve的基准就是14px=1em。
另外,em是相对于父元素的属性而计算的,如果想计算 px 和 em 之间的换算。
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no"> <title>em 的演示</title> <style> body { font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/ } h1 { font-size: 2.0em; /*2.0em × 10 = 20px */ font-weight:normal; } p { font-size: 1.6em; /*1.6em × 10 = 16px */ } li { font-size: 1.6em; /*1.6 × ? = 16px ? */ } </style> </head> <body> <h1>阅谁问君诵,水落清香浮</h1> <p>阅谁问君诵,水落清香浮</p> <h1> <ul> <li>阅谁问君诵,水落清香浮</li> <li>阅谁问君诵,水落清香浮</li> <li>阅谁问君诵,水落清香浮</li> </ul> </h1> </body> </html>
效果图:
rem 为单位:
em 是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小。而 rem 是相对于根元素<html>,这样就意味着,我们只需要在根元素确定一个参考值。
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no"> <title>rem 的演示</title> <style> html { font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/ } body { font-size: 1.4rem;/*1.4rem × 10px = 14px */ } h1 { font-size: 2.0rem; /*2.0rem × 10px = 20px */ font-weight:normal; } p { font-size: 1.6rem; /*1.6rem × 10px = 16px */ } li { font-size: 1.6rem; /*1.6rem × 10px = 16px */ } </style> </head> <body> <h1>阅谁问君诵,水落清香浮</h1> <p>阅谁问君诵,水落清香浮</p> <h1> <ul> <li>阅谁问君诵,水落清香浮</li> <li>阅谁问君诵,水落清香浮</li> <li>阅谁问君诵,水落清香浮<div>注意一</div></li> </ul> </h1> <div>注意二</div> </body> </html>
效果图:
浏览器的兼容性
除了IE6-IE8,其它的浏览器都支持 em 和 rem 属性,px 是所有浏览器都支持。
因此为了浏览器的兼容性,可“px”和“rem”一起使用,用"px"来实现IE6-8下的效果,然后使用“rem”来实现其他浏览器的效果。
综上案例,建议做网站使用 “px” 或 “rem”,不过也有出名的网站使用 em。这是一个考虑的问题。
相关推荐
**前端开源库-postcss-px2rem** 在前端开发中,随着移动优先和响应式设计的普及,CSS单位的转换成为了一个重要的问题。`postcss-px2rem` 是一个非常实用的开源库,它是基于 PostCSS 的插件,主要用于将 CSS 文件中...
3. Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核)。 px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册) em是相对长度单位。相对于当前对象内文本...
总之,通过`postcss-px2rem`插件和动态设置`html`的`font-size`,我们可以有效地实现页面的自适应布局,使得UI在不同设备上都能保持良好的视觉效果。在使用`vue-mobile-template`这样的模板时,开发者可以直接利用...
postcss-pxtorem 的插件,可从像素单位生成rem单位。 安装 $ npm install postcss postcss-pxtorem --save-dev 用法 像素是最容易使用的单位(观点)。 它们的唯一问题是它们不允许浏览器将默认字体大小更改为16。...
本文将详细解析px、em、rem、%、vw和vh这些单位的区别及其应用场景。 1. **px (像素)**: 像素是绝对长度单位,它基于屏幕的物理分辨率。1px表示设备上的一点,通常用于创建精确的图形或保持元素大小恒定。由于px是...
相信每位前端工程师们都有这么一个体会,国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,...下面这篇文章小编就来给大家详细介绍关于css中px、em和rem的区别,需要的朋友可以参考借鉴,下面来一起看看吧。
执行命令 安装插件postcss-pxtorem npm install postcss-pxtorem -D postcss.config.js 新建package.json同一个目录下,文件内容如下 module.exports = { plugins: { 'autoprefixer': { browsers: ['Android >...
刚开始我按照网上的一些方式利用postcss-pxtorem方式去适配的时候怎么样都不成功,后来经过自己不断尝试之后终于成功了。稍微坐下总结: 1.个人建议在进行postcss-pxtorem适配的时候利用webpack进行项目配置,而...
懒人推动进步,简化px,em,rem的换算
首先,我们需要了解px和rem的区别。px是绝对单位,表示像素,而rem(root em)是相对单位,其值相对于根元素(通常是html元素)的字体大小。通过使用rem,我们可以调整整个页面的比例,而不是针对每个元素单独设置。...
本文将详细解析三种常见的CSS字体单位——像素(px)、em和rem的区别及其应用场景。 首先,像素(Pixel,px)是绝对长度单位,它基于显示器的物理像素。在大多数情况下,px 提供了一种稳定且可预测的布局,但有一个...
postcss-pxtorem是PostCSS的插件,用于将像素单元生成rem单位。 前端开发还原设计稿的重要性毋庸置疑,目前应用的单位最多还是rem,然而每次在制作过程中需要自己计算rem值,为了能够直接按照设计图的尺寸开发,并且...
本文将详细介绍如何使用Vue CLI3进行移动端适配,主要涉及两种方法:`lib-flexible` 和 `postcss-plugin-px2rem`。 首先,确保你的项目是基于Vue CLI3或更高版本。移动端适配的主要目标是解决不同设备屏幕尺寸下的...
在CSS布局和样式设计中,字体大小的设置是非常关键的一部分,通常我们会使用px、em或rem作为单位。这些单位各有特点,适用于不同的场景。下面将详细介绍它们的区别以及使用策略。 首先,px(像素)是最常见的长度...
在前端开发中,实现网页的自适应布局是至关重要...总结来说,`自适应rem的css文件`是前端开发中实现响应式布局的重要工具,通过合理使用rem单位和媒体查询,我们可以轻松地创建出适应各种设备的美观且功能强大的网页。
css3新增了相对单位 rem ,使用rem同em一样皆为相对字体大小单位,不同的是rem相对的是HTML根元素。鉴于很多网友提到了rem,所以我这里就对其中一个总结。 在Web中使用什么单位来定义页面的字体大小,至今天为止都还...
3. **生成转换后的代码**:点击转换按钮,工具会分析输入的CSS,将所有px值转换为对应的rem值,并在右侧栏显示转换后的代码。这将帮助您快速更新CSS文件,无需手动进行复杂的计算。 4. **生成媒体查询**:此外,此...