zoukankan      html  css  js  c++  java
  • HTML5 For Windows Store学习(2)

    上次在布局中学习了Flexbox,这次学习Grid

    1.Grid基础

      画出一个2*2的Grid,在CSS中控制Grid

    <div class="grid fragment">
           <section aria-label="Main Content" role="main" class="swiper">
               <div id="simple">
                   <h2>Simple Grid</h2>
                   <div class="explanation">this is a simple 2*2 grid</div>
                   <div class="msgrid">
                       <div>A</div>
                       <div>B</div>
                       <div>C</div>
                       <div>D</div>
                   </div>
               </div>
           </section>
        </div>
    

     四个div,包含四个字母,将他们布局在“田”字型内

    .grid #simple > div.msgrid {/*选中msgrid这个div*/
        display:-ms-grid;/*设置为grid布局*/
        -ms-grid-columns:250px 250px;/*2列,2行*/
        -ms-grid-rows:250px 250px;
    }
    .grid #simple > div.msgrid > div {/*选中msgrid类包含的所有小div*/
        border:1px solid gray;
    }
    .grid #simple > div.msgrid > div:nth-child(2) {/*选中msgrid中的第二个div,类推*/
        -ms-grid-column:2;/*布局其单元格,在xaml里grid是0开始,这儿是1开始*/
        -ms-grid-row:1;
    }
    .grid #simple > div.msgrid > div:nth-child(3) {
        -ms-grid-column:1;
        -ms-grid-row:2;
    }
    .grid #simple > div.msgrid > div:nth-child(4) {
        -ms-grid-column:2;
        -ms-grid-row:2;
    }
    

     完成,效果图:

    2.跨列/跨行

    设置一个3*3的Grid,演示跨列、跨行,xaml里的Grid.RowSpan/Grid.ColumnSpan

    <div class="grid fragment">
           <section aria-label="Main Content" role="main" class="swiper">
               <div id="span">
                   <h2>Row/Col Span</h2>
                   <div class="explanation">this is a introduction of how to use row/column span</div>
                   <div class="msgrid">
                       <div></div>
                       <div></div>
                       <div></div>
                   </div>
               </div>
           </section>
        </div>
    

     下面是css

    .grid #span > div.msgrid {/*选中msgrid这个div*/
        display:-ms-grid;/*设置为grid布局*/
        -ms-grid-columns:1fr 1fr 100px;/*2列,2行*/
        -ms-grid-rows:1fr 1fr 100px;/*fr用来描述剩余空间,宽度是300px的话,设为1fr 1fr 1fr则会平摊grid的列*/
        600px;
        height:600px;
    }
    
    .grid #span > div.msgrid > div:nth-child(1) {/*选中msgrid中的第1个div,类推*/
        -ms-grid-column:1;/*布局其单元格,在xaml里grid是0开始,这儿是1开始*/
        -ms-grid-row:1;
        -ms-grid-row-span:2;
        border:2px solid blue;
    }
    .grid #span > div.msgrid > div:nth-child(2) {
        -ms-grid-column:2;
        -ms-grid-row:2;
        -ms-grid-column-span:2;
        border:2px solid green;
    }
    .grid #span > div.msgrid > div:nth-child(3) {
        -ms-grid-column:2;
        -ms-grid-row:3;
        border:2px solid red;
    }
    

     结果:

    3.自定义样式布局

    用div自定义一种样式

    <div class="grid fragment">
           <section aria-label="Main Content" role="main" class="swiper">
               <div id="span">
                   <h2>FancyGrid</h2>
                   <div class="explanation">this is a introduction of how to use grid to create cool layout</div>
                   <div class="msgrid">
                       <div></div>
                       <div></div>
                       <div></div>
                       <div></div>
                       <div></div>
                       <div></div>
                       <div></div>
                   </div>
               </div>
           </section>
        </div>
    

     css

    .grid #span > div.msgrid {/*选中msgrid这个div*/
        display:-ms-grid;/*设置为grid布局*/
        -ms-grid-columns:240px 240px 240px;/*3列,3行*/
        -ms-grid-rows:174px 174px 174px;
    }
        .grid #span > div.msgrid > div {
            border:1px solid;
            margin:5px;
        }
            .grid #span > div.msgrid > div:nth-child(1) {
                -ms-grid-row:1;
                -ms-grid-column:1;
            }
            .grid #span > div.msgrid > div:nth-child(2) {
                -ms-grid-row:2;
                -ms-grid-column:1;
            }
            .grid #span > div.msgrid > div:nth-child(3) {
                -ms-grid-row:3;
                -ms-grid-column:1;
            }
            .grid #span > div.msgrid > div:nth-child(4) {
                -ms-grid-row:1;
                -ms-grid-column:2;
                -ms-grid-row-span:3;
            }
            .grid #span > div.msgrid > div:nth-child(5) {
                -ms-grid-row:1;
                -ms-grid-column:3;
            }
            .grid #span > div.msgrid > div:nth-child(6) {
                -ms-grid-row:2;
                -ms-grid-column:3;
            }
            .grid #span > div.msgrid > div:nth-child(7) {
                -ms-grid-row:3;
                -ms-grid-column:3;
            }
    

     这里有一个问题,nth-child与nth-of-type的区别,还好有人已经对比过了:

    继续,上面的结果

    这是我的个人日记本
  • 相关阅读:
    【OpenCV学习】安防监控可疑走动报警
    【OpenCV学习】OpenMP并行化实例
    【OpenCV学习】cvConvert的使用
    【OpenCV学习】Fuzzy Logic模糊逻辑边缘提取
    C# 委托系列(一)将方法作为方法的参数
    关于dev的Gridview控件的行数据的颜色控制,根据不同的值设置不同颜色
    将gridcontrol导出到excel
    DataGridView中将某行设置为当前可见区域第一行
    如何获得窗体上控件相对于屏幕的位置?
    dev 控件 lookupedit 设置选项值
  • 原文地址:https://www.cnblogs.com/valentineisme/p/3207646.html
Copyright © 2011-2022 走看看