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

css基础的布局

时间:2023-03-30 22:30:02 CSS

css布局:float,position,flex,transform,grid,::after::before先说说BFC块级格式化上下文BFC是一个独立的布局环境,元素布局是不同的是,它受外界的影响,被看作是一个与世隔绝的独立容器。容器内部的元素在布局时不会影响外部元素,BFC具有一些普通容器不具备的特性。通俗地说,BFC可以理解为一个封闭的大盒子,盒子里面的元素再大也不会影响到外面。BFC可以由某些条件触发,以满足布局要求或解决某些问题;如何创建BFC1.float的值不是none。2.position的值不是静态的,也不是相对的。3.display的值为inline-block,table-cell,flex4.overflowvisible以外的值(hidden,auto,scroll)(1.)同一个BFC中两个容器的外边距会重叠,所以我们可以set,两个不同的BFC(2.)BFC特性规定“BFC的区域不会与浮动容器重叠,相邻元素会在另一个浮动后重叠。为相邻元素设置溢出:hidden生成BFC(3.)当我们不为父节点设置高度而将子节点设置为浮动时,会发生高度塌陷;使用BFC避免marginoverlap/子元素浮动父元素高度塌陷的问题,BFC计算高度时,浮动元素也参与计算,给父元素overflow:hidden;两列布局

leftleftleftleftleftleftleft

rightrightrightrightrightright

第一种float和absolute和float+BFC下面是float+BFC。main1{断字:全部中断;}.m1-left{浮动:左;右边距:20px;背景色:红色;}.m1-right{溢出:隐藏;覆盖在右边的元素上,所以右边的元素要改成BFC*/zoom:1;背景色:灰色;第二种类型的flex适用于IE10及更高版本。main1{显示:flex;分词:break-all;}.m1-left{margin-right:20px;背景色:红色;}.m1-right{flex:1;背景色:灰色;}第三个网格基于grid.main1{display:网格;网格模板列:自动1fr;网格间隙:20px;分词:break-all;}.m1-left{margin-right:20px;背景色:红色;{背景色:灰色;}Flexbox和GridFlexbox用于一维布局,Grid用于二维布局,即如果你用flex在一个方向排列内容项,如果你想在二维(包括行和列)中创建整个布局应该使用CSSGrid,比如9格等。两者的另一个核心区别是Flexbox是基于内容的,而Grid是基于三列布局1浮动2绝对定位3.flexbox4.display:table5.grid6.HolyGrailLayout7.DoubleFlyingWingLayout其中flex:1可以设置在centergrid:左右各留200px,中间自适应。main1{显示:网格;宽度:100%;网格模板列:200px自动200px;}其他方案就不一一列举了,毕竟现在流行Flexbox和Grid来让元素垂直居中,水平margin|absolute-transform:translate横竖自适应布局
.box1{width:200px;保证金:50%自动;边框:1px实心黄绿色;}.box1{位置:绝对;顶部:50%;右:50%;宽度:100px;高度:100px;背景色:粉色;转换:翻译(-50%,50%);}flex横竖自适应布局.box2{width:200px;高度:200px;显示:弹性;证明内容:居中;对齐项目:居中;}/*table*/.box2{宽度:500px;高度:200px;显示:表格单元格;垂直对齐:中间;文本对齐:居中;}/*grid*/.box2{宽度:100vw;高度:100vh;显示:网格;Align项目:中心;证明内容:居中;}视口单位(Viewportunits)根据CSS3规范,视口单位主要包括以下四种:1.vw:1vw等于视口宽度的1%2.vh:1vh等于视口高度的1%。3.vmin:选择vw和vh中最小的。4.vmax:选择vw和vh中最大的。vh和vw:相对于视口的高度和宽度,而不是父元素(CSS百分比是相对于包含它的最近父元素的高度和宽度)。1vh等于视口高度的1/100,1vw等于视口宽度的1/100。例如:浏览器高度为950px,宽度为1920px,1vh=950px/100=9.5px,1vw=1920px/100=19.2px。vmax与视口的宽度或高度相关,以较大者为准。其中最大的被分成100个单位的vmax。vmin相对于视口的宽度或高度,以较小者为准。其中最小的被分成100个vmin单位。什么是视口?在桌面端,viewport指的是浏览器在桌面端的可见区域;而在移动端,则涉及3个视口:LayoutViewport(布局视口)、VisualViewport(视觉视口)、IdealViewport(理想视口)。视口单元中的“视口”指的是浏览器在桌面端的可见区域;移动端的LayoutViewport指的是Viewport,“viewport”是指浏览器内部可见区域的大小,即window.innerWidth/window.innerHeight大小,不包括浏览器的浏览器区域大小任务栏标题栏和底部工具栏。.