加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

用CSS如何做三列布局中间自适应的效果?

发布时间:2023-08-09 14:29:37 所属栏目:语言 来源:
导读: 三列布局是比较常见的布局,这篇文章给大家分享用CSS实现三列布局中间自适应的效果,也就是两列固定与一列自适应,小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的很详细,感兴趣的朋友接下来一起跟
  三列布局是比较常见的布局,这篇文章给大家分享用CSS实现三列布局中间自适应的效果,也就是两列固定与一列自适应,小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的很详细,感兴趣的朋友接下来一起跟随小编看看吧。
 
    1.flex布局
 
    Flexible Box 模型,通常被称为 flexbox,是一种一维的布局模型。它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力。我们说 flexbox 是一种一维的布局,是因为一个 flexbox 一次只能处理一个维度上的元素布局,一行或者一列。这里我们利用flex布局来实现两列固定一列自适应
 
<!DOCTYPE html>
 
<html lang="en">
 
<head>
 
    <meta charset="UTF-8">
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
    <title>Document</title>
 
    <style>
 
    #main{
 
         display: flex;/*设为伸缩容器*/
 
         }
 
    #left{
 
        width:200px;/*左侧固定宽度*/
 
        height:400px;
 
        background:aqua;
 
    }
 
    #center{
 
         flex-grow:1; /*填满剩余空间*/
 
         height:400px;  
 
         background:green;}
 
    #right{
 
        width:200px;/*固定右侧宽度*/
 
        height:400px;  
 
        background:blue;
 
        }
 
    </style>
 
</head>
 
<body>
 
    <div id="main">
 
        <div id="left"></div>
 
        <div id="center"></div>
 
        <div id="right"></div>
 
    </div>
 
</body>
 
</html>
 
    2.使用浮动方法
 
    对左右两部分分别使用float:left和float:right,float使左右两个元素脱离文档流,中间元素正常在正常文档流中。对中间文档流使用margin指定左右外边距进行定位。
 
<!DOCTYPE html>
 
<html lang="en">
 
<head>
 
    <meta charset="UTF-8">
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
    <title>Document</title>
 
    <style>
 
    *{margin: 0;padding: 0;}
 
    #main{
 
         width: 100%;height: 400px;
 
         }
 
    #left{
 
        width:200px;/*左侧固定宽度*/
 
        height:400px;
 
        float: left; /*设置容器左浮动*/
 
        background:aqua;
 
    }
 
    #center{
 
         width: 100%;
 
         height:400px;
 
         margin: 0 200px;/*设置容器左右外边距*/
 
         background:green;}
 
    #right{
 
        width:200px;/*固定右侧宽度*/
 
        height:400px;  
 
        float: right;/*设置容器右浮动*/
 
        background:blue;
 
        }
 
    </style>
 
</head>
 
<body>
 
    <div id="main">
 
        <div id="left"></div>
 
        <div id="right"></div>
 
        <div id="center"></div>
 
    </div>
 
</body>
 
</html>
 
    3.使用浮动加calc函数
 
    对三部分使用float:left,然后左右两边固定宽度,中间使用calc函数计算宽度。
 
<!DOCTYPE html>
 
<html lang="en">
 
<head>
 
    <meta charset="UTF-8">
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
    <title>Document</title>
 
    <style>
 
    *{margin: 0;padding: 0;}
 
    #main{
 
         width: 100%;height: 400px;
 
         }
 
    #left{
 
        width:200px;/*左侧固定宽度*/
 
        height:400px;
 
        float: left; /*设置容器左浮动*/
 
        background:aqua;
 
    }
 
    #center{
 
         width: calc(100% - 400px);/*设置中间宽度为父容器宽度减去400px*/
 
         height:400px;
 
         float: left;/*设置容器左浮动*/
 
         background:green;}
 
    #right{
 
        width:200px;/*固定右侧宽度*/
 
        height:400px;  
 
        float:left;/*设置容器左浮动*/
 
        background:blue;
 
        }
 
    </style>
 
</head>
 
<body>
 
    <div id="main">
 
        <div id="left"></div>
 
        <div id="center"></div>
 
        <div id="right"></div>
 
    </div>
 
</body>
 
</html>
 
    4.使用绝对定位
 
    用绝对定位把左右两部分固定在两端,对中间文档流使用margin指定左右外边距进行定位。
 
<!DOCTYPE html>
 
<html lang="en">
 
<head>
 
    <meta charset="UTF-8">
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
    <title>Document</title>
 
    <style>
 
    *{margin: 0;padding: 0;}
 
    #main{
 
         width: 100%;
 
         height: 400px;
 
         position: relative;/*父容器使用相对定位*/
 
         }
 
    #left{
 
        width:200px;/*左侧固定宽度*/
 
        height:400px;
 
        position: absolute;/*左侧使用固定定位*/
 
        left: 0;/*定位在容器最左边*/
 
        top: 0;
 
        background:aqua;
 
    }
 
    #center{
 
         width:100%;
 
         height:400px;
 
         margin: 0 200px;/*设置中间容器左右外边距*/
 
         background:green;}
 
    #right{
 
        width:200px;/*固定右侧宽度*/
 
        height:400px;
 
        position: absolute;/*右侧使用固定定位*/
 
        right: 0;/*定位在容器最右边*/
 
        top: 0;
 
        background:blue;
 
        }
 
    </style>
 
</head>
 
<body>
 
    <div id="main">
 
        <div id="left"></div>
 
        <div id="center"></div>
 
        <div id="right"></div>
 
    </div>
 
</body>
 
</html>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章