zoukankan      html  css  js  c++  java
  • 四、(3)网格布局+媒体查询

    (1)网格布局

    <!DOCTYPE html>
    <head>
        <meta charset="utf-8" name="viewport"  content="width=device-width,initial-scale=1.0">
        <title>网格布局</title>
        <style>
            *{
                box-sizing: border-box;
            }
            body{ margin: 0;padding: 0;}
            
            .grid-container{
                background-color: #2196F3;padding: 10px;height: 400px;/*搭配7做测试用*/
    
                display: grid;  /*3(搭配1用)、设置display的属性值为grid,使得这个div成为网格布局容器grid-container。
                                                                    1>display 属性设置为 inline-grid,以生成行内的网格容器。
                                                                    2>网格容器的所有直接子元素将自动成为网格项目grid-item。
                                                                    3>网格项的垂直线(和边框重合)被称为列: 网格列grid-column。
                                                                    4>网格项的水平线(和边框重合)被称为行: 网隔行grid-row。
                                                                    5>每列/行之间的间隔称为间隙: 网格间隙的简写grid-gap(grid-row-gap grid-column-gap)。
                                                                    6>列之间的线(和边框不重合)称为列线(column lines)
                                                                    7>行之间的线(和边框不重合)称为行线(row lines)。
                                                                    */
                grid-template-columns: auto auto auto auto; /*4、定义网格布局中的列数,并可定义每列的宽度。
                                                                    1>网格布局包含 4 列,请指定这 4 列的宽度;
                                                                    2>所有列都应当有相同的宽度,则设置为 "auto";
                                                                    */
                /*grid-template-rows: 80px 200px; /*5、定义每行的高度。值是以空格分隔的列表,其中每个值定义相应行的高度。*/
                
                /*justify-content: end; /*6、用于在容器内对齐整个网格。(网格的总宽度必须小于容器的宽度,这样 justify-content 属性才能生效)
                                                                    1>space-evenly : 在列之间以及列周围,留出相等的空间;
                                                                    2>space-around : 在列周围,留出相等的空间;
                                                                    3>space-between : 在列之间,留出相等的空间;
                                                                    4>center : 在容器中间,对齐网格;
                                                                    5>start : 在容器开头,对齐网格;
                                                                    6>end : 在容器末端,对齐网格;
                                                                     */
                /*align-content: end; /*7、用于垂直对齐容器内的整个网格。(网格的总高度必须小于容器的高度,这样 align-content 属性才能生效)
                                                                    1>space-evenly :使行之间以及行周围,具有相等的空间;
                                                                    2>space-around :使行周围,具有相等的空间;
                                                                    3>space-between :使行之间,具有相等的空间;
                                                                    4>center : 对齐容器,中间的行;
                                                                    5>start :对齐容器,开头的行;
                                                                    6>end :对齐容器,末端的行;
                                                                    */
    
                /*grid-gap: 10px 20px; /*8、调整(每列/行之间的)间隙大小。是 grid-row-gap 和 grid-column-gap 属性的简写属性*/
            }
    
            .grid-item{
                background-color: #D3EAFD;border: 1px solid black;
                text-align: center;padding: 5px 10px;
            }
           
            .item1{ /*10(搭配9用)、个性化设置单个网格项目的位置。把网格项目放在列线 1,并在列线 3 结束它。(注意,会覆盖前面网格容器的grid-template-columns属性 =>4)*/
                
                /*grid-column-start: 1;  代码1
                  grid-column-end: 3;    代码2  */
                  
                  grid-column: 1 / 3;        /*(代码1和2的简写)使 "item1" 从第 1 列开始并在第 3 列之前结束*/
                  grid-column: 1 / span 2;   /*(代码1和2的简写)使 "item1" 从第 1 列开始,并跨越 2 列*/
    
            }
            .item1 { /*11(搭配9用)、个性化设置单个网格项目的位置。把网格项目放在行线 1,并在行线 3 结束它。(注意,会覆盖前面网格容器的grid-template-rows属性 =>5)*/
                
                /*grid-row-start: 1;     代码3
                  grid-row-end: 3;       代码4  */
    
                  grid-row: 1 / 3;                    /*(代码3和4的简写)在 row-line 1 开始,在 row-line 3 结束*/
                  grid-row: 1 / span 2;               /*(代码3和4的简写)使 "item1" 从第 1 行开始并跨越 2 行*/
            }
            
            .item4{ /*12(搭配9用)、个性化设置单个网格项目的位置。(注意:可以通过使用媒体查询来重新排列某些屏幕尺寸的顺序)*/
    
                /* grid-row-start: 2;     代码5
                   grid-column-start: 3;  代码6
                   grid-row-end: 4;       代码7
                   grid-column-end: 5;    代码8  */
    
                   grid-area: 2 / 3 / 4 / 5;             /*(代码5和6和7和8的简写)*/
                   grid-area: 2 / 3 / span 2 / span 2;   /*(代码5和6和7和8的简写)*/
            }
    
        </style>
    </head>
    <body>
        <div class="grid-container"><!--1、设置网格布局容器的div,class=grid-container-->
            <!--2、设置网格项目的div, class=grid-item-->
            <div class="grid-item item1">1</div><!--9、给单个网格项目取类名itemX-->
            <div class="grid-item item2">2</div>
            <div class="grid-item item3">3</div>
            <div class="grid-item item4">4</div>
            <div class="grid-item item5">5</div>
            <div class="grid-item item6">6</div>
            <div class="grid-item item7">7</div>
            <div class="grid-item item8">8</div>
            <div class="grid-item item9">9</div>
        </div>
    </body>
    View Code

    (2)网格布局_命名网格项目

    <!DOCTYPE html>
    <head>
        <meta charset="utf-8" name="viewport"  content="width=device-width,initial-scale=1.0">
        <title>网格布局(命名网格项目)</title>
        <style>
            *{
                box-sizing: border-box;
            }
            body{ margin: 0;padding: 0;}
    
            .grid-container1 > div{
                background-color: #D3EAFD;color: black;padding: 5px;border: 1px solid white;
                text-align: center;
            }
    
            .item1{ /*1、grid-area也可以用于为网格项目分配名称。表示item1 的名称是 "myArea"*/
                grid-area: myArea;
            }
    
            .grid-container1{
                background-color: #2196F3;padding: 5px;margin: 20px 0 20px 0;
    
                display: grid;
    
                /*2(搭配1用)、设置grid-template-areas属性,属性值必须加''单引号。 
                                                          1>'myArea myArea myArea myArea myArea' : 名称是 "myArea"的网格项目,跨越五列网格布局中的所有五列;
                                                          2>'myArea myArea . . .' : 名称是 "myArea"的网格项目,跨越五列网格布局中的两列(句号代表没有名称的项目);
                                                          3>'myArea myArea . . .' 'myArea myArea . . .' : 名称是 "myArea"的网格项目,跨越两列和两行;
                                                          */
                grid-template-areas: 'myArea myArea . . .' 'myArea myArea . . .';
            }
    
    
           
            /*3、命名所有项目,并制作一张随时可用的网页模板。*/
            .grid-container > div{
                background-color: #D3EAFD;color: black;padding: 5px;border: 1px solid white;
                text-align: center;
            }
    
            .grid-container{
                background-color: #2196F3;padding: 5px;margin: 20px 0 20px 0;
    
                display: grid;
                /*grid-template-columns: auto auto auto auto auto;*/
    
                /*5(搭配4用)、其实就是一个三行六列的矩阵*/
                grid-template-areas: 'header header header header header header'
                                     'menu main main main right right'
                                     'menu footer footer footer footer footer'
                                      ;
            }
             /*4、命名所有网格项目*/
            .item7{ grid-area: header;}
            .item8{ grid-area: menu;}
            .item9{ grid-area: main;}
            .item10{ grid-area: right;}
            .item11{ grid-area: footer;}
          
          
        </style>
    </head>
    <body>
        <div class="grid-container1">
            <div class="item1">1</div>
            <div class="item2">2</div>
            <div class="item3">3</div>
            <div class="item4">4</div>
            <div class="item5">5</div>
            <div class="item6">6</div>
        </div>
        <!--3、命名所有项目,并制作一张随时可用的网页模板。-->
        <div class="grid-container">
            <div class="item7">Header</div>
            <div class="item8">Menu</div>
            <div class="item9">Main</div>
            <div class="item10">Right</div>
            <div class="item11">Footer</div>
        </div>
    </body>
    View Code

    (3)网格布局+媒体查询

    <!--
        适用:IE16以上包括16
        优点:无需使用浮动或定位。
        例如:网格布局允许我们将项目放置在我们喜欢的任意位置。只需设置网格项目的grid-area属性即可。
              应用在可以通过使用媒体查询来重新排列网格项目的顺序。
    -->
    <!DOCTYPE html>
    <head>
        <meta charset="utf-8" name="viewport"  content="width=device-width,initial-scale=1.0">
        <title>媒体查询+网格视图</title>
        <style>
            *{
                box-sizing: border-box;
            }
            body{ margin: 0;padding: 0;}
    
            .item1{ grid-area: asideLeft;height: 300px;}
            .item2{ grid-area: main;height: 500px;}
            .item3{ grid-area: asideRight; height: 400px;}
    
            .grid-container{
                background-color: #2196F3; padding: 5px;
    
                display: grid;
                /*grid-template-columns: auto auto auto;*/
                grid-template-areas: 'asideLeft' 
                                     'main'
                                     'asideRight';
            }
            .grid-container > div{
                background-color: #D3EAFD;color: black;border: 1px solid white;
                text-align: center;
            }
    
            /*针对平板*/
            @media  only screen and (min-600px) {
                .grid-container{
                    grid-template-areas: 'asideLeft   asideRight'
                                         'main main';
                }
            }
    
            /*针对桌面*/
            @media  only screen and (min-769px) {
                .grid-container{
                    grid-template-areas: 'asideLeft  main asideRight';
                }
            }
        </style>
    </head>
    <body>
        <div class="grid-container">
            <div class="item1">asideLeft</div>
            <div class="item2">main</div>
            <div class="item3">asideRight</div>
        </div>
    </body>
    View Code
  • 相关阅读:
    HTML5拖动画布/拖放
    随着通信和编程,它是一门艺术系列6(技术的情况)
    POJ 3652 &amp; ZOJ 2934 &amp; HDU 2721 Persistent Bits(数学 元)
    使用注解实现 bean 转 csv
    hdu4956 Poor Hanamichi
    教你如何赚你的第一桶金
    【Java 它 JVM】对象的创建过程
    c#控制台应用程序-“进入指定日期检查出星期几”
    迎接和书,这是一个很好的满足
    bloom filter与dawgdic(一种trie树)
  • 原文地址:https://www.cnblogs.com/Strugglinggirl/p/15792726.html
Copyright © 2011-2022 走看看