CSS中的em、px 、pt 、Percent之间的关系及换算

这篇文章主要介绍了css font-size: em、 px 、pt 、percent之间的关系及换算,本篇整理的还是比较详细的,需要的朋友可以参考下

一、基础介绍
1、“Ems”: em,大小不固定 ,成为相对单位(body则相对浏览器的默认字体设置,子集相对父级), 浏览器默认设置字体大小为16px , 则1em = 16px , 且其可扩展,2em = 32px , 目前常用的字体大小px换算成em ,
16px = 1em; 14px = 0.875em; 12px = 0.75em; 10px = 0.625em
2、“Pixels”: px,大小是固定的,称为绝对单位,在移动端的可访问性差
3、“Points”:pt,大小固定,属于绝对单位,适用于印刷、打印媒体。
4、“Percent”: %,跟em相似,以percent来表示,则当前字体的大小为100% ,使用% 设置字体,你的页面字体在移动设备端的可访问性也很好。
二、关系
一般情况下,1em=12pt=16px=100% . 下面例子前提在body中设置基础字体大小。
CSS中的em、px 、pt 、Percent之间的关系及换算 
由上图可看出,相对单位em 和 % 会随着基础字体大小的变化而变化,而pt 和 px 不会变化,这就是为什么选择em 和 % 设置web文档文本的字体(其在移动端的访问性也很好)。
三、em 与 % ,em与px 的换算
em的特点:
1. em的值并不是固定的;
2. em会继承父级元素的字体大小。
重写步骤:
1. body选择器中声明Font-size:62.5%;
2. 将你的原来的px数值除以10,然后换上em作为单位;
如果只需要以上两步就能解决问题的话,可能就没人用px了。经过以上两步,你会发现你的网站字体大得出乎想象。因为em的值不固定,又会继承父级 元素的大小,你可能会在content这个p里把字体大小设为1.2em, 也就是12px。然后你又把选择器p的字体大小也设为1.2em,但如果p属于content的子级的话,p的字体大小就不是12px,而是1.2em= 1.2 * 12px=14.4px。这是因为content的字体大小被设为1.2em,这个em值继承其父级元素body的大小,也就是16px * 62.5% * 1.2=12px, 而p作为其子级,em则继承content的字体高,也就是12px。所以p的1.2em就不再是12px,而是14.4px。
3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明,也就是避免以上提到的1.2 * 1.2= 1.44的现象。比如说你在#main中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px。
诡异的12px汉字
在完成em转换时还会发现一个诡异的现象,就是由以上方法得到的12px(1.2em)大小的汉字在IE中并不等于直接用12px定义的字体大小,而 是稍大一点。这个问题我已经解决,你只需在body选择器中把62.5%换成63%就能正常显示了。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

如何解决css中float:right右对齐元素会换行不在同一条线上

立即学习“前端免费学习笔记(深入)”;

以上就是CSS中的em、px 、pt 、Percent之间的关系及换算的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1610441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 01:28:00
下一篇 2025年12月24日 01:28:22

相关推荐

  • 关于css的background-attachment属性的使用

    这篇文章主要为大家介绍了在css中,使用背景附件属性background-attachment可以设置背景图像是随对象滚动还是固定不动,需要的朋友可以参考下 一、background-attachment属性 在CSS中,使用背景附件属性background-attachment可以设置背景图像是随…

    2025年12月24日
    000
  • CSS中使用Flexbox来达到居中效果的方法实现

    这篇文章主要介绍了css中flexbox来达到居中效果的实例,注意一下ie浏览器中的兼容问题,需要的朋友可以参考下 CSS未来发展的方向就是采用Flexbox这种设计,解决像垂直居中这种共同的问题。请注意,Flexbox有不止一种办法居中,他也可以用来分栏,并解决奇奇怪怪的布局问题。 .Center…

    2025年12月24日
    000
  • css实现自动换行以防撑破div影响排版

    自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是css如何实现换行的方法 对于p,p等块级元素正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行html 正常文字的换行(亚洲文字和…

    好文分享 2025年12月24日
    000
  • CSS实现面包屑导航栏

    这篇文章主要为大家介绍了两个纯css 面包屑导航栏实现代码,内容比较简单,不会的朋友可以进来看一下,其中html代码实现非常简单,需要的朋友可以参考下   下面是两个纯CSS 面包屑导航栏实现代码,在网上找了一些方法但觉得都不合适唯独这两个纯css的就差不多了,下面一聚小编来给大家整理一下。   方…

    2025年12月24日
    000
  • css页面中左中右分栏布局的实现

    页面左中右分栏布局在目前的网页布局中是比较常见的,下面就与大家分享两个不错的方法可以实现左中右分栏布局,代码很详细,需要的朋友可不要错过 以下代码复制粘贴即可使用: 示例一:  .page_center { width:100%; } #nav { background-color:red; hei…

    好文分享 2025年12月24日
    000
  • 如何使用css属性nth-child(n)匹配选择第n个子元素

    这篇文章主要介绍了关于如何使用css属性nth-child(n)匹配选择第n个子元素,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 css匹配选择第n个子元素可以使用:nth-child(n) 选择器,其匹配属于其父元素的第N个子元素,不论元素的类型 加入要让第二个 th 占tabl…

    好文分享 2025年12月24日
    000
  • 关于css 属性选择器的解析

    下面为大家带来一篇全面了解css 属性选择器。内容挺不错的,现在就分享给大家,也给大家做个参考。 1.[class~=”flower”]:选中有flower的class  class=”flower ss”  class=”ss flower” 2.[class|=&#821…

    好文分享 2025年12月24日
    000
  • 如何使用CSS实现鼠标悬浮出现遮罩层

    这篇文章给大家分享了两个鼠标悬浮出现说明遮罩层的效果,大家可以根据自己的需要选择某一种效果,两种效果文中都给出了实例代码,下面来一起看看吧。 先来一个简单的实现方法: Document .mask-wrapper { position: relative; overflow: hidden; } .…

    好文分享 2025年12月24日
    000
  • 关于CSS如何实现多行多列布局的方法

    这篇文章主要介绍了css实现多行多列的布局的实例代码,需要的朋友可以参考下 1.两列多行:   HTML: box1:实现两列多行布局 111 222 333 CSS: 立即学习“前端免费学习笔记(深入)”; .box1 { width: 500px; background: #EEEEEE;}.b…

    2025年12月24日 好文分享
    000
  • 关于CSS中animation属性的使用方法

    这篇文章主要介绍了css的animation属性使用实例讲解,是css入门学习中的基础知识,需要的朋友可以参考下 一、animation的语法1、@keyframes——插入关键帧(1)FormTo形式: @keyframes demo { from { Properties:Properties …

    2025年12月24日
    000
  • CSS使用position:sticky 实现粘性布局的方法

    这篇文章主要介绍了css使用position:sticky 实现粘性布局的方法的相关资料,内容挺不错的,现在分享给大家,也给大家做个参考。 简介 一般都知道下面几个常用的: {position: static;position: relative;position: absolute;positio…

    2025年12月24日 好文分享
    000
  • 关于CSS的display:inline-block属性的使用

    这篇文章主要介绍了css的display:inline-block属性的使用,其中对使用时产生的空隙问题的解决作了重点讲解,需要的朋友可以参考下 display:inline-block感觉与display:table-cell有些相似,例如对内部元素的包裹性。但是,由于display:inline…

    2025年12月24日 好文分享
    000
  • 关于CSS3的animation实现逐帧动画效果

    这篇文章主要介绍了css3 animation实现逐帧动画效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 css3里面的animation属性非常强大,但是自己用的比较少,最近有次面试就刚好被问到了,趁现在有时间就对animation做一个小总结。同时实现一个逐帧动画的demo作为练习 an…

    2025年12月24日 好文分享
    000
  • 如何利用CSS实现标题文字过长部分显示省略号

    这篇文章主要介绍了css实现标题文字过长部分显示省略号的方法,并且讲解了针对单行文字溢出和多行文字溢出的情况,需要的朋友可以参考下 前段时间在公司移动站的重构,遇到了一个产品列表title的需求是只显示两行,然后超过两行的字符用省略号显示。如下图的效果,当时第一感觉是这个需求只能通过后台输出的时候截…

    好文分享 2025年12月24日
    000
  • 关于不同浏览器下的CSS中Hack的兼容性

    这篇文章主要介绍了各种浏览器下的css hack兼容性写法,css hack大致可以分为内部hack和选择器hack以及html头部引用hack,需要的朋友可以参考下 由于不同浏览器所遵循的标准也有所不同,再加上不可避免的程序bug、经济利益等因素的干扰。同样的网页代码(HTML + CSS),在不…

    好文分享 2025年12月24日
    000
  • 关于CSS background的使用方法

    下面为大家带来一篇css background全部汇总。内容挺不错的,现在就分享给大家,也给大家做个参考。 所有背景属性都不能继承。 1. background-color 所有元素都能设置背景颜色。 background-color的默认值是transparent;也就是说,如果一个元素没有指定背…

    好文分享 2025年12月24日
    000
  • 关于CSS3 rem(设置字体大小)的解析

    本篇文章主要介绍了详解css3 rem(设置字体大小) 教程,内容挺不错的,现在分享给大家,也给大家做个参考。 css3新增了相对单位 rem ,使用rem同em一样皆为相对字体大小单位,不同的是rem相对的是HTML根元素。鉴于很多网友提到了rem,所以我这里就对其中一个总结。 在Web中使用什么…

    2025年12月24日
    000
  • 关于css中清除浮动塌陷的方法

    这篇文章主要介绍了关于css中清除浮动塌陷的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在大家在使用css的过程中,多多少少会遇到清除浮动这个问题。所以这篇文章给大家总结了p+css中关于清除浮动塌陷的4种方法,相信会对大家学习或者使用p+css能有所帮助,有需要的朋友们下面…

    2025年12月24日 好文分享
    000
  • 关于css过渡和3D效果的简单实现

    下面为大家带来一篇css过渡+3d效果的简单实现。内容挺不错的,现在就分享给大家,也给大家做个参考。 css过渡+3D效果的简单实现 guodu#wp{ border: 1px solid red; width: 500px; height: 500px; background-color: pin…

    2025年12月24日
    000
  • 关于css如何控制背景的分享

    这篇文章主要介绍了css控制背景示例,这里提供了css设置背景图片、设置背景颜色的方法,需要的朋友可以参考下 一、设置背景颜色:background-color 十六进制 background-color:#ff0000;英文名称 background-color:red;三原色 backgroun…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信