返回顶部
首页 > 资讯 > 前端开发 > VUE >CSS中圣杯布局的三列式怎么用
  • 944
分享到

CSS中圣杯布局的三列式怎么用

2024-04-02 19:04:59 944人浏览 薄情痞子
摘要

这篇文章给大家介绍CSS的三列式怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。DOM结构如下:XML/html Code复制内容到剪贴板<di

这篇文章给大家介绍CSS的三列式怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

DOM结构如下:

XML/html Code复制内容到剪贴板

  1. <div class="container">  
        <div class="main"></div>  
     <div class="sub"></div>  
     <div class="extra"></div>  
    </div>

流程解说
接下来,让我们一步一步地实现圣杯布局;

1、 首先分别浮动main、sub、extra三列, 然后利用负外边距把sub列和extra列定位到左右两边。这时的CSS代码如下:

CSS Code复制内容到剪贴板

  1. .main {   
     float: left;   
     width: 100%;   
     height: 300px;   
     background-color: rgba(255, 0, 0, .5);   
    }   
    .sub {   
     float: left;   
     width: 200px;   
     height: 300px;   
     margin-left: -100%;   
     background-color: rgba(0, 255, 0, .5);   
    }   
    .extra {   
     float: left;   
     width: 180px;   
     height: 300px;   
     margin-left: -180px;   
     background-color: rgba(0, 0, 255, .5);   
    }

2、 完成上步后,sub和extra列已经到了正确的位置,但是sub和extra列却覆盖了main的两边,对于这个问题,圣杯布局的解决办法是给容器container添加左、右内边距,从而让main列定位到正确的位置。

CSS Code复制内容到剪贴板

  1. .container {   
     padding-left: 210px;   
     padding-right: 190px;   
    }

3、 完成第二步后又出现了新问题:sub、extra列也受到容器左右内边距的影响位置发生了移动。为了解决这个问题,圣杯布局使用相对定位使sub、extra列回到正确的位置。新添加代码如下:

CSS Code复制内容到剪贴板

  1. .sub {   
     position: relative;   
     left: -210px;   
    }   
    .extra {   
     position: relative;   
     rightright: -190px;   
    }

4、 当浏览器缩小到一定程度时,这个布局可能会被破坏,可以在body上添加min-width属性解决。最终的圣杯布局CSS代码如下:

CSS Code复制内容到剪贴板

  1. body {   
     min-width: 600px;   
    }   
    .container {   
     padding-left: 210px;   
     padding-right: 190px;   
    }   
    .main {   
     float: left;   
     width: 100%;   
     height: 300px;   
     background-color: rgba(255, 0, 0, .5);   
    }   
    .sub {   
     position: relative;   
     left: -210px;   
     float: left;   
     width: 200px;   
     height: 300px;   
     margin-left: -100%;   
     background-color: rgba(0, 255, 0, .5);   
    }   
    .extra {   
     position: relative;   
     rightright: -190px;   
     float: left;   
     width: 180px;   
     height: 300px;   
     margin-left: -180px;   
     background-color: rgba(0, 0, 255, .5);   
    }

点击查看在线demo

完整实例
效果如下:
CSS中圣杯布局的三列式怎么用

CSS 和 DOM 代码如下:

CSS Code复制内容到剪贴板

  1. <!DOCTYPE html>   
    <html>   
    <head>   
        <meta charset="utf-8">   
        <meta Http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">   
        <title>圣杯布局</title>   
      
        <style type="text/css">   
        body {background-color: #ffffff; font-size:14px;}   
        #hd, #ft {padding:20px 3px; background-color: #cccccc; text-align: center;}   
        .bd-lft, .bd-rgt, .bd-3-lr, .bd-3-ll, .bd-3-rr {margin:10px 0; min-width:400px;}   
        .main {background-color: #03a9f4; color:#ffffff;}   
        .aside, .aside-1, .aside-2 {background-color: #00bcd4; color:#ffffff;}   
        p {margin:0; padding:20px; text-align: center;}   
           
           
          
        .bd-lft {   
            zoom:1;   
            overflow:hidden;   
            padding-left:210px;   
        }   
        .bd-lft .aside {   
            float:left;   
            width:200px;   
            margin-left:-100%;   
      
            position:relative;   
            left:-210px;   
            _left: 0;   
        }   
        .bd-lft .main {   
            float:left;   
            width:100%;   
        }   
      
      
          
        .bd-rgt {   
            zoom:1;   
            overflow:hidden;   
            padding-right:210px;   
        }   
        .bd-rgt .aside {   
            float:left;   
            width:200px;   
            margin-left:-200px;   
      
            position:relative;   
            rightright:-210px;   
        }   
        .bd-rgt .main {   
            float:left;   
            width:100%;   
        }   
      
      
          
        .bd-3-lr {   
            zoom:1;   
            overflow:hidden;   
            padding-left:210px;   
            padding-right:210px;   
        }   
        .bd-3-lr .main {   
            float:left;   
            width:100%;   
        }   
        .bd-3-lr .aside-1 {   
            float: left;   
            width:200px;   
            margin-left: -100%;   
      
            position:relative;   
            left: -210px;   
            _left: 210px;   
        }   
        .bd-3-lr .aside-2 {   
            float: left;   
            width:200px;   
            margin-left: -200px;   
      
            position:relative;   
            rightright: -210px;   
        }   
      
          
        .bd-3-ll {   
            zoom:1;   
            overflow:hidden;   
            padding-left:420px;   
        }   
        .bd-3-ll .main {   
            float:left;   
            width:100%;   
        }   
        .bd-3-ll .aside-1 {   
            float: left;   
            width:200px;   
            margin-left: -100%;   
      
            position:relative;   
            left: -420px;   
            _left: 0px;   
        }   
        .bd-3-ll .aside-2 {   
            float: left;   
            width:200px;   
            margin-left: -100%;   
      
            position:relative;   
            left: -210px;   
            _left: 210px;   
        }   
      
          
        .bd-3-rr {   
            zoom:1;   
            overflow:hidden;   
            padding-right:420px;   
        }   
        .bd-3-rr .main {   
            float:left;   
            width:100%;   
        }   
        .bd-3-rr .aside-1 {   
            float: left;   
            width:200px;   
            margin-left: -200px;   
      
            position:relative;   
            rightright: -210px;   
        }   
        .bd-3-rr .aside-2 {   
            float: left;   
            width:200px;   
            margin-left: -200px;   
      
            position:relative;   
            rightright: -420px;   
        }   
      
      
        </style>   
      
    </head>   
    <body>   
      
        <div id="hd">头部</div>   
           
        <div class="bd-lft">   
            <div class="main">   
                <p>主内容栏自适应宽度</p>   
            </div>   
      
            <div class="aside">   
                <p>侧边栏固定宽度</p>   
            </div>   
        </div>   
      
        <div class="bd-rgt">   
            <div class="main">   
                <p>主内容栏自适应宽度</p>   
            </div>   
      
            <div class="aside">   
                <p>侧边栏固定宽度</p>   
            </div>   
        </div>   
      
        <div class="bd-3-lr">   
            <div class="main">   
                <p>主内容栏自适应宽度</p>   
            </div>   
      
            <div class="aside-1">   
                <p>侧边栏1固定宽度</p>   
            </div>   
      
            <div class="aside-2">   
                <p>侧边栏2固定宽度</p>   
            </div>   
        </div>   
      
        <div class="bd-3-ll">   
            <div class="main">   
                <p>主内容栏自适应宽度</p>   
            </div>   
      
            <div class="aside-1">   
                <p>侧边栏1固定宽度</p>   
            </div>   
      
            <div class="aside-2">   
                <p>侧边栏2固定宽度</p>   
            </div>   
        </div>   
      
        <div class="bd-3-rr">   
            <div class="main">   
                <p>主内容栏自适应宽度</p>   
            </div>   
      
            <div class="aside-1">   
                <p>侧边栏1固定宽度</p>   
            </div>   
      
            <div class="aside-2">   
                <p>侧边栏2固定宽度</p>   
            </div>   
        </div>   
           
        <div id="ft">底部</div>   
      
    </body>   
    </html>

圣杯布局的优点总结如下:
1.使主要内容列先加载。
2.允许任何列是最高的。
3.没有额外的div。
4.需要的hack很少。

关于CSS的三列式怎么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: CSS中圣杯布局的三列式怎么用

本文链接: https://lsjlt.com/news/81297.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CSS中圣杯布局的三列式怎么用
    这篇文章给大家介绍CSS的三列式怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。DOM结构如下:XML/HTML Code复制内容到剪贴板<di...
    99+
    2024-04-02
  • 如何实现CSS布局中的圣杯布局与双飞翼布局
    这篇文章将为大家详细讲解有关如何实现CSS布局中的圣杯布局与双飞翼布局 ,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。按照我的理解,其实圣杯布局跟双飞翼布局...
    99+
    2024-04-02
  • css中双飞翼布局和圣杯布局的示例分析
    这篇文章主要为大家展示了“css中双飞翼布局和圣杯布局的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中双飞翼布局和圣杯布局的示例分析”这篇文章吧...
    99+
    2024-04-02
  • CSS布局教程:实现圣杯布局的最佳方法
    引言:在网页开发中,布局是非常重要的一部分。好的布局能够使网页达到更好的可读性和可访问性。其中,圣杯布局是一种非常经典的布局方式,它能够在实现自适应的情况下使内容居中,保持优雅的显示效果。本文将为大家介绍如何使用最佳的方法实现圣杯布局,并给...
    99+
    2023-10-21
    最佳方法 CSS布局 圣杯布局
  • CSS两列布局和三列布局的用法
    这篇文章主要介绍了CSS两列布局和三列布局的用法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。两列布局左列定宽,右列自适应float + margin 布局html 代码&l...
    99+
    2023-06-08
  • css怎么实现三列布局
    这篇文章主要介绍css怎么实现三列布局,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!css实现三列布局的方法:1、float浮动布局;2、绝对定位布局;3、flexbox弹性布局,存在IE上兼容性问题,只能支持IE9...
    99+
    2023-06-15
  • CSS中固定宽度的三列布局怎么用
    这篇文章给大家分享的是有关CSS中固定宽度的三列布局怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。固定宽度三列布局这很基础,我们直接看代码便能明白:<div ...
    99+
    2024-04-02
  • 怎么用CSS实现三列DIV等高布局
    本篇内容主要讲解“怎么用CSS实现三列DIV等高布局”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用CSS实现三列DIV等高布局”吧! ...
    99+
    2024-04-02
  • CSS怎么实现三列布局网页效果
    本篇内容介绍了“CSS怎么实现三列布局网页效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这是一个比较常...
    99+
    2024-04-02
  • CSS中怎么实现两列布局
    CSS中怎么实现两列布局,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. absolute + margin 方式首先想到的...
    99+
    2024-04-02
  • CSS怎么实现三栏布局
    这篇文章主要介绍CSS怎么实现三栏布局,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言其实不管是三栏布局还是两栏布局都是我们在平时项目里经常使用的,也许你不知道什么事三栏布局什么是两栏布局但实际已经在用,或许你知道...
    99+
    2023-06-08
  • 怎么在css中实现多列布局
    怎么在css中实现多列布局?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一. 定宽 + 自适应期望效果: 左侧宽度固定, 右侧宽度自适应公共代码: html:&...
    99+
    2023-06-08
  • css中怎么实现一个三栏布局
    css中怎么实现一个三栏布局,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。三栏布局,顾名思义就是两边固定,中间自适应。三栏布局在实际的开发...
    99+
    2024-04-02
  • CSS实现三列DIV等高布局的方法
    本篇内容主要讲解“CSS实现三列DIV等高布局的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS实现三列DIV等高布局的方法”吧!DIV等高布局,我想很...
    99+
    2024-04-02
  • 怎么使用CSS实现多列布局
    这篇“怎么使用CSS实现多列布局”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用CS...
    99+
    2024-04-02
  • CSS中怎么实现多行多列布局
    本篇文章为大家展示了CSS中怎么实现多行多列布局,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。方案一:标签补位我们都知道,之所以对不齐是因为最后一行的子项目没有达到...
    99+
    2024-04-02
  • 纯CSS实现三列DIV等高布局的方法
    本篇内容主要讲解“纯CSS实现三列DIV等高布局的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“纯CSS实现三列DIV等高布局的方法”吧!纯CSS实现三列D...
    99+
    2024-04-02
  • CSS中卡片式图片怎么布局
    本文小编为大家详细介绍“CSS中卡片式图片怎么布局”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS中卡片式图片怎么布局”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。   ...
    99+
    2024-04-02
  • CSS中怎么格式化页面布局
    这篇文章给大家介绍CSS中怎么格式化页面布局,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD...
    99+
    2024-04-02
  • CSS布局教程:实现三栏响应式布局的最佳方法
    前言:在网页设计中,合理的布局是非常重要的。而响应式布局则是指网页能够根据不同设备的屏幕尺寸自动调整和适应布局,以实现更好的用户体验。本文将介绍一种实现三栏响应式布局的最佳方法,并提供具体的代码示例。一、HTML结构首先,我们需要确定HTM...
    99+
    2023-10-21
    响应式布局 CSS布局方法 三栏布局
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作