.wrap {
display: table-cell;
vertical-align: middle;
width: 1200px;
height: 800px;
background-color: aqua;
}
.content {
margin: 0 auto;
width: 200px;
height: 200px;
background-color: blueviolet;
}
1.4 使用flex居中布局
分析:使用flex,默认情况下,align-items:center垂直居中,ustify-content: center
水平居中(主轴排列方式)
注意:需要考虑浏览器兼容性问题。
代码:
.wrap {
display: flex;
align-items: center;
justify-content: center;
width: 1200px;
height: 800px;
background-color: aqua;
}
.content {
width: 200px;
height: 200px;
background-color: blueviolet;
}
2、N列布局
======
2.1 两列布局
场景描述:两列布局,一列(比如左侧)是定宽,另外一列(右侧)自适应
方案1:左边元素浮动,定宽,右边元素设置margin-left
分析:左边元素设置浮动,定宽度,右边不设置浮动,右边元素的margin-left
设置为左边元素宽度大小,可以实现效果。
代码:
.l, .r {
height: 600px;
}
.l {
width: 400px;
background-color: aqua;
float: left;
}
.r {
background-color: blueviolet;
margin-left: 400px;
}
方案2:左边元素浮动,定宽,右边元素设置overflow:hidden
分析:
注意:overflow:hidden
的设置也使得右边元素内容超出隐藏。这里如果不设置overflow:hidden
,右边元素的宽度是100%,有一部分被左边浮动元素盖住,不是我们要的结果,虽然看起来没什么区别。
.l, .r {
height: 600px;
}
.l {
width: 400px;
background-color: aqua;
float: left;
}
.r {
background-color: blueviolet;
overflow: hidden;
}
方案3:将左右元素用一个display:table的元素包裹,左右元素设置为display:table-cell
分析:这里主要是基于表格元素,在没有设置宽度时,会自动分配宽度来实现布局的。
注意:设置为表格后,在某些浏览器可能会受到表格本身特有行为的影响,比如表格边框等等。
方案4:felx布局
分析:父容器采用felx布局,左边元素定宽之后,右边元素因为只有一个,所以flex属性设置为不是0的正直,都会沾满剩余空间。
注意:浏览器兼容问题
2.2 三列布局
三列布局有三种情况,普通三列布局、圣杯布局、双飞翼布局(后两者都是实现两侧宽度固定,中间宽度自适应的三列布局,区别在于双飞翼布局比圣杯布局,中间元素会多个子元素,而左右元素需要定位relative)。
2.2.1 普通三列布局
左中两列定宽,右边自适应。
方案1:定宽+overflow:hidden
分析:原理类似于两列布局方案2
代码:
方案2:flex布局
2.2.2 圣杯布局
两侧宽度固定,中间宽度自适应的三列布局(中间元素不需要嵌套子元素
)
方案1:左右两侧浮动,中间元素使用margin
分析:这种方法就是左右两边浮动,给定宽度,中间元素使用margin
空出左右两边元素的位置,实现比较简单。
注意:这种方式,需要在书写html
结构时,将右侧元素写在中间元素的前面,因为如果右侧元素在中间元素后面,由于浮动元素位置上不能高于(或平级)前面的非浮动元素,导致右侧元素会下沉。但是,中间元素一般都是页面的核心部分,放在比较后面的位置,不利于SEO。
方案二. 父容器使用margin
,左中右元素均浮动,利用定位和margin
移动到正确位置
分析:这种方法将中间元素c放置在最前面,有利于SEO
。
注意:实现细节在参考下面代码中的注释。
2.2.3. 双飞翼布局
两侧宽度固定,中间宽度自适应的三列布局(中间元素内部增加子元素用于放置内容
)
方案一. 中间元素子元素设置margin
,左中右元素均设置浮动,左右元素通过margin
移动到正确位置
分析:这种方法为中间元素增加子元素作为内容区域,通过子元素设置margin
完成。
注意:和圣杯布局对照,有相似处,也有不同,实现的结果是一样的。
2.2.4. flex
布局实现(中间自适应,左右等宽)
分析:flex
实现就很简单了,可以参照普通三列布局flex
实现。
注意:还是要注意浏览器兼容性问题。
2.3 多列等分布局
所谓多列等分布局,就是若干列在容器中自适应等分宽度,我们以五列等分布局为例。
方案一. 浮动 + 百分数平分
分析:这种方案就是每一列浮动,之后按照百分比平分宽度,实现简单。
方案二. 使用**display: table
布局**
分析:父容器指定display: table
,设置布局行为table-layout: fixed
,指定每个表格等宽。
注意:table-layout: fixed
是需要设置的,默认情况下,列宽度由单元格内容设定,设置之后,列宽由表格宽度和列宽度设定
方案三. 使用column
布局
分析:使用column
布局,指定内容区域需要分为5列即可。
注意:浏览器兼容性问题。
方案四. 使用flex
布局
分析:使用flex
布局十分简单,指定每一列所占空间相同即可
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
最后
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
❤️ 谢谢支持,喜欢的话别忘了 关注、点赞哦。
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
、OPPO等大厂,18年进入阿里一直到现在。**
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-TDQM2isX-1712169433356)]
[外链图片转存中…(img-CeJ8tMgE-1712169433357)]
[外链图片转存中…(img-quB9WkBE-1712169433357)]
[外链图片转存中…(img-d0jJTVZt-1712169433357)]
[外链图片转存中…(img-c71LRXpQ-1712169433358)]
[外链图片转存中…(img-VnKCGz76-1712169433358)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-rwP2Y41r-1712169433358)]
最后
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
❤️ 谢谢支持,喜欢的话别忘了 关注、点赞哦。
[外链图片转存中…(img-dkRE8L2n-1712169433359)]
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算