• 技术文章 >web前端 >前端问答

    css3实现多栏布局有哪几种方法

    青灯夜游青灯夜游2022-02-28 13:52:07原创80

    css3实现多栏布局的方法:1、利用float实现多栏布局;2、利用inline-block盒模型实现多栏布局;3、利用“display: flex”弹性布局实现多栏布局;4、利用“display: table”方式实现多栏布局。

    本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

    css实现多栏布局的几种方式

    假如把下面的三个div显示在同一行

    <div id="parent">
        <div id="box1">1</div>
        <div id="box2">2</div>
        <div id="box3">3</div>
    </div>

    1.png

    1:float实现多栏布局

    float属性控制目标HTML组件是否浮动以及如何浮动。设置该属性过后,对象会被当做块组件处理。float的取值一共有四个:left(向左浮动)、Right(向右浮动)、none(不浮动)、inherit(继承父元素值),将box1,box2,box3都设置成向左浮动,浮动元素的下一个兄弟元素如果也设置了同一浮动方向,则会紧随改元素显示。

    设置了float之后,元素会脱离普通文档流。它们的父元素也不会被撑开,所以#parent的高度此时为0。

        #parent>div{
            border:1px solid black;
            float:left;
            width:200px;
            height:200px;
            text-align: center;
     
        }
       #box1{
           background-color:red;
       }
       #box2{
           background-color:yellow;
       }
        #box3 {
            background-color:blue;
        }

    我们也可以这样,将box1,box2,设置成向左浮动,box3不浮动。由于box1,box2设置了浮动之后脱离了普通文档流。对box3来说就像前面不存在box1,box2一样,box3也会显示在这一行,但是会被box1遮挡住。设置box3的 margin-left:400px;可以让它看起来像是显示在box1,box2后面。这个时候#parent被box3撑开,高度此时为202px。

        #parent>div{
            border:1px solid black;
            width:200px;
            height:200px;
            text-align: center;
     
        }
        #box1{
           float:left;
            background-color:red;
        }
        #box2{
            float:left;
            background-color:yellow;
        }
        #box3 {
            margin-left:400px;
            background-color:blue;
        }

    2:inline-block盒模型

    inline-block盒模型的元素既不会占据一行,同时也支持用width、height指定宽度和高度。display:inline-block 将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。通常需要设置vertical-align:top使其顶端对齐。

        #parent>div{
            display:inline-block;
            border:1px solid black;
            width:200px;
            height:200px;
            text-align: center;
        }
        #box1{
            background-color:red;
        }
        #box2{
            background-color:yellow;
        }
        #box3 {
            background-color:blue;
        }

    inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距。把空格去掉间隙自然就会消失,这样就不会显示间隔。

    <div id="parent">
        <div id="box1">1</div><div id="box2">2</div><div id="box3">3</div>
    </div>

    3:display: flex 弹性布局

    设置#parent容器的 diaplay:flex;父容器相当于一个弹性盒子。里面的div会按照flex-direction设置的模式排列。Flex弹性布局的功能就比较强大了,可以为盒状模型提供最大的灵活性实现复杂的布局,任何一个容器都可以指定为 Flex 布局。flex-direction属性决定主轴的方向,flex-direction: row;表示在父容器里横向排列,flex-direction: column;表示在父容器里纵向排列。

        #parent{
            display: flex;
            flex-direction: row;
        }
        #parent>div{
            border:1px solid black;
            width:200px;
            height:200px;
            text-align: center;
        }
        #box1{
            background-color:red;
        }
        #box2{
            background-color:yellow;
        }
        #box3 {
            background-color:blue;
        }

    4:display: table

    display:table 设置了该属性的元素作为块级表格来显示,类似 <table>。
    display:table-cell 设置了该属性的元素会作为一个表格单元格显示,类似 <td> 和 <th>
    可以用这一系列table-row-group、table-header-group、table-footer-group、table-row等用其他标签实现类似于表格的布局。

    #parent{
            display: table;
        }
        #parent>div{
            display:table-cell;
            border:1px solid black;
            width:200px;
            height:200px;
            text-align: center;
        }
        #box1{
            background-color:red;
        }
        #box2{
            background-color:yellow;
        }
        #box3 {
            background-color:blue;
        }

    (学习视频分享:css视频教程web前端入门教程

    以上就是css3实现多栏布局有哪几种方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:多栏布局 css3
    上一篇:css3中用什么来定义过渡动画的时间 下一篇:css3两种盒模型的区别是什么
    PHP编程就业班

    相关文章推荐

    • 如何用CSS实现多栏布局• css3设置动画匀速的属性单词是哪个• css3实现汤勺捞起汤圆的动画特效(超可爱)!• transform是css3新增的属性吗• css3中用什么来定义过渡动画的时间

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网