CSS布局(圣杯、双飞翼、flex)

圣杯布局(float + 负margin + padding + position)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>圣杯</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .main{
            float: left;
            width: 100%;
            height: 500px;
            background:red;
        }
        .sub{
            position: relative;
            float: left;
            left: -200px;
            width: 200px;
            height: 500px;
            margin-left: -100%;
            background:blue;
        }
        .extra{
            position: relative;
            float: left;
            right: -180px;
            width: 180px;
            height: 500px;
            margin-left: -180px;
            background:green;
        }
        .content{
            padding: 0 180px 0 200px;
        }
    </style>
  </head>
  <body>
     <!-- 圣杯布局(float + 负margin + padding + position) -->
    <div class="content">
        <div class="main"></div>
        <div class="sub"></div>
        <div class="extra"></div>
    </div>
  </body>
</html>

双飞翼布局(float + 负margin + margin)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title></title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .content{
            float: left;
            width: 100%;
            height: 500px;
            background:red;
        }
        .sub{
            float: left;
            width: 200px;
            height: 500px;
            margin-left: -100%;
            background:blue;
        }
        .extra{
            float: left;
            width: 180px;
            height: 500px;
            margin-left: -180px;
            background:green;
        }
        .main{
            margin: 0 180px 0 200px;
        }
    </style>
  </head>
  <body>
    <!--  双飞翼布局(float + 负margin + margin) -->
    <div class="content">
        <div class="main"></div>
    </div>
    <div class="sub"></div>
    <div class="extra"></div>
  </body>
</html>

flex布局

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title></title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .content{
            display: flex;
        }
        .sub{
            width: 200px;
            height: 500px;
            background:blue;
        }
        .main{
            flex:1;
            height: 500px;
            background:red;
        }
        .extra{
            width: 180px;
            height: 500px;
            background:green;
        }
    </style>
  </head>
  <body>
    <!--  flex布局 -->
    <div class="content">
        <div class="sub"></div>
        <div class="main"></div>
        <div class="extra"></div>
    </div>
  </body>
</html>

一样效果,不一样的布局。如下:

时间: 2024-12-31 08:12:27

CSS布局(圣杯、双飞翼、flex)的相关文章

CSS布局 -- 圣杯布局 &amp; 双飞翼布局

按照我的理解,其实圣杯布局跟双飞翼布局的实现,目的都是左右两栏固定宽度,中间部分自适应. 但在这里实现起来还是有一些区别的 [圣杯布局] 在这里,实现了左(200px) 右(220px) 宽度固定,中间自适应,container部分高度保持一致. DEMO 稍微说明一下: html代码中  middle部分首先要放在container的最前部分.然后是left,right 1.将三者都 float:left , 再加上一个position:relative (因为相对定位后面会用到) 2.mid

css布局--圣杯布局和双飞翼布局

圣杯布局和双飞翼布局是经典的三栏式布局.两种布局达到效果上基本相同,都是两边两栏宽度固定,中间栏宽度自适应.(这两种布局都比较老) 在HTML结构上中间栏在最前面保证了最先渲染中间提升性能,并且兼容性良好.两种布局的实现方法前半部分相同,后半部分的实现各有利弊,下面会简单介绍两者的区别. 布局效果: 注意点: 1. .middle元素位于最前面,保证最先渲染middle部分 2. 三个元素都浮动,使元素保持在一行上 3. .middle元素宽度设为100%,独占一行 4. .left元素设置ma

CSS布局-圣杯布局

圣杯布局 圣杯布局很完美(兼容所有浏览器,包括IE6),但是使用了相对定位,布局有局限性,宽度控制要改的地方也多. 第一种方法公用部分: .lgyz, .lzrg, .lrzcg, .lcgrz, .lzcrg {margin:10px 0; min-width:400px;text-align: center;color:#ffffff; } .left {background-color: #4DBCB0; padding:20px 0;} .aside, .center, .right {

css布局之双飞翼布局

<!-- 双飞翼布局 思想:都是两边固定宽度,中间自适应的三栏布局,其中,中间栏放到文档流前面,保证先行渲染 --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>双飞翼布局</title> <style type="text/css"> .first{ wi

css两栏布局、圣杯布局、双飞翼布局

最近几个月一直用vue在写手机端的项目,主要写业务逻辑,在js方面投入的时间和精力也比较多.这两天写页面明显感觉css布局方面的知识有不足,所以复习一下布局方法. 两栏布局 1.浮动 .box1 .left { float: left; width: 100px; height: 100px; background-color: red; } .box1 .right { margin-left: 100px; height: 100px; background-color: green; }

css布局之圣杯布局和双飞翼布局

圣杯布局和双飞翼布局 今天看了很多圣杯布局和双飞翼布局的技术博客,通过自己的理解总结一下吧. 1.二者相同点: 实现的都是三栏布局,两边的盒子宽度固定,中间盒子自适应,也就是我们常说的固比固布局.它们实现的效果是一样的. 2.不同点: 圣杯布局知识点:浮动,负边距,相对定位,不需要添加额外标签. 双飞翼:只用到浮动,负边距,不需要使用相对定位,需要添加一个额外的标签. 注意:html结构中中间部分要写在左右布局之前,为了优先渲染. 下面就先来看一下圣杯布局的实现过程吧: 先写出基本DOM结构:

CSS网页布局基础-圣杯布局和双飞翼布局

行布局 多列布局 圣杯布局 双飞翼布局 一.行布局 行布局垂直水平居中 注:这里没有用margin: 0 auto;先让它水平居中,而是使用了绝对定位布局,然后设置top:50%; left:50%;但是光设置这个还不够,因为这并不是水平垂直居中,因为它并没有考虑自身的宽度和高度,所以这里根据盒子本身的高宽又再此基础上设置了margin-left和margin-top.如果只设置了top:50%; left:50%;而没有设置margin-left和margin-top,效果如下: 代码如下:

CSS中的圣杯布局,以及圣杯布局与双飞翼布局的区别

为了解决中间宽度自适应,左右列固定宽度,最早出现的是圣杯布局,双飞翼布局是对圣杯布局的改良,同样这种 布局的优势在于在中间列中的文档可以优先渲染. 1.什么是圣杯布局 其实对于圣杯布局,前面一部分与双飞翼布局完全相同 <style>   .column{ float:left } .container{ width:100% } .column{ height:300px; }   #center_panel{ width:100%;  background-color:red; } #rig

CSS中的圣杯布局与双飞翼布局

一,圣杯布局 1,什么是圣杯布局? 所谓圣杯布局就是用于实现一个两侧宽度固定,中间宽度自适应的三栏布局 2,构建圣杯布局的步骤: 2.1,添加一个容器,在这个容器中添加放三个盒子(左.中.右): 2.2,设置两侧盒子(左.右)的宽度 ,使其宽度固定: 2.3,设置中间盒子的宽度为100%,这是中间盒子宽度自适应的关键: 2.4,设置容器的padding-left和padding-right属性,属性值分别为左盒子的宽度和右盒子的宽度: 2.5,让三个盒子都向左浮动,向右浮动可能会出现问题,所以都

圣杯/双飞翼布局

圣杯布局与双飞翼布局针对的都是三列左右栏固定中间栏边框自适应的网页布局 三列布局,中间宽度自适应,两边定宽 中间栏要在浏览器中优先展示渲染 允许任意列的高度最高 显示如图: (1).浮动布局(float+calc) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style type=&