rem基础及媒体查询


思考

  1. 页面布局能否随着屏幕大小变化而变化?
  2. 流式布局和flex布局主要针对于宽度布局,那高度如何设置?
  3. 怎么样让屏幕发生变化的时候元素高度和宽度等比例缩放?

一、rem基础

rem单位

rem(root em)是一个相对单位,类似于em,em是父元素字体大小。

不同的是,rem的基准相对于html元素的字体大小

比如,根元素(html)设置font-size=12px;非根元素设置width:2rem;则换成px表示就是24px

二、媒体查询

1.什么是媒体查询

媒体查询(media query)是css3新语法。

2.语法规范

 @media mediatype and|not|only (media feature) {
            CSS-Code;
        }
  • 用@media开头,注意@符号
  • mediatype媒体类型
  • 关键字and not only
  • media feature媒体特性 必须有小括号包含

(1)mediatype查询类型

将不同的终端设备划分为不同的类型,称为媒体类型

解释说明
all用于所有设备
print用于打印机和打印预览
screen用于电脑屏幕,平板电脑,智能手机等

(2)关键字

关键字将媒体类型或多个媒体特性连接到一起做为媒体查询的条件。

  • and:可以将多个媒体特性连接到一起,相当于“且”的意思。
  • not:排除某个媒体类型,相当于“非”的意思,可以省略。
  • only:指定某个特定的媒体类型,可以省略。

(3)媒体特性

每种媒体类型都具有各自不同的特性,根据不同媒体类型的媒体特性设置不同的展示风格。暂且了解三个。

注意它们要加小括号包含

解释说明
width定义输出设备中页面可见区域的宽度
min-width定义输出设备中页面最小可见区域宽度
max-width定义输出设备中页面最大可见区域宽度

3.案例:根据页面宽度改变背景颜色

(1)实现思路

  1. 按照从大到小或者从小到大的思路
  2. 注意我们有最大值max-width和最小值min-width都是包含等于的
  3. 当屏幕小于540像素,背景颜色变为蓝色(x<=539)
  4. 当屏幕大于等于540像素并且小于等于969像素的时候背景颜色为绿色(540=<x<=969)
  5. 当屏幕大于等于970像素的时候,背景颜色为红色(x>=970)

注意:为了防止混乱,媒体查询我们要按照从小到大或者从大到小的顺序来写,但是我们最喜欢的还是从小到大来写,这样代码更简洁

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

第三档会覆盖第二弹中冲突的部分,也就是大于等于970px的部分,因此第二档只有540到969之间有效。

4.媒体查询+rem实现元素动态大小变化

rem单位是跟着html走的,有了rem页面元素可以设置不同大小尺寸

媒体查询可以根据不同设备宽度来修改样式

媒体查询+rem 就可以实现不同设备宽度,实现页面元素大小的动态变化

5.案例:媒体查询+rem实现元素变化

 <style>
        /* html{
            font-size: 100px;
        } */
        
        @media screen and (min-width:640px) {
            html {
                font-size: 50px;
            }
        }
        
        @media screen and (min-width:960px) {
            html {
                font-size: 100px;
            }
        }
        
        .top {
            height: 1rem;
            font-size: .5rem;
            background-color: skyblue;
            color: #fff;
            text-align: center;
            line-height: 1rem;
        }
    </style>
</head>

<body>
    <div class="top">购物车</div>
</body>

6.引入资源(理解)

当样式比较繁多的时候,我们可以针对不同的媒体使用不同stylesheets(样式表)。

原理,就是直接在link中判断设备的尺寸,然后引用不同的css文件。

(1)语法规范

 <link rel="stylesheet" media="mediatype and|not|only(media feature) "href="mystylesheet.css">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值