首页 前端知识 CSS两栏布局(左边宽度固定,右边自适应)

CSS两栏布局(左边宽度固定,右边自适应)

2024-09-12 23:09:48 前端知识 前端哥 318 471 我要收藏
以下5种实现方式:

所有实现方式的HTML代码是相同的,如下:

// html
<div class="father">
     <div class="left"></div>
     <div class="right"></div>
</div>

对应的CSS代码如下:
(1)利用浮动
左边元素宽度固定(假如设置为100px),向左浮动;
右边元素margin-left设置为100px,宽度设置为auto;

// css样式
.father {
  height: 100px;
}
.left {
  float: left;
  width: 100px;
  height: 100px;
  background: green;
}
.right {
  margin-left: 100px;
  width: auto;
  height: 100px;
  background: red;
}

实现效果如下:在这里插入图片描述
(2)利用浮动+BFC
左边元素宽度固定(假如设置为100px),向左浮动;
右侧元素设置overflow: hidden; 这样右边就触发了BFC,BFC的区域不会与浮动元素发生重叠,所以两侧就不会发生重叠;

// css样式
.father {
  height: 100px;
}
.left {
  float: left;
  width: 100px;
  height: 100px;
  background: green;
}
.right {
  overflow:hidden;
  height: 100px;
  background: red;
}

(3)利用flex布局
父元素设置flex布局,左边元素宽度固定,右边元素设置为flex:1(填满剩余空间,flex: 1是flex-grow:1; flex-shrink:1; flex-basis: auto的缩写)

// css样式
.father {
  display:flex;
  height:100px;
}
.left {
  width: 100px;
  background: green;
}
.right {
  flex:1;
  background: red;
}

(4)利用grid布局
父元素设置"display: grid"属性,设置"grid-template-columns: 100px 1fr"属性,表示第一列宽度始终为100px,第二列的宽度自适应。

// css样式
.father {
  display:grid;
  height:100px;
  grid-template-columns:100px 1fr;
}
.left {
  background: green;
}
.right {
  background: red;
}

(5)利用绝对定位
父级元素设置为相对定位。
子元素设置为绝对定位,左边子元素设置left为0,宽度100,右边元素left设置为100

// css样式
.father {
   position: relative;
}
.left {
  position: absolute;
  width:100px;
  left:0;
  height: 100px;
  background: green;
}
.right {
  position: absolute;
  left:100px;
  right:0;
  height:100px;
  background: red;
}
转载请注明出处或者链接地址:https://www.qianduange.cn//article/18145.html
标签
评论
发布的文章

3.1 requests与JSON基础

2024-10-15 23:10:08

React 安装(NPM)

2024-10-15 23:10:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!