rem布局

253 阅读3分钟

1.rem布局的原理

通过媒体查询的方式动态改变html标签的font-size的大小,当屏幕越大,让html标签的font-size变大即可 当屏幕越小,让html标签的font-size变小即可。

2.rem是什么?怎么用?

rem是一个单位。相对长度单位,相对于根元素(即html元素)font-size计算值的倍数。

举例:

如下,我们有两个元素div和span,我们将HTML整体的字体设置为15px,其中div是HTML的1.5倍书写成1.5rem,即15 * 1.5=22.5px。span的字体大小是HTML的2倍,即15 * 2=30px。为什么要这样写呢?因为我们移动端页面跟pc页面不一样的地方是,当我们缩放页面大小的时候,为了适应不同屏幕大小依旧能够看清楚页面的内容,我们就需要rem来布局能够跟着页面而对字体缩放。

image.png

3.我们应该怎么设置字体根据不同得大小,去显示字体不同得大小呢?

上面的例子虽然设置了相对页面的字体大小,但是整个页面大小确实固定的,但如何实现页面自适应,根据页面的整体变化,字体相对页面变化,这时就需要用到rem布局中的:媒体查询

3.媒体查询

媒体查询可以让我们根据设备显示器的特性(如视口宽度、屏幕比例、设备方向:横向或纵向)为其设定CSS样式,媒体查询中可用于检测的媒体特性有 width 、 height 和 color 等等。使用媒体查询,可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果。

4.媒体查询的使用

语法格式如下:

 /* 1. 媒体查询一般按照从大到小或者 从小到大的顺序来 */
        /* 2. 小于540px 页面的背景颜色变为蓝色 */
        
        @media screen and (max-width: 539px) {
            body {
                font-size: 75px;
                background-color: blue;
            }
        }
        /* 3. 540 ~ 970 我们的页面颜色改为 绿色 */
        /* @media screen and (min-width: 540px) and (max-width: 969px) {
            body {
                font-size: 80px;
                background-color: green;
            }
        } */
        
        @media screen and (min-width: 540px) {
            body {
                font-size: 85px;
                background-color: green;
            }
        }
        /* 4. 大于等于970 我们页面的颜色改为 红色 */
        
        @media screen and (min-width: 970px) {
            body {
                font-size: 90px;
                background-color: red;
            }
        }
        /* 5. screen 还有 and 必须带上不能省略的 */
        /* 6. 我们的数字后面必须跟单位  970px   这个 px 不能省略的 */

媒体类型有四种,all代表所有的媒体设备;print 用于打印机;screen 用于电脑屏幕、平板、手机等(这也是我们通常选择的媒体类型);speech 用于屏幕阅读器。

逻辑运算符:这个我们应该不陌生。分为三种:and、or、not。

媒体特征:书写格式与css样式类似,都是属性名:属性值(例如min-width:200px)