zoukankan      html  css  js  c++  java
  • web前端学习(二)html学习笔记部分(9)-- 响应式布局

    1.2.23  响应式布局基础

    1.2.23.1  响应式布局介绍

      1.响应式布局是2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多终端 -- 而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的,其目的是为用户提供更加舒适的界面和更好的用户体验。

      2.优缺点

        优点:1)面对不同分辨率设备灵活性强

           2)能够快捷解决多设备显示适应问题

        缺点:1)兼容各种设备工作量大,效率低下

              2)代码累赘,会出现隐藏无用的元素,加载时间长

      例子:www.etao.com(现在在电脑网页端打开好像没有用响应式布局了)

    1.2.23.2  响应式布局效果

      1.CSS中的Media Query(媒介查询):

        设备宽高:device-width,device-height

        渲染窗口的宽和高:width,height

        设备的手持方向:orientation 

        设备的分辨率:resolution

      2.使用方法:

        外联

        内嵌样式

    <!DOCTYPE html>
    <html lang="en" >
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" href="style.css" type="text/css" media="only screen and (max-640px)">
        <!--外联样式-->
        <style>
            <!--内嵌样式-->
            <!--注意and之后和括号之间的空格不能省略-->
            @media screen and (min-640px){
                body{
                    background-color: blueviolet;
                }
            }
        </style>
    </head>
    <body>
    </body>
    </html>

    1.2.23.3  响应式布局操作

    传统的js操作实现响应式布局

    index.html

    <!DOCTYPE html>
    <html lang="en" >
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width = device-width,initial-scale=1">
        <!--initial-scale=1的作用是指按原比例缩放-->
        <title>Title</title>
        <link rel="stylesheet" href="style.css" type="text/css">
    </head>
    <body>
    <div class="heading"></div>
    <div class="container">
        <div class="left"></div>
        <div class="main"></div>
        <div class="right"></div>
    </div>
    <div class="footing"></div>
    </body>
    </html>

    style.css

    *{
        margin:0px;
        padding:0px;
    }
    
    .heading,
    .container,
    .footing{
        margin: 10px auto;
    }
    .heading{
        height:100px;
        background-color: chocolate;
    }
    .left,
    .right,
    .main{
        background-color: cornflowerblue;
    }
    
    .footing{
        height:100px;
        background-color: aquamarine;
    }
    @media screen and (min- 960px){
        .heading,
        .container,
        .footing{
            width:960px;
        }
    
        .left,
        .main,
        .right{
            float:left;
            height:500px;
        }
    
        .left,
        .right{
            width:200px;
        }
    
        .main{
            margin-left:5px;
            margin-right: 5px;
            width:550px;
        }
    
        .container{
            height:500px;
        }
    }
    @media screen and (min-600px) and (max-960px){
        .heading,
        .container,
        .footing{
            width:600px;
        }
    
        .left,
        .main{
            float:left;
            height:400px;
        }
    
        .right{
            display:none;
        }
    
        .left{
            width:160px;
        }
    
        .main{
            margin-left:5px;
            width:435px;
        }
    
        .container{
            height:400px;
        }
    
    }
    
    @media screen and (max-600px){
        .heading,
        .container,
        .footing{
            width:400px;
        }
    
        .left,
        .right{
            width:400px;
            height:100px;
        }
        .main{
            margin-top:10px;
            width:400px;
            height:200px;
        }
        .right{
            margin-top:10px;
        }
    
        .container{
            height:420px;
        }
    
    }

    1.2.24  响应式布局之bootstrap

    1.2.24.1  Bootstrap介绍

      1.了解Bootstrap

        简洁、直观、强悍的前端开发框架、让web开发更迅速、简单。

      2.优点:

        快速、简单、灵活的栅格系统、小而强大、响应式布局、跨平台等

      网站:getbootstrap.com

      

      bootstrap在线引入

    <!DOCTYPE html>
    <html>
    <head>
        <title>Bootstrap 实例</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    
        <!--BootStrap中文网提供的免费CDN加速服务-->
    
        <!--Bootstrap核心CSS文件-->
        <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.1.3/css/bootstrap.min.css">
    
        <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
        <script src="http://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    
        <!--Bootstrap核心JavaScript文件-->
        <script src="http://cdn.bootcss.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
    
    </head>
        
    <body>
    </body>
    </html>

    1.2.24.2  css、组件以及JS介绍

      usingbootstrap.html

    <!DOCTYPE html>
    <html>
    <head>
        <title>Bootstrap 实例</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    
        <!--BootStrap中文网提供的免费CDN加速服务-->
    
        <!--Bootstrap核心CSS文件-->
        <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css">
    
        <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
        <script src="http://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    
        <!--Bootstrap核心JavaScript文件-->
        <script src="http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    
        <link rel="stylesheet" href="ownstyle.css" type="text/css">
    
    </head>
    
    <body>
    <div class="container">
    <div class="row">
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
        <div class="col-md-1">.col-md-1</div>
    </div>
    <div class="row">
        <div class="col-md-8">.col-md-8</div>
        <div class="col-md-4">.col-md-4</div>
    </div>
    <div class="row">
        <div class="col-md-4">.col-md-4</div>
        <div class="col-md-4">.col-md-4</div>
        <div class="col-md-4">.col-md-4</div>
    </div>
    <div class="row">
        <div class="col-md-6">.col-md-6</div>
        <div class="col-md-6">.col-md-6</div>
    </div>
    </div>
    </body>
    </html>

      ownstyle.css

    .row{
        margin-bottom: 20px;
    }
    .row .row{
        margin-top: 0px;
        margin-bottom: 10px;
    }
    [class*="col-"]{
        padding-top: 15px;
        padding-bottom: 15px;
        background-color: #eee;
        background-color: rgba(86,61,124,.15);
        /*后面的.15是指透明度和0.15一个效果*/
        /*这里本来老师讲写的两行内容,但是只有后一个有作用,冲突了才会这样处理*/
        border:1px solid #dddddd;
        border:1px solid rgba(86,61,124,.2);
    }

    老师用的是老版的所以直接在head中修改bootstrap的版本号就可以了。

    1.2.24.3  响应式布局之使用Bootstrap

     这里我发现了几个问题:

      margin设定了之后是指距离元素的border距离,与其他元素的margin无关

      bootstrap里有很多已经设定好的类名,我们可以在网站中检查元素来知道到底该用什么类。

      一般用container来放置居中元素。

  • 相关阅读:
    相机篇
    ValueAnimator动画跳过中间过程的问题
    android 双向文字问题
    android让xml布局的底部跟随软键盘
    给fragment设置进入和退出动画
    android布局控件的LayoutParams
    注意点
    关于与条件判断中的顺序
    栈的反转
    从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/foreverlin/p/10015593.html
Copyright © 2011-2022 走看看