当前位置: 首页 > Web前端 > CSS

重学前端CSS(六)CSS经典布局

时间:2023-03-30 18:12:59 CSS

本文主要介绍CSS中的一些经典布局,包括垂直居中布局、两栏布局、三栏布局、圣杯布局和双飞翼布局,粘性页脚布局。VerticalCenterLayout垂直居中布局:元素显示在容器的中间。//通用CSS和HTML/*CSS*/.wrap{width:300px;高度:300px;边框:1px纯浅蓝色;}.item{宽度:100px;高度:100px;背景色:黄绿色;}

1)使用flex.wrap{display:flex;证明内容:居中;对齐项目:居中;}2)使用定位和边距.wrap{position:relative;}.item{位置:绝对;顶部:0;右:0;底部:0;左:0;保证金:自动;}3)利用定位和移动子元素的位置来实现.wrap{position:relative;}.item{位置:绝对;顶部:50%;左:50%;转换:翻译(-50%,-50%);}/*另一个*/.item{position:absolute;顶部:100px;左:100px;}/*另一个*/.item{position:absolute;顶部:50%;左:50%;边距顶部:-50px;左边距:-50px;}4)使用display和vertical-align进行垂直居中。wrap{display:table-cell;垂直对齐:中间;}.item{保证金:0自动;}5)使用padding使其居中。包装{填充:99px;框大小:边框框;}两列布局两列布局:左边固定,右边自适应/*CSS*/body{边距:0;}.left{宽度:100px;高度:500px;背景颜色:浅天蓝色;}.right{高度:600px;背景色:黄绿色;}
1)使用float和margin.left{float:left;}.right{margin-left:100px;}2)使用float和BFC.left{float:left;}.right{/*溢出:滚动;*//*溢出:自动;*/溢出:隐藏;}3)使用float和calc.left{float:left;}.right{浮动:左;宽度:计算(100%-100px);}4)使用positioning.wrap{position:relative;}.left{位置:绝对;顶部:0;}.right{margin-left:100px;}5)使用flexbox.wrap{dis发挥:弹性;}.right{flex:1;}6)使用网格.wrap{display:grid;网格模板列:100px自动;三列布局三列布局:左右元素宽度固定,中间自适应/*CSS*/.left,.right{width:100px;高度:500px;背景颜色:浅天蓝色;}.center{高度:600px;背景色:黄绿色;}/div>1)利用浮动和边距.left{float:left;}.right{浮动:正确;}.center{边距:0100px;}2)利用定位和边距.wrap{position:relative;}.left{位置:绝对;}.right{位置:绝对;右:0;}.center{边距:0100px;}3)利用弹力盒.wrap{display:flex;}.right{命令:1;}.center{flex:1;}4)利用网络格式.wrap{display:grid;网格模板列:100px自动100px;网格模板如:'abc';}.right{网格区域:c;}5)圣杯布局和双飞翼布局,中间部分宽度自适应。中间部分在DOM结构中优先,因此可以先渲染。2.HolyGrailLayoutHolyGrailLayout:利用边距和定位实现布局,需要设置页面的最小宽度,否则当页面宽度太小时,页面布局会乱。这个宽度是左元素宽度*2+右元素宽度。因为left元素使用position:relative,中间区域总是有一个left元素的宽度。/*CSS*/body{边距:0;最小宽度:600px;/*这里为left*2+right*/}.fl{float:left;}.clearfix{缩放:1;}.clearfix::after{显示:块;高度:0;内容:””;可见性:隐藏;明确:两者;}.header,.footer{行高:40px;背景色:浅灰色;文本对齐:居中;}.container{填充:0200px;}.center{宽度:100%;高度:500px;背景色:黄绿色;}.left{位置:相对;左:-200px;宽度:200px;高度:300px;背景颜色:浅蓝色;左边距:-100%;}.right{右边距:-100%;宽度:200px;高度:300px;背景色:浅珊瑚色;}headerfooter3.双飞翼布局双飞翼布局:相对于圣杯布局,在中心外多了一层,主要是利用margin和float来实现,同时需要设置最小值页面宽度避免页面混淆/*CSS*/body{边距:0;最小宽度:400px;}.fl{浮动:左;}.clearfix{缩放:1;}.clearfix::after{显示:块;高度:0;内容:””;可见性:隐藏;明确:两者;}.header,.footer{行高:40px;背景色:浅灰色;文本对齐:居中;}.left{左边距:-100%;宽度:200px;高度:500px;背景颜色:浅蓝色;}.container{宽度:100%;}.center{边距:0200px;高度:500px;背景色:浅珊瑚色;}.right{margin-left:-200px;宽度:200px;高度:500px;背景色:黄绿色;}header页脚参考来源:对圣杯布局和双飞翼布局的理解与思考Stickyfooter布局Stickyfooter:如果页面内容不够长,则在窗口底部粘贴页脚块;向下推/*公共样式*/*{margin:0;填充:0;}.footer{文本对齐:居中;}.main{背景颜色:#ddd;}.footer{背景颜色:浅蓝色;}1)使用flex/*CSS*/body{display:flex;弹性方向:列;最小高度:100vh;}.main{flex:1;}.footer{字体大小:1rem;}Interestingcompany?2019-20303)使用占位符div(高度与footer相同)+固定高度footer(margin-top值为负高度)/**/.main{min-height:100%;}.placeholder{padding-bottom:40px;}.footer{margin-top:-40px;height:40px;}4)最外层相对+padding-bottom预留底部空间+bottomabsolute用于底部定位/*CSS*/.wrap{position:relative;min-height:100%;padding-bottom:40px;box-sizing:border-box;}.main{min-height:100%;}.footer{position:absolute;left:0;right:0;bottom:0;height:40px;}有趣公司?2019-20305)使用calc()属性/*CSS*/.main{min-height:calc(100%-40px);}.footer{高度:40px;}Interestingcompany?2019-20306)使用table属性让页面以表格的形式出现/*CSS*/.wrapper{显示:表格;宽度:100%;最小高度:100%;}.main{显示:表格行;高度:100%;}有趣的公司?2019-20307)使用Grid网格布局/*CSS*/.wrapper{display:grid;最小高度:100%;网格模板行:1fr自动;}.footer{网格行开始:2;网格行尾:3;}有趣的公司?2019-2030参考链接:StickyFooter的各种CSS实现本文是CSS系列的最后一篇。以上内容如有错误,希望大家指出,谢谢。