【我的前端】CSS网页布局:实现三栏布局的方法

简介: 需求:实现左右两栏固定宽度,中间一栏自适应宽度。

实现三栏布局的3种方法

需求:实现左右两栏固定宽度,中间一栏自适应宽度。

1、浮动float+cac()

核心思想:先使用浮动将三栏水平排列,然后对中间栏使用 calc() 函数来计算去除左右两栏固定宽度后剩余的宽度。

HTML结构:

<div class="container">
  <div class="left">left</div>
  <div class="middle">middle</div>
  <div class="right">right</div>
</div>

css样式:

div {
    height: 100px;
}
.left {
    float: left;
    width: 200px;
    background-color: red;
}
.middle {
    float: left;
    width: calc(100% - 400%);
    background-color: green;
}
.right{
    float: left;
    width: 200px;
    background-color: blue;
}

这是浏览器缩放100%的效果图:


只有到500%的时候才能显示中间栏来:


2、浮动float+margin负值

核心思想:利用浮动的方式,为左右两栏设置对应方向的浮动。中间设置左右两个方向的 margin 负值,注意这种方式,中间一栏必须放到最后。

HTML结构:

<div class="container">
  <div class="left">left</div>
  <div class="right">right</div>
  <div class="middle">middle</div>
</div>

css样式:

div {
    height: 100px;
}
.left {
    float: left;
    width: 200px;
    background-color: red;
}
.right{
    float: right;
    width: 200px;
    background-color: blue;
}
.middle {
    margin-left: 200px;
    margin-right: 200px;
    background-color: green;

再次优化后:


怎么样,是不是好多了?别急,还能再优化呢!

3、定位position

核心思想:利用 绝对定位 的方式。

好处:这种实现方式的三栏 HTML 结构可以任意摆放,不用考虑先后顺序。

HTML结构:

<div class="container">
  <div class="left">left</div>
  <div class="right">right</div>
  <div class="middle">middle</div>
</div>

css样式:

.container {
    position: relative;
}
.left {
    position: absolute;
    left: 0;
    width: 200px;
    background-color: red;
}
.right{
    position: absolute;
    right: 0;
    width: 200px;
    background-color: blue;
}
.middle {
    position: absolute;
    left: 200px;
    right: 200px;
    background-color: green;
}

这是最终100%的效果图:


500%的时候就找不到中间栏了:



缩放到25%的时候中间栏就长得不像话了:



其实还有很多布局方法,例如:网格布局、圣杯布局等等,我就不再列举了。另外,不知道朋友们发现没有,像这样的三栏布局和响应式设计似乎有着异曲同工之妙呀!

相关文章
|
2天前
|
前端开发
CSS实现将垂直滚动条放置在左侧方法
CSS实现将垂直滚动条放置在左侧方法
12 2
|
2天前
|
前端开发 容器
CSS实现三列布局(左右固定宽度,中间自适应)
CSS实现三列布局(左右固定宽度,中间自适应)
|
2天前
|
前端开发 编解码
css的布局方式
css的布局方式
11 4
|
5天前
|
前端开发
CSS属性涵盖了从文本样式到布局控制、从颜色处理到动画效果的各个方面
【5月更文挑战第31天】CSS属性涵盖了从文本样式到布局控制、从颜色处理到动画效果的各个方面
14 1
|
8天前
|
存储 移动开发 前端开发
使用HTML5和CSS3构建现代网页:技术详解与实践
【5月更文挑战第28天】本文详细介绍了使用HTML5和CSS3构建现代网页的技术与实践。HTML5新增语义化标签、多媒体支持、本地存储和表单验证等功能,提升了网页开发效率和用户体验。CSS3则带来了更多选择器、盒模型改进、背景与边框样式以及动画过渡效果,使网页设计更具视觉冲击力。通过实例展示了如何结合两者创建结构清晰、交互丰富、响应式的现代网页。
|
11天前
|
前端开发 Java
前端面试题01(css)
前端面试题01聚焦CSS,涵盖选择器优先级、隐藏元素方法、px与rem差异、重绘与重排解释、元素居中技巧及可继承属性。还探讨了CSS预处理器SASS和LESS的特性。文章提供实例代码展示居中布局的多种实现方式。鼓励读者点赞和支持。
14 0
|
12天前
|
前端开发
尚硅谷html5+css3(3)布局
尚硅谷html5+css3(3)布局
|
12天前
|
小程序 前端开发 JavaScript
使用CSS的媒体查询功能在小程序中实现自适应布局
使用CSS的媒体查询功能在小程序中实现自适应布局
|
14天前
|
缓存 移动开发 JavaScript
WKWebView对网页和js,css,png等资源文件的缓存机制及如何刷新缓存
WKWebView对网页和js,css,png等资源文件的缓存机制及如何刷新缓存
30 1
|
15天前
|
前端开发
前端 CSS 经典:SVG 描边动画
前端 CSS 经典:SVG 描边动画
23 0