zoukankan      html  css  js  c++  java
  • 双飞翼布局和圣杯布局的理解

    在很久以前,有了解过双飞翼布局,但那是仅仅只是了解,当时知道怎么样去布局,但是在后来的实际项目中没有用到,就往了怎么回事了;

    前不久去面试,有被问到了这个问题,当时只记得听过,但是具体怎么实现的就全然不知了,所以特地了解了下,并理解了实现原理。

    其实最重要的就是利用 float 属性,使盒子脱离文档流;一下记录一下实现方法;

    第一步:实现基本布局

    <div class="main">
         <div class="center"></div>
         <div class="left"></div>
         <div class="right"></div>
    </div>
    main{
        width: 100%;
        height: 100px;
        overflow: hidden;
        div{
            height: 100px;
            float: left;
            word-break: break-all;
    
        }
        .center{
            background: yellow;
            width: 100%;
        }
        .left{
            width: 100px;
            background: deepskyblue;
        }
        .right{
            width: 100px;
            background: red;
        }
    }

    看起来是这样的;只需要做一些调整就ok了,利用margin-left 到达左右布局;left盒子  margin-left :-100%;right 盒子 margin-left :-100px;这样布局基本完成;效果是这样的

    那么问题来了,中间的盒子就被两边盒子遮挡住了一部分;接下来就是双飞翼布局和圣杯布局的差异了,实现的目的是相同的,只不过是思想不同;

    圣杯布局注意利用父级的内边距,也就是padding,然后左右两个盒子的相对定位;让左边盒子向左移,右边盒子向右移动就搞定;

    一下是完整的css 代码;

    .main{
        width: 100%;
        height: 100px;
        overflow: hidden;
        padding: 0 100px;
        div{
            height: 100px;
            float: left;
            word-break: break-all;
        }
        .center{
            background: yellow;
            width: 100%;
        }
        .left{
            position: relative;
            width: 100px;
            background: deepskyblue;
            margin-left: -100%;
            left: -100px;
        }
        .right{
            position: relative;
            width: 100px;
            background: red;
            margin-left: -100px;
            right: -100px;
        }
    }

    其实我还有一种方法也能实现,也是通过padding ;设置center  中间盒子 padding : 0 100px; 同样可以达到效果。个人觉得没有什么问题;但还是需要实践。也不用给左右两边盒子设置 相对定位了,这样代码量还会少一点;但是这样的话要是给中间盒子设置一个图片背景就话就会麻烦一点,所以还是用经典的圣杯布局和双飞翼吧。经典是有原因的,是经过时间和实践的考考验的。

  • 相关阅读:
    一个数组找出第k大的数(待补)
    变动二叉树
    判断一个二叉树
    Redis的过期策略和内存淘汰机制
    sql连接详解
    http 请求和格式
    java基础知识
    分页信息
    持续集成之Jenkins自动部署war包到远程服务器
    no-sql数据库之redis
  • 原文地址:https://www.cnblogs.com/DivHao/p/7822796.html
Copyright © 2011-2022 走看看