资讯专栏INFORMATION COLUMN

停止使用px单位吧

Cheng_Gang / 2498人阅读

摘要:原文链接单位单位是基于的继承来计算的同样使用,其他属性相同的比例,不同的计算结果使用单位时,等属性是基于当前元素的计算。

原文链接

em单位

</>复制代码

  1. em单位是基于font-size的继承来计算的

</>复制代码

  1. .parent {
  2. font-size: 16px;
  3. }
  4. .parent > .child {
  5. font-size: 1.2em; /* 19.2px */
  6. }
同样使用em,font-size vs 其他属性

</>复制代码

  1. 相同的比例,不同的计算结果;

  2. 使用em单位时,margin、padding等属性是基于当前元素的font-size计算。而当前元素的font-size则是基于父元素。

</>复制代码

  1. .tile {
  2. font-size: 1.2em; /* 19.2px */
  3. margin: 1.2em; /* 23.04px */
  4. padding: 1.2em; /* 23.04px */
  5. border-radius: 1.2em; /* 23.04px */
  6. }
深度嵌套em

导致文本收缩问题

</>复制代码

  1. ul {
  2. font-size: 0.8rem;
  3. }

解决办法 rem

</>复制代码

  1. "Root em" - 相对于根节点()的font-size来计算

使用rem

</>复制代码

  1. ul {
  2. font-size: 0.8rem;
  3. }

建议

</>复制代码

  1. 默认情况下:
    rem用作font-size单位,
    px用作border-width单位,
    em用作padding,margin,border-radius等等

其他

为line-height使用无单位的数字

</>复制代码

  1. 使用单位:一个混合计算的结果
    无单位:根据后代的font sizes自动变化

em还有很多优点

</>复制代码

  1. 更精确
    代码简单
    更好的适应性

[希望的尺寸]/[基础尺寸]

</>复制代码

  1. 14px / 16px = 0.875em
    18px / 14px = 1.2857em


pxtoem.com

印刷排版的基础 - Robert Bringhurst

好看的印刷排版一般用的是比率


type-scale.com

对于web印刷排版有着相同的处理

</>复制代码

  1. 使用标量去计算px单位的font sizes,再转换为一个em标量

可调整尺寸的模块 改变尺寸调整px是沉闷的

在一个容器上,确定一个fontsize基础值

在模块的根节点上使用rem,其他全部使用em

使用rem作为全局尺寸单位
使用em作为区域尺寸单位

缩放模块

</>复制代码

  1. .tile {
  2. border: 2px solid #000;
  3. padding: 0.6em 1.2em;
  4. border-radius: 0.3em;
  5. margin-bottom: 1em;
  6. font-size: 1rem;
  7. }
  8. .tile__title {
  9. font-size: 0.8em;
  10. text-transform: uppercase;
  11. }

demo

缩放形状

</>复制代码

  1. .dropdown__toggle::after {
  2. content: "";
  3. position: absolute;
  4. right: 1em;
  5. top: 1em;
  6. border: 0.3em solid;
  7. border-color: black transparent transparent;
  8. }

demo

缩放图标/图片

</>复制代码

  1. .twitter > img {
  2. height: 1em;
  3. width: 1em;
  4. vertical-align: -0.1em;
  5. }

demo

缩放阴影

</>复制代码

  1. a:link {
  2. text-decoration: none;
  3. box-shadow: inset 0 -0.1em 0 0 #cef;
  4. transition: box-shadow 0.2s ease-in-out;
  5. color: #346;
  6. }
  7. a:hover {
  8. box-shadow: inset 0 -1.2em 0 0 #cef;
  9. }

demo

一些秘诀 可以缩放断点

</>复制代码

  1. :root {
  2. font-size: 0.8em;
  3. }
  4. @media (min-width: 35em) {
  5. :root {
  6. font-size: 1em;
  7. }
  8. }
  9. @media (min-width: 50em) {
  10. :root {
  11. font-size: 1.25em;
  12. }
  13. }
视图相关的单位

</>复制代码

  1. vw - 视图宽度的1%
    vh - 视图高度的1%
    vmin - vh/vw中较小的那个
    vmax - vh/vw中较大的那个

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/115435.html

相关文章

  • 停止使用px单位

    摘要:原文链接单位单位是基于的继承来计算的同样使用,其他属性相同的比例,不同的计算结果使用单位时,等属性是基于当前元素的计算。 原文链接 em单位 em单位是基于font-size的继承来计算的 .parent { font-size: 16px; } .parent > .child { font-size: 1.2em; /* 19.2px */ } 同样使用em,font-...

    RobinQu 评论0 收藏0
  • 如何更愉快地使用rem —— 别说你懂CSS相对单位

    摘要:值得注意的是,这个设置对使用或其他绝对单位定义的字号大小无效。事实上,提供了一个在和间的相对单位折中解决方案,而且更易于使用。图使用相对单位和继承字号的面板下面是模板,加到你的页面吧。 showImg(https://segmentfault.com/img/bVbdOMr?w=920&h=450); 前段时间试译了Keith J.Grant的CSS好书《CSS in Depth》,其...

    Snailclimb 评论0 收藏0
  • 如何更愉快地使用em —— 别说你懂CSS相对单位

    摘要:相对单位的值会根据外部影响因素的变化而变化。很自然,相对单位使用起来会比较困难。在本章中,我将揭开相对单位的神秘面纱。重点来了,使用相对单位声明的值会由浏览器转化为一个绝对值,我们称之为计算值。 showImg(https://segmentfault.com/img/bVbdtsA); 前段时间试译了Keith J.Grant的CSS好书《CSS in Depth》,其中的第二章《W...

    gekylin 评论0 收藏0
  • JS基础入门篇(十三)—定时器

    摘要:但是定时器没关。通过变量来控制定时器内函数的执行停止播放默认为。方式三通过关闭定时器来停止轮播图的运动。,通过传入定时器的编号来。清除定时器,再开启定时器。所以,每次打开定时器,先清除前一个。点击页面任何一个位置关闭定时器。 1.定时器 定义:当我们需要隔一段时间,再执行一段代码。或者每隔一段时间,执行一段代码。我们可以使用定时器。使用场景:例如网站轮播图的自动滚动。广告延迟弹出的某些...

    kaka 评论0 收藏0

发表评论

0条评论

Cheng_Gang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<