CSS实现左侧固定,右侧自适应(5种方法)

复制代码
<div class="father">
      <!-- 左右div不能调换顺序来写 -->
    <div class="left">固定宽度区</div>
    <div class="right">自适应区</div>
</div>

一、利用左侧浮动float+右侧margin-left

复制代码
 /* 利用浮动float+margin-left(左侧宽度需固定)*/
 /* 左边元素宽度固定(加入设置为300px)向左浮动 */
 /* 右边元素margin-left设置为100px,宽度不用设置 */
        .father{
            height: 300px;
        }
        .left{
            width: 300px;
            height: 300px;
            background-color: pink;
            float:left;   /*左侧设置浮动float*/
        }
        .right{
            margin-left: 300px;  /*右侧设置左边距margin-left等于左边盒子的宽度*/
            height: 300px;
            background-color: blue;
        }

二、利用左侧浮动float+右侧BFC

复制代码
/* 利用浮动+BFC */
/* 左边元素宽度固定(假如设置为300px),向左浮动  */
/* 右边元素设置overflow:hidden;  */
       .father {
           height: 300px;
        }
       .left {
           float: left;   /*左浮动,固定宽度*/
           width: 300px;
           height: 300px;
           background-color: pink;
        }
       .right {
           overflow:hidden;   /*设置 overflow:hidden触发BFC*/
           height: 300px;
           background-color: blue;
        }

三、利用flex布局

复制代码
 /* 利用flex布局 */
 /* 父元素设置flex布局 */
 /* 左边元素宽度固定 */
 /* 右边元素设置flex:1 */
        .father {
           display:flex;     /* 父元素设置flex布局 */ 
           height:300px;
        }
       .left {
            width: 300px;
            background-color: pink;
        }
        .right {   
             flex:1;           /* 右边元素设置flex:1 */
             background-color: blue;
        }

四、利用grid布局

复制代码
/* 利用grid布局 */
/* 父元素设置 display:gird; 属性、设置gird-template-columns:300px 1fr 属性*/
/* 表示第一列宽度始终为300px 第二列的宽度自适应 */
        .father {
           display:grid;    /*父元素设置 display:gird; */
           height:300px;
           grid-template-columns: 300px 1fr; /* 设置gird-template-columns:300px 1fr */
        }
       .left {
            background-color: pink;
        }
        .right {
             background-color: blue;
        }

五、利用定位

复制代码
/* 利用绝对定位 */
/* 父级设置为相对定位,子级设置为绝对定位 */
/* 左边子元素设置left为0,宽度300,右边子元素right设置为0 */
        .father {
            position: relative;  /* 父级设置为相对定位 */
        }
       .left {
            position: absolute; /* 子级设置为绝对定位 */
            width: 300px;
            height: 300px;
            left: 0;           /* 左边子元素设置left为0*/
            background-color: pink;
        }
        .right { 
             position: absolute;  /* 子级设置为绝对定位 */
             left: 300px;
             right: 0;           /* 右边子元素right设置为0*/
             height: 300px;
             background-color: blue;
        }

实现效果:

相关推荐
打小就很皮...3 分钟前
React Router 7 全局路由保护
前端·react.js·router
起风的蛋挞12 分钟前
Matlab提示词语法
前端·javascript·matlab
有味道的男人13 分钟前
1688获得商品类目调取商品榜单
java·前端·spring
txwtech19 分钟前
第20篇esp32s3小智设置横屏
前端·html
Exquisite.27 分钟前
企业高性能web服务器---Nginx(2)
服务器·前端·nginx
DFT计算杂谈34 分钟前
VASP+PHONOPY+pypolymlpj计算不同温度下声子谱,附批处理脚本
java·前端·数据库·人工智能·python
广州华水科技37 分钟前
如何选择合适的单北斗变形监测系统来保障水库安全?
前端
Mr_Xuhhh42 分钟前
MySQL表的内连接与外连接详解
java·前端·数据库
Amumu1213843 分钟前
Vue Router(一)
前端·javascript·vue.js
郑州光合科技余经理1 小时前
可独立部署的Java同城O2O系统架构:技术落地
java·开发语言·前端·后端·小程序·系统架构·uni-app