css基础笔记十四,响应式布局,手机,平板,电脑共享一套代码,都可以显示不同效果,满足业务需求

目录

媒体查询

响应式布局


媒体查询

媒体查询 能使页面在不同终端设备上面达到不同的效果

媒体查询会根据设备的大小 自动识别加载不同的样式.

首先我们要设置meta标签

在head标签里面添加

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" >

详细意思为:

meta 用来表达网页的属性和关键字
contert 内容
name=viewport  表示是不同视口的名字
width=decice-width  宽度等于当前设备的宽度  宽度等于设备的款速
maximum-scale 允许用户缩放到的最大比例(默认设置是1.0)
user-scalable 用户是否可以收到缩放(默认设置为no)

然后我们在css里面设置 媒体查询语法

通常手机是小于768px;平板是大于768px小于992px.电脑是大于992px

        @media screen and (max-width: 768px ){
        /*    手机通常是双倍分辨率 当屏幕宽度最大为768px的时候
        则通常是手机端*/
            body{
                background-color: yellow;
            }
        }
        @media screen and (max-width: 992px) and (min-width: 768px) {
        /*    在992和768之间的时候 通常是平板*/
            body{
                background-color: blue;
            }
        }
        @media screen and (min-width: 992px) {
        /*    屏幕最小是992 也就是大于992的时候 通常是pc端*/
            body{
                background-color: green;
            }
        }

以上这个案例演示了 主背景在不同设备下 显示的颜色不同.

响应式布局

响应式布局需要依托媒体查询实现

能在不同屏幕 不同设备上面显示网页不同的展现方式就是响应式布局

优点

        面对不同的分辨率 ,设备灵活性强;

        能够快速解决多设备显示适应问题;

缺点

        兼容各种设备工作量大,效率低下

        代码累赘,会大量出现隐藏无用的元素,导致页面加载时间长,性能偏低.

响应式布局案例:

<body>
<!--布局
一个整个的网页大容器 root
    头部全部的容器 toball
        包括导航容器 nav
            导航容器包括list容器 他包括2个内容
                1,列表  包括4个列表 有4个超链接
                2,搜索框包括 一个搜索文本框 一个搜索按钮框
-->
<div class="root">
    <div class="topall">
        <div class="nav">
            <div class="list">
                <ul>
                    <li><a href="#">首页</a></li>
                    <li><a href="#">手机</a></li>
                    <li><a href="#">电视</a></li>
                    <li><a href="#">平板</a></li>
                    <li><a href="#">购物</a></li>
                    <li><a href="#">旅游</a></li>
                    <li><a href="#">关于我们</a></li>
                    <li><a href="#">作者</a></li>
                </ul>

                <div class="in">
                    <input class="in1" type="text" placeholder="手机">
                    <input class="in2" type="submit" value="搜索">
                </div>
            </div>
        </div>
    </div>



</div>


<input type="color">

css

<!--
手机  小于768
平板 大于768 小于992
小屏幕  大于992 小于1240
大屏幕 大于1240
-->
<!--
响应式布局 优点
面对不同的分辨率设备灵活度强
能够快捷的解决多设备显示的适应问题

缺点
兼容各种设备工作量大,效率低下
代码累赘,会出现隐藏无用的元素,加载的时间长

-->


    <style>
/*<!--      第一步  去除网页默认边框-->*/
        *{
            margin: 0;
            padding: 0;
        }
    /*第二部,操作我们的整个容器 让整个容器背景为灰色*/
        .root{
            background-color: gray;
        }
    /* 第三步  操作我们的导航容器 让导航框显示出来*/
        .nav{
            width: 100%;
            background-color: #555;


        }
    /*    第四步 开始操作我们的列表容器  因为他包括一个列表ul区域 一个搜索容器*/
        .list{
            /*宽度整体百分之80*/
            /*居中现实*/
            width: 80%;
            margin: 0 auto;
            /*颜色只是看看位置,后期会给干掉*/
            /*细节美化 干掉列表背景*/
            /*background-color: yellow;*/
            /*    由于子元素ul  列表的类元素  还有 容器都设置了浮动 所以在他父亲容器清楚浮动效果*/
            overflow: hidden;
            clear: both;
        }
    /*    第五步,操作我们的列表容器下面的列表*/
        .list ul li{
            /*1,让列表横向摆放 浮动*/
            float: left;
        /*    干掉列表前面的标记*/
            list-style-type: none;
        /*    让列表的每个元素不要挨着那么近 修改内边距*/
            padding: 15px;
            /*外边距也距离10px*/
            margin: 10px;
        }
    /*    第六步 处理后面搜索框 也浮动起来且 向右边摆放*/
        .nav .list .in{
            /*往右摆放*/
            float: right;
        }
    /*   第七部 由于列表里面的元素浮动 然后搜索框也浮动 导致挤到了 所以让我们ul也浮动起来  他们都在list容器下面的ul 让他也浮动起来*/
        .list ul{
            /*margin: 0 auto;*/
            overflow: hidden;
            clear: both;
            float: left;
        }
    /*   第八步 细节美化,
    1,当鼠标悬停到列表的每个超链接元素的时候 背景响应
    2,美化超链接符号 干掉下划线,并且是字体间距稍微大一点点
    3,美化搜索框
    4,美化登录框
    */
    /*    鼠标悬停设置*/
        .list ul li:hover{
            /**/
            background-color: green;
            /*边大一点*/
            transform: scale(1.2,1.2);

        }
        /*当鼠标点击不松手的时候*/
        .list ul li:active{
            background-color: red;
        }
        /*美化超链接按钮*/
        .list ul li a{
            /*干掉下划线*/
            text-decoration: none;
        /*    颜色变白色*/
            color: white;
        /*    间距稍微扩大一点*/
        /*    letter-spacing: 10px;*/
        }
    /*   美化第一个搜索框 */
        .in1{
            /*设置宽度*/
            width: 200px;
            /*设置内边距*/
            padding: 0 20px;
        /*    设置外边距*/
            margin: 15px 15px;
        /*    设置高度*/
            height: 40px;
        /*    倒角一下 美观一下*/
            border-radius: 40px;
            /*清楚边框效果*/
            border: none;
        }

        .in1:hover{
            transform: scale(1.1,1.2);
        }
    /*    美化搜索按钮 呼吸灯效果也安排上*/
        .in2{
            width: 50px;
            height: 40px;
            border-radius: 10px;
        /*    添加一个外边距*/
            margin: 20px;

        /*    设置呼吸灯效果*/
            animation: name1 3s linear infinite alternate;
        }
        @keyframes name1 {
            /*直接从百分之50开始*/
            50%{
                opacity: 0.5;
                box-shadow: 0 0 2px 2px rgba(0,0,0,0.5);
            }
            100%{
                opacity: 1;
                box-shadow: 0 0 2px 2px rgba(0,0,0,1);
            }
        }
    /*    当鼠标悬停的时候 添加一个特效*/
        .in2:hover{
            transform: scale(1.2,1.2);
        }
        /*当鼠标点击不松手的时候效果*/
        .in2:active{
            transform: scale(0.8,0.8);
        }

    /*    这个案例的重点来了  响应式布局 不同设备上面的不同现实效果
    一套代码 通过响应式布局 完成

   具体代码如下:
    */

    /*    在手机上的时候*/
        @media screen and (max-width: 768px){
            /*列表内容居中*/
            .list{
               width: 100%;
                margin: 0 auto;
            }
        /*    搜索框隐藏*/
            .in{
                display: none;
            }
        }
    /*在平板的时候 */
        @media screen and (min-width: 768px) and (max-width: 992px){
            /*列表内容居中*/
            .list{
               /*这个像素值解释根据我们导航宽度来调整*/
               width: 768px;
                margin: 0 auto;
            }
            /*当在平板的时候 搜索框变成块级元素*/
            .in{
                display: block;
            }
        }
    /*在pc端的时候 */
        @media screen and (min-width: 992px) {
                        /*列表内容居中*/
            .list{
               width: 80%;
                margin: 0 auto;
            }
            /*当在平板的时候 搜索框变成块级元素*/
            .in{
                display: block;
            }
        }

    </style>

效果

电脑端

平板端

手机端

总结

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值