zoukankan      html  css  js  c++  java
  • 双飞翼布局-浮动、负边距

    一、参考文章

      1.双飞翼布局和圣杯布局的对比(http://www.cnblogs.com/tinyphp/p/4743674.html)

    .双飞翼局中用到的属性:

      1.浮动——float:设置浮动后,元素会脱离文档流,如果希望文档流按照布局顺序显示,那么需要用到清除浮动hack

        (1).left:将元素像右浮动

        (2).right:将元素向左浮动

        (3).none(默认值):取消元素的浮动

      2.清除浮动——clearfix hackhttp://nicolasgallagher.com/micro-clearfix-hack/):主要实现如下

    1 .clearfix:before,
    2 .clearfix:after{
    3     content:" ";
    4     display:table;
    5 }
    6 
    7 .clearfix:after{
    8     clear:both;
    9 }

      3.边距——margin

        (1).此属性为正值时,用于设置元素的外边距。

        (2).此属性为负值时,会将元素往前拉。

    .总结:

      1.双飞翼布局的核心还是负边距的运用。

      2.和圣杯布局不同的是,在不定宽元素中添加了一个div,使得左右两侧元素不用使用相对定位来处理偏移。

      3.关键点拆分:

        (1).中间不定宽元素放在最前。(目的是为了让不定宽元素最先渲染)

        (2).中间不定宽元素中需要再多添加一个div来包裹自定义内容。(这是第一个和圣杯布局最大的不同)

        (3).子元素浮动后,需要在父元素清除浮动

        (4).利用负边距,将左侧和右侧元素拉到中间不定宽元素的两侧。(左右两侧的元素不用使用相对定位,这个任务交给不定宽元素中的div元素来搞定就可以了。这是第二个和圣杯布局最大的不同)

    .界面截图:

    .代码:

      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     .clearfix:before,
     20     .clearfix:after {
     21       content: " ";
     22       display: table;
     23     }
     24 
     25     .clearfix:after {
     26       clear: both;
     27     }
     28 
     29     body {
     30       min-width: 800px;
     31     }
     32 
     33     header,
     34     footer {
     35       background: yellowgreen;
     36     }
     37 
     38     .container {
     39       background: gray;
     40     }
     41 
     42     .container>main {
     43       width: 100%;
     44       float: left;
     45       background: darkorange;
     46     }
     47 
     48     .container>main>.inner {
     49       margin: 0 150px;
     50     }
     51 
     52     .container>nav,
     53     .container>aside {
     54       background: deeppink;
     55       width: 150px;
     56       float: left;
     57     }
     58 
     59     .container>nav {
     60       margin-left: -100%;
     61     }
     62 
     63     .container>aside {
     64       margin-left: -150px;
     65     }
     66   </style>
     67 </head>
     68 
     69 <body>
     70   <header>
     71     this is header
     72   </header>
     73   <div class="container clearfix">
     74     <main class="main">
     75       <div class="inner">
     76         this is main content.
     77       </div>
     78     </main>
     79     <nav>
     80       <ul>
     81         <li>
     82           <a href="#">link1</a>
     83         </li>
     84         <li>
     85           <a href="#">link2</a>
     86         </li>
     87         <li>
     88           <a href="#">link3</a>
     89         </li>
     90         <li>
     91           <a href="#">link4</a>
     92         </li>
     93         <li>
     94           <a href="#">link5</a>
     95         </li>
     96         <li>
     97           <a href="#">link6</a>
     98         </li>
     99         <li>
    100           <a href="#">link7</a>
    101         </li>
    102         <li>
    103           <a href="#">link8</a>
    104         </li>
    105         <li>
    106           <a href="#">link9</a>
    107         </li>
    108         <li>
    109           <a href="#">link10</a>
    110         </li>
    111       </ul>
    112     </nav>
    113     <aside>
    114       <ul>
    115         <li>
    116           <a href="#">link1</a>
    117         </li>
    118         <li>
    119           <a href="#">link2</a>
    120         </li>
    121         <li>
    122           <a href="#">link3</a>
    123         </li>
    124         <li>
    125           <a href="#">link4</a>
    126         </li>
    127         <li>
    128           <a href="#">link5</a>
    129         </li>
    130         <li>
    131           <a href="#">link6</a>
    132         </li>
    133         <li>
    134           <a href="#">link7</a>
    135         </li>
    136         <li>
    137           <a href="#">link8</a>
    138         </li>
    139         <li>
    140           <a href="#">link9</a>
    141         </li>
    142         <li>
    143           <a href="#">link10</a>
    144         </li>
    145       </ul>
    146     </aside>
    147   </div>
    148   <footer>
    149     this is footer
    150   </footer>
    151 </body>
    152 
    153 </html>
  • 相关阅读:
    聊天类功能测试用例
    即时通讯软件针对通讯以及协议方面有哪些测试点?
    面试前期准备工作
    黑盒功能业务测试过程
    Web网站实现facebook登录
    Nginx配置SSL实现HTTPS访问
    jQuery判断当前页面是APP内打开还是浏览器打开
    jQuery实现点击图片简单放大效果
    Linux排查PHP-FPM进程过量常用命令
    PHP防止SQL注入攻击和XSS攻击
  • 原文地址:https://www.cnblogs.com/ch11ry/p/7833495.html
Copyright © 2011-2022 走看看