前端三栏布局(包括圣杯,双飞翼)

简介: 前端三栏布局(包括圣杯,双飞翼)

三栏布局

  • 问:那什么叫做三栏布局呢?
  • 答:一般将左右两栏固定,中间宽度自适应称为三栏布局


前言:一直说抽时间把三栏布局的代码总结一下,总一直没时间没时间,感觉自己犯了拖延症了,不能再拖了,再拖下去,都不知道啥时候才写这个呀!!!(怕不是真有拖延症了吧,快快行动起来)


本文规范:为了叙述方便,故以类名代表相应的元素

上课中:

第一种情况(定位:position)

  • 利用绝对定位,左右两栏设置为绝对定位,中间设置对象方向的margin值

CSS代码

.outer{
position: relative;
height: 100px;
color: white;
}
.left,
.right{
position: absolute;
}
.left{
width: 100px;
height: inherit;
background: rgb(177, 177, 226);
}
.center{
margin-left: 100px;
margin-right: 200px;
height: inherit;
background: black;
}
.right{
top: 0;
right: 0;
width: 200px;
height: inherit;
background: tomato;
}
 

HTML代码


  • 结果
  • 补充:定位为absolute的元素脱离文档流,不保留之前在文档流中的空间,他是浮在页面上,当与元素重叠时,默认在元素上边。


第二种情况(flex布局)

利用flex布局,中间使用(flex:1,其实使用的是flex-grow:占据剩余空间)


CSS代码

.outer{
height: 100px;
display: flex;
color: white;
}
.left{
width: 100px;
background: rgb(177, 177, 226);
}
.right{
width: 200px;
background: tomato;
}
.center{
flex-grow: 1;
background: black;
}
 

HTML代码


  • 结果



第三种情况(浮动:float)

  • 浮动,左右两栏设置固定大小,并设置对应方向的浮动。中间一栏设置左右两个方向的margin值。这种方式需要把中间一栏放到最后

CSS代码

height: 100px;
color: white;
font-size: 20px;
}
.left{
width: 100px;
height: inherit;
float: left;
background: rgb(177, 177, 226);
}
.right{
float: right;
width: 200px;
height: inherit;
background: tomato;
}
.center{
height: inherit;
margin-left: 100px;
margin-right: 200px;
background: black;
}
 

HTML代码


  • 结果


第四种情况(圣杯布局)


CSS代码

.outer{
height: 100px;
padding-left: 100px;
padding-right: 200px;
color: red;
font-size: 20px;
}
/* 相对自己在页面一开始位置定位(有待考证) /
/ 上边因为已经被占满,所以自己被挤下来了 /
.left{
position: relative;
left: -100px;
/ 浮动没上去我认为是宽度不够 */
float: left;
margin-left: -100%;
width: 100px;
height: 100px;
background: tomato;
}
.right{
position: relative;
left: 200px;
float: right;
margin-left: -200px;
width: 200px;
height: 100px;
background: rgb(185, 156, 212);
}
.center{
float: left;
width: 100%;
height: 100px;
background: black;
}
 

HTML代码


  • 结果


第五种情况(双飞翼布局)


CSS代码

.outer{
height: 100px;
color: white;
font-size: 20px;
}
.left{
float: left;
margin-left: -100%;

width: 100px;
height: 100px;
background: tomato;
}
.right {
float: left;
margin-left: -200px;

width: 200px;
height: 100px;
background: gold; }
.content{
margin-left: 100px;
margin-right: 200px;
height: inherit;
}
.center {
float: left;
width: 100%;
height: 100px;
background: lightgreen;
}
 

HTML代码


  • 结果

结语:文章只是将这些实现过程归纳总结,方便查找和学习,若有疑问欢迎提出,谢谢!!!

时间不早啦,俺去睡觉啦!!!

相关文章
|
13天前
|
编解码 前端开发 开发者
【Flutter前端技术开发专栏】Flutter中的响应式设计与自适应布局
【4月更文挑战第30天】Flutter框架助力移动应用实现响应式设计与自适应布局,通过层次化布局系统和`Widget`树管理,结合`BoxConstraints`定义尺寸范围,实现自适应。利用`MediaQuery`获取设备信息,调整布局以适应不同屏幕。`FractionallySizedBox`按比例设定尺寸,`LayoutBuilder`动态计算布局。借助这些工具,开发者能创建跨屏幕尺寸、方向兼容的应用,提升用户体验。
【Flutter前端技术开发专栏】Flutter中的响应式设计与自适应布局
|
2月前
|
前端开发 容器
【前端】1、flex 布局详解
【前端】1、flex 布局详解
52 0
|
4月前
|
编解码 移动开发 前端开发
【Bootstrap】<前端框架>Bootstrap布局容器&栅格网格系统
【1月更文挑战第17天】【Bootstrap】<前端框架>Bootstrap布局容器&栅格网格系统
|
4月前
|
前端开发 JavaScript
前端必看的8个HTML+CSS技巧 (八)瀑布流布局
前端必看的8个HTML+CSS技巧 (八)瀑布流布局
|
5月前
|
人工智能 前端开发 容器
【前端|CSS系列第4篇】CSS布局之网格布局
【前端|CSS系列第4篇】CSS布局之网格布局
|
13天前
|
开发框架 前端开发 数据安全/隐私保护
【Flutter 前端技术开发专栏】Flutter 中的布局与样式设计
【4月更文挑战第30天】本文探讨了Flutter的布局和样式设计,关键点包括:1) 布局基础如Column、Row和Stack用于创建复杂结构;2) Container、Center和Expanded等常用组件的作用;3) Theme和Decoration实现全局样式和组件装饰;4) 实战应用如登录界面和列表页面的构建;5) 响应式布局利用MediaQuery和弹性组件适应不同屏幕;6) 性能优化,避免过度复杂设计。了解并掌握这些,有助于开发者创建高效美观的Flutter应用。
【Flutter 前端技术开发专栏】Flutter 中的布局与样式设计
|
6天前
|
编解码 前端开发 UED
前端布局方式及其优缺点
前端布局方式及其优缺点
18 1
|
17天前
|
前端开发 JavaScript 数据可视化
前端vite+vue3——自动化配置路由布局
前端vite+vue3——自动化配置路由布局
31 0
|
28天前
|
Web App开发 XML 前端开发
CSS中的非布局样式+CSS布局 前端开发入门笔记(十一)
CSS中的非布局样式+CSS布局 前端开发入门笔记(十一)
33 0
|
28天前
|
编解码 前端开发 iOS开发
前端开发入门笔记(八)CSS3属性详解:动画详解+Flex布局图文详解+Web字体
前端开发入门笔记(八)CSS3属性详解:动画详解+Flex布局图文详解+Web字体
61 1