rem和px的转换

remCSS3中新增加的一个单位值,他和em单位一样,都是一个相对单位。不同的是em是相对于元素的父元素的font-size进行计算;rem是相对于根元素htmlfont-size进行计算。这样一来rem就绕开了复杂的层级关系,实现了类似于em单位的功能。

Rem的使用

前面说了em是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小,在我们多次使用时,就会带来无法预知的错误风险。而rem是相对于根元素<html>,这样就意味着,我们只需要在根元素确定一个参考值,这个参考值设置为多少,完全可以根据您自己的需求来定。

假设就使用浏览器默认的字号16px,来看一些px单位与rem之间的转换关系:

|  px  |     rem       |
------------------------
|  12  | 12/16 = .75   |
|  14  | 14/16 = .875  |
|  16  | 16/16 = 1     |
|  18  | 18/16 = 1.125 |
|  20  | 20/16 = 1.25  |
|  24  | 24/16 = 1.5   |
|  30  | 30/16 = 1.875 |
|  36  | 36/16 = 2.25  |
|  42  | 42/16 = 2.625 |
|  48  | 48/16 = 3     |
-------------------------        

如果你要设置一个不同的值,那么需要在根元素<html>中定义,为了方便计算,时常将在<html>元素中设置font-size值为62.5%:此时1rem=10px

html {
    font-size: 62.5%; /* 10 ÷ 16 × 100% = 62.5% */
}

 

|  px  |     rem        |
-------------------------
|  12  | 12/10 = 1.2    |
|  14  | 14/10 = 1.4    |
|  16  | 16/10 = 1.6    |
|  18  | 18/10 = 1.8    |
|  20  | 20/10 = 2.0    |
|  24  | 24/10 = 2.4    |
|  30  | 30/10 = 3.0    |
|  36  | 36/10 = 3.6    |
|  42  | 42/10 = 4.2    |
|  48  | 48/10 = 4.8    |
-------------------------        

 或者在<html>元素中设置font-size值为312.5%此时1rem=50px,与62.5%相差五倍,

html {
    font-size: 312.5%
}
@media screen and (max-width:359px) and (orientation:portrait) {
    html {
        font-size: 266.67%
    }
}

@media screen and (min-width:360px) and (max-width:374px) and (orientation:portrait) {
    html {
        font-size: 300%
    }
}

@media screen and (min-width:384px) and (max-width:399px) and (orientation:portrait) {
    html {
        font-size: 320%
    }
}

@media screen and (min-width:400px) and (max-width:413px) and (orientation:portrait) {
    html {
        font-size: 333.33%
    }
}

@media screen and (min-width:414px) and (max-width:431px) and (orientation:portrait) {
    html {
        font-size: 345%
    }
}

@media screen and (min-width:432px) and (max-width:479px) and (orientation:portrait) {
    html {
        font-size: 360%
    }
}

@media screen and (min-width:480px) and (max-width:639px) and (orientation:portrait) {
    html {
        font-size: 400%
    }
}

@media screen and (min-width:640px) and (orientation:portrait) {
    html {
        font-size: 533.33%
    }
}

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在响应式设计中,我们通常使用媒体查询来根据不同的设备尺寸和分辨率来调整网站的布局和样式。同时,我们也可以使用媒体查询来转换rem与px单位。 首先,我们需要在根元素(html)中设置基准字体大小。例如,我们可以将基准字体大小设置为16px: ```css html { font-size: 16px; } ``` 接下来,我们可以使用媒体查询来根据不同的设备尺寸和分辨率来调整基准字体大小。例如: ```css @media screen and (max-width: 768px) { html { font-size: 14px; } } @media screen and (min-width: 768px) and (max-width: 1024px) { html { font-size: 15px; } } @media screen and (min-width: 1024px) { html { font-size: 16px; } } ``` 在这个例子中,我们使用三个媒体查询来分别设置不同设备尺寸下的基准字体大小。当屏幕宽度小于等于768px时,基准字体大小为14px;当屏幕宽度大于768px且小于等于1024px时,基准字体大小为15px;当屏幕宽度大于1024px时,基准字体大小为16px。 接下来,我们可以使用rem单位来设置其他元素的字体大小、宽度、高度等属性。例如,我们可以将一个元素的字体大小设置为1.5rem: ```css .element { font-size: 1.5rem; } ``` 这里的1.5rem实际上是相对于根元素(html)的基准字体大小而言的。如果根元素的基准字体大小为16px,那么1.5rem就相当于24px。 如果我们需要将px转换成rem,我们可以使用以下公式: ``` rem = px / 基准字体大小 ``` 例如,我们想将一个元素的宽度从100px转换成rem,假设根元素的基准字体大小为16px,则可以这样计算: ``` rem = 100px / 16px = 6.25rem ``` 因此,我们可以这样设置元素的宽度: ```css .element { width: 6.25rem; } ``` 这样,在不同设备尺寸下,由于根元素的基准字体大小不同,元素的宽度也会自动适应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值