• 圣杯布局-flex


    .参考文献:

      1.Flex 布局教程:语法篇(http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html)

      2.Flex 布局教程:实例篇(http://www.ruanyifeng.com/blog/2015/07/flex-examples.html)

    .圣杯布局中用到的属性:

      1.盒子属性:

        (1).flex-direction:用于确定元素的排列顺序

          (a).row(默认值):元素以水平方向,从左至右排列。

          (b).row-reverse:元素以水平方向,从右至左排列。

          (c).column:元素以垂直方向,从上至下排列。

          (d).column-reverse:元素以垂直方向,从下至上排列。

      2.元素属性:

        (1).flex-grow:元素的放大比例。(默认0)如果全部元素的值都为1,那么将均分剩余空间;如果一个元素的值为2,其他元素的值都为1,那么这个元素所占的剩余空间比其他元素多一倍。

        (2).flex-shrink:元素的缩小比例。(默认1)当剩余空间小于元素空间,那么元素会被缩小。设置为0时,表示元素不会被缩小。

        (3).flex-basis:在分配剩余控件之前,元素占据主轴的空间。(默认auto)类似和widthheight属性一样设置值。

        (4).flexflex-growflex-shrinkflex-basis的简写属性,推荐使用简写属性。顺序依次是flex-grow flex-shrink flex-basis。例如:flex:0 0 100px,即元素不被放大和缩小,主轴空间为100像素。

        (5).order:元素的排序序号,类似z-index。数值越大,越靠后。(默认0

    .总结:

      flex布局的优点在于很轻松的能完成元素的对齐(垂直居中也变得轻而易举)、多栏的布局(等分或固定长度)。在用flex模仿圣杯布局时,只使用了很少的几个属性,就达到了以往复杂的float的布局效果。

    .界面截图:

     

    五.代码:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 
      4 <head>
      5   <meta charset="UTF-8">
      6   <meta name="viewport" content="width=device-width, initial-scale=1.0">
      7   <meta http-equiv="X-UA-Compatible" content="ie=edge">
      8   <title>Document</title>
      9   <style>
     10     * {
     11       margin: 0px;
     12       padding: 0px;
     13     }
     14 
     15     ul {
     16       list-style: none;
     17     }
     18 
     19     body {
     20       display: flex;
     21       flex-direction: column;
     22       height: 100vh;
     23       min-width: 800px;
     24     }
     25 
     26     header,
     27     footer {
     28       background: deeppink;
     29     }
     30 
     31     .container {
     32       flex: 1;
     33       display: flex;
     34     }
     35 
     36     .container>.left {
     37       order: -1;
     38       flex: 0 0 220px;
     39       background: yellowgreen;
     40     }
     41 
     42     .container>.main {
     43       flex: 1;
     44     }
     45 
     46     .container>.right {
     47       flex: 0 0 150px;
     48       background: yellowgreen;
     49     }
     50   </style>
     51 </head>
     52 
     53 <body>
     54   <header>this is header</header>
     55   <div class="container">
     56     <main class="main">
     57       this is main content
     58       <section>
     59         float block
     60       </section>
     61     </main>
     62     <nav class="left">
     63       <ul>
     64         <li>
     65           <a href="#">link1</a>
     66         </li>
     67         <li>
     68           <a href="#">link2</a>
     69         </li>
     70         <li>
     71           <a href="#">link3</a>
     72         </li>
     73         <li>
     74           <a href="#">link4</a>
     75         </li>
     76         <li>
     77           <a href="#">link5</a>
     78         </li>
     79       </ul>
     80     </nav>
     81     <aside class="right">
     82       <ul>
     83         <li>
     84           <a href="#">link1</a>
     85         </li>
     86         <li>
     87           <a href="#">link2</a>
     88         </li>
     89         <li>
     90           <a href="#">link3</a>
     91         </li>
     92         <li>
     93           <a href="#">link4</a>
     94         </li>
     95         <li>
     96           <a href="#">link5</a>
     97         </li>
     98       </ul>
     99     </aside>
    100   </div>
    101   <footer>
    102     this is footer.
    103   </footer>
    104 </body>
    105 
    106 </html>
  • 相关阅读:
    SWTDesigner注册器
    C# 创建、部署和调用WebService的简单示例
    (android实战)应用在线版本更新
    jQuery获取Select选择的Text和 Value(转)
    Android 判断sd卡和sim卡是否可用
    Android开发中如何固定屏幕显示!
    入侵网站简单方法总结
    【Android】防止UI界面被输入法遮挡(画面随输入法自适应)
    关于字符编码的问题
    最好用的mysql密码忘记的解决方法
  • 原文地址:https://www.cnblogs.com/ch11ry/p/7828133.html
Copyright © 2020-2023  润新知