只需两行代码即可完成两列自适应布局,是不是很香~
3.Grid 布局
Grid
布局,是一个基于网格的二维布局系统,目的是用来优化用户界面设计。
详细了解Grid
布局请点击:Grid布局
/* html同上 */
.container{
display: grid;
grid-template-columns: auto 1fr;
grid-gap: 20px;
}
三、三栏布局
======
特征:中间列自适应宽度,旁边两侧固定宽度,实现三栏布局有多种方式:
1.浮动布局
这种布局方式,dom 结构必须是先写浮动部分,然后再中间块,否则右浮动块会掉到下一行。
浮动布局的优点就是比较简单,兼容性也比较好。但浮动布局是有局限性的,浮动元素脱离文档流,要做清除浮动,这个处理不好的话,会带来很多问题,比如父容器高度塌陷等。
HTML代码:
浮动布局
CSS代码:
/* 清除所有标签默认样式 */
*{
margin: 0;
padding: 0;
}
.left{
float: left;
width: 300px;
height: 100px;
background: pink;
}
.right{
float: right;
width: 300px;
height: 100px;
background: red;
}
.center{
margin-left: 300px;
margin-right: 300px;
background-color: lightblue;
}
效果图:
在这里给 .center
类设置左右外边距是因为两侧的浮动元素占300像素,不设置外边距中间内容多就会出现如下情况:
在前面也说了,浮动实现的三栏布局会使元素脱离文档流,所以为了不影响其他元素的显示需要清除浮动:
.main::after{
content:‘’;
display: block;
clear: both;
}
2.绝对定位布局
HTML代码:
绝对定位布局
CSS代码:
*{
margin: 0;
padding: 0;
}
.main{
position: relative;
}
.left{
position: absolute;
left: 0;
width: 300px;
background-color: red;
}
.center{
position: absolute;
left: 300px;
right: 300px;
background-color: blue;
}
.right{
position: absolute;
right: 0;
width: 300px;
background-color: pink;
}
在这里,由于 absolute
是相当于 static
定位以外的第一个父元素进行定位,所以我们要给其父元素添加 position:relative
属性
绝对定位布局优点就是快捷,设置很方便,而且也不容易出问题。
缺点就是,容器脱离了文档流,后代元素也脱离了文档流,高度未知的时候,会有问题,这就导致了这种方法的有效性和可使用性是比较差的。
3.表格布局
table是一种常见的布局方式,他可以将整个页面按照表格的方式设置为多行多列,但是由于书写table标签比较麻烦尤其是涉及到table内嵌table的时候,所以CSS给我们提供了 display:table
的方式可以让我们方便的使用table布局, 设置子元素为列的属性为 display:table-cell
.main{
width: 100%;
display: table;
}
.left,.center,.right{
display: table-cell;
}
.left{
width: 300px;
background-color: red;
}
.center{
background-color: green;
}
.right{
width: 300px;
background-color: pink;
}
表格布局的兼容性很好,在 flex 布局不兼容的时候,可以尝试表格布局。
同样,不是谁都是完美的,表格布局也存在一定的缺陷:
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
Vue 编码基础
2.1.1. 组件规范
2.1.2. 模板中使用简单的表达式
2.1.3 指令都使用缩写形式
2.1.4 标签顺序保持一致
2.1.5 必须为 v-for 设置键值 key
2.1.6 v-show 与 v-if 选择
2.1.7 script 标签内部结构顺序
2.1.8 Vue Router 规范
Vue 项目目录规范
2.2.1 基础
2.2.2 使用 Vue-cli 脚手架
2.2.3 目录说明
2.2.4注释说明
2.2.5 其他
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
编码基础
2.1.1. 组件规范
2.1.2. 模板中使用简单的表达式
2.1.3 指令都使用缩写形式
2.1.4 标签顺序保持一致
2.1.5 必须为 v-for 设置键值 key
2.1.6 v-show 与 v-if 选择
2.1.7 script 标签内部结构顺序
2.1.8 Vue Router 规范
Vue 项目目录规范
2.2.1 基础
2.2.2 使用 Vue-cli 脚手架
2.2.3 目录说明
2.2.4注释说明
2.2.5 其他
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】