004-CSS-左右经典布局

左右经典布局

  • 方案一:弹性盒子布局
  • [方案二:绝对定位 + padding](#方案二:绝对定位 + padding)
  • [方案三:绝对定位 + margin](#方案三:绝对定位 + margin)
  • [方案四:行内块布局 + calc](#方案四:行内块布局 + calc)
  • [方案五:浮动 + BFC](#方案五:浮动 + BFC)

方案一:弹性盒子布局

💡 Tips:左侧子盒子宽度固定,右侧子盒子 flex: 1

javascript 复制代码
.parent {
  display: flex;
  width: 500px;
  height: 300px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  margin-bottom: 20px;
}
.left-son {
  width: 100px;
  height: 100%;
  background: #4a90e2;
}
.right-son {
  flex: 1;
  height: 100%;
  background: #dfffdf;
}

方案二:绝对定位 + padding

💡 Tips:父盒子相对定位,padding-left,左侧子盒子绝对定位

javascript 复制代码
.parent {
  position: relative;
  padding-left: 100px;
  width: 500px;
  height: 300px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  margin-bottom: 20px;
}
.left-son {
  position: absolute;
  left: 0;
  width: 100px;
  height: 100%;
  background: #4a90e2;
}
.right-son {
  height: 100%;
  background: #dfffdf;
}

方案三:绝对定位 + margin

💡 Tips:父盒子相对定位,左侧子盒子绝对定位,右侧子盒子margin-left

javascript 复制代码
.parent {
  position: relative;
  width: 500px;
  height: 300px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  margin-bottom: 20px;
}
.left-son {
  position: absolute;
  left: 0;
  width: 100px;
  height: 100%;
  background: #4a90e2;
}
.right-son {
  margin-left: 100px;
  height: 100%;
  background: #dfffdf;
}

方案四:行内块布局 + calc

💡 Tips:父盒子font-size: 0,子盒子行内块,左侧子盒子100px,右侧子盒子 calc(100% - 100px)

javascript 复制代码
.parent {
  font-size: 0; /* 解决DOM换行引起的空白像素问题 */
  width: 500px;
  height: 300px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  margin-bottom: 20px;
}
.left-son {
  display: inline-block;
  vertical-align: top;
  width: 100px;
  height: 100%;
  background: #4a90e2;
}
.right-son {
  display: inline-block;
  vertical-align: top;
  width: calc(100% - 100px);
  height: 100%;
  background: #dfffdf;
}

方案五:浮动 + BFC

💡 Tips:左侧子盒子浮动,右侧盒子 overflow:hidden; 触发 BFC

javascript 复制代码
.parent {
  width: 500px;
  height: 300px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  margin-bottom: 20px;
}
.left-son {
  float: left;
  width: 100px;
  height: 100%;
  background: #4a90e2;
}
.right-son {
  overflow: hidden;
  height: 100%;
  background: #dfffdf;
}
相关推荐
拉不动的猪13 分钟前
刷刷题16
前端·javascript·面试
祈澈菇凉2 小时前
如何结合使用thread-loader和cache-loader以获得最佳效果?
前端
垣宇2 小时前
Vite 和 Webpack 的区别和选择
前端·webpack·node.js
java1234_小锋2 小时前
一周学会Flask3 Python Web开发-客户端状态信息Cookie以及加密
前端·python·flask·flask3
化作繁星2 小时前
如何在 React 中测试高阶组件?
前端·javascript·react.js
Au_ust2 小时前
千峰React:函数组件使用(2)
前端·javascript·react.js
爱吃南瓜的北瓜2 小时前
npm install 卡在“sill idealTree buildDeps“
前端·npm·node.js
TTc_2 小时前
记录首次安装远古时代所需的运行环境成功npm install --save-dev node-sass
前端·npm·sass
翻滚吧键盘2 小时前
npm使用了代理,但是代理软件已经关闭导致创建失败
前端·npm·node.js
烂蜻蜓2 小时前
Uniapp 设计思路全分享
前端·css·vue.js·uni-app·html