总结绝对定位的相对元素以及常见的解决方案 子绝父相 子元素绝对定位、 父元素相对定位 子绝父绝 子元素绝对定位 父元素绝对定位 子绝父固 子元素绝对定位 父元素固定定位 三....浮动,浮动元素的左(右)边界不能超出包含块的左(右)边界 浮动元素之间不能层叠 如果一个元素浮动,另一个浮动元素已经在那个位置了,后浮动的元素将紧贴着前一个浮动元素(左浮找左浮,右浮找右浮) 如果水平方向剩余的空间不够显示浮动元素...clear 属性可以指定一个元素是否必须移动(清除浮动后)到在它之前的浮动元素下面; clear的常用取值 left:要求元素的顶部低于之前生成的所有左浮动元素的底部 right:要求元素的顶部低于之前生成的所有右浮动元素的底部...认识flex布局 认识flexbox Flexbox翻译为弹性盒子: 弹性盒子是一种用于按行或按列布局元素的一维布局方法 ; 元素可以膨胀以填充额外的空间, 收缩以适应更小的空间; 通常我们使用Flexbox...比如使容器的所有子项等分可用宽度/高度,而不管有多少宽度/高度可用。 比如使多列布局中的所有列采用相同的高度,即使它们包含的内容量不同。
有个高频面试题,“如何使一个不定宽高div垂直水平居中?”,有的萌新竟然回答用vertical-align: middle。这个回答是减分的,至少在某种程度上给人一种感觉CSS基础比较薄弱。...平常我们用margin: 0 auto;之所以能够使块级元素水平居中,是因为水平方向元素存在剩余可用空间,而auto平分剩余可用空间,因此就产生居中效果。...而垂直方向不存在剩余可用空间,因此无法垂直居中。...上述demo,box-item之所以能够垂直居中,得益于top/bottom设置了值,使元素产生高度100%的外部尺寸,而width/height固定元素的内部尺寸,使得 外部尺寸高度-内部尺寸高度=元素剩余可用空间高度...,而auto等分剩余可用空间,可以使元素达到垂直居中效果。
上图宽度从填满整个所在的容器到宽度500px,这就产生了剩余空间,图中的剩余空白部分空间width=整个容器宽度-500px,而margin auto 就是 为了填充这个空白的尺寸设计的,这就是margin...因为图片是inline水平的,它占据的空间并没有撑满整个容器,如果没有设置宽度值。所以它就不满足margin auto 用来填充剩余空间的条件,因为他根本就没有剩余空间。...很显然不满足,也就没有剩余空间,所以设置height:100px margin auto不会垂直居中。...那么如何实现垂直方向上的剧中呢,方法很多不止一种: 1.writing-mode与垂直居中: image.png 更改流为垂直居中之后,内容会自动撑满垂直方向的高度。...这时上图蓝色旁边的空间尺寸就是被强制更改的尺寸,也就是margin:auto可以用来分配的尺寸空间,此时在设置margin:auto空间就被重新分配了,从而就实现了绝对定位元素的水平和垂直居中效果。
定位实现水平垂直居中方案(一) 步骤如下: 使子元素相对于容器元素定位 子元素开启绝对定位 设置该元素的偏移量,值为50% 减去宽度/高度的一半 实现CSS代码如下: .parent { /* 1....属性来实现示例代码如下: .container { display: flex; } .right { flex: 1; /* flex: 1; 表示 flex-grow: 1; 即该项占所有剩余空间...实现CSS代码如下: .container { display: flex; } .right { flex: 1; /* flex: 1; 表示 flex-grow: 1; 即该项占所有剩余空间...如果页面内容不够长时,底部栏就会固定到浏览器的底部;如果足够长时,底部栏就后跟随在内容的后面。...为footer的高度 ; 底部栏绝对定位,并一直吸附在底部即可实现。
此时布局是这样的: image.png 给 left 和 right 设置绝对定位,让它们占据父元素的留白空间。...两种布局的对比: 优先加载主列。 三列浮动,配合负外边距形成三列布局 两种布局方式的主要区别在于如何处理主列,从而让其内容不被覆盖。...flex 只有一个值时,设置的是 flex-grow,代表弹性子元素对父元素剩余空间的分配,因为不设置的时候默认是 0,所以这里只有设置了 1 的主列参与分配剩余空间,从而实现宽度自适应。...撑不开高度),即父盒子由最高列撑开,其他两列不足高度的部分由 padding 填充。...5.粘连布局 内容区 main 高度足够长的时候,footer 紧跟在 main后面; 内容区 main 高度不够长的时候,footer 粘连在屏幕的底部 5.1 代码示例: div id="wrap
如果改为block元素,再加上宽度的设置,auto才会计算剩余空间。 margin自动填充width剩余部分的空间。不计算height是因为高度上不会有剩余空间。...就好像内联元素没有填充水平宽度就没有水平方向的剩余空间是一样的。...竟然还可以这么写: margin: 20px 30px 10px auto; 也就是对立 方位的margin属性值,其中一个设置固定值后,另一个可以设置auto,则会自动填充剩余空间。...,所以auto没有办法计算我的高度剩余空间,也就不会有高度自动填充这一说了。...,所以我没有剩余的水平空间可供margin分割的。
,使文本排版更加整齐美观。...,比如可以让几个子元素按照一定比例分配剩余空间或者在空间不足时按比例收缩等剩余空间,实现了灵活的布局效果。...例如,可以使用固定像素值、百分比或者 fr(fraction,分数单位,表示剩余空间的分配比例)来定义列宽和行高。剩余空间的
HTML 元素,它包括:边距,边框,填充,和实际内容,可以简单表述为 盒模型由 content,padding,margin,border 几部分组成。...width: 150px; } 还有一件事就是他们在单独部分内容扩充的时候,童鞋们可能发现了 底部会参差不齐。...background: yellow; } .container { display: flex; } .main { flex-grow: 1; /*自动占满剩余空间...extra { flex: 0 0 200px; /*指定宽度,方压缩*/ order: 1; /*越大越靠后*/ } /* flex=>flex-grow:是否占满剩余空间...使外部应用可以直接与浏览器内部的数据直接相连, 6.连接特性,更有效的连接工作效率,使得基于页面的实时聊天,更快速的网页游戏体验,更优化的在线交流得到了实现。
所以这里我们来探讨下当内容不足一屏时footer也要紧贴底部的情况,因为比较难以描述,所以干脆使用了英文标题,要实现的效果如下: 第一个和第三个为正常不处理的情况,第二个和第三个是我们要实现的情况 ?...ie8+ 实现思路为:设置body最小高度为100%,相对定位,然后空出底部的高度,关键是要设置盒模型box-sizing为border-box或padding-box,最后将footer绝对定位在底部即可...*/ } .footer{ position: absolute; /* 将footer绝对定位在底部 */ left: 0; bottom: 0; width: 100%...主要思路是设置flex的方向为垂直方向,然后设置内容占满其余的空间 html代码如下: div class="header">div> div class="container...display: flex; /* 设置flex */ flex-direction: column; /* 方向为垂直方向 */ } .container{ flex: 1; /* 内容占满所有剩余空间
margin: auto能在块级元素设定宽高之后自动填充剩余宽高。...top bottom使元素及其后代元素的底部与整行或整块的底部对齐。) 文本类:text-top text-bottom(使元素的顶部与父元素的字体顶部对齐。)...,那为什么底部和div下边缘之间会有空隙呢?...此时的width/height属性具有自动撑满的特性,和一个正常流的div元素的width属性别无二致。如图,设置了固定margin值的元素,宽高auto能够自动适应剩余空间: ?...同样的,设置了固定宽高的元素,如果margin: auto,则margin平分剩余空间导致垂直水平居中: ? 层叠规则 层叠规则是指当网页中的元素发生层叠时侯的遵循的规则。
设置 flex 属性 flex属性是弹性盒子的核心,用于设置弹性项如何在弹性容器中分配空间。...、内容区和底部的布局。...相对定位(Relative) 相对定位使元素相对于其正常位置进行移动。它不会影响文档流中其他元素的布局。...绝对定位(Absolute) 绝对定位的元素相对于最近的已定位祖先元素进行定位(如果没有,则相对于初始包含块)。绝对定位的元素脱离了文档流,不会影响其他元素的布局。...题1:创建一个三栏布局 使用Flexbox创建一个响应式三栏布局,其中左栏和右栏固定宽度,中间栏自适应剩余空间。
使子元素相对于容器元素定位; (2). 子元素开启绝对定位; (3). 设置该元素的偏移量,值为50% 减去宽度/高度的一半。...使子元素相对于容器元素定位; (2). 子元素开启绝对定位; (3). 设置该元素的偏移量,值为50%; (4). 通过外边距-值的方式将元素移动回去。...background-color: #c0eb75; height: 400px; line-height: 400px; font-size: 70px; /* 自适应为剩余空间...400px; width: 200px; } .content { background-color: #d9480f; height: 400px; /* 占用剩余空间...在中间区域设置padding-bottom为footer的高度; (4). 底部栏绝对定位,并一直吸附在底部即可实现。
如果要问如何CSS实现绝对定位元素的居中效果,很多人心里已经有答案了。...当一个绝对定位元素,其对立定位方向属性同时有具体定位数值的时候,流体特性就发生了,例如: div class="box">div> .box { position: absolute; left...具有流体特性绝对定位元素的margin:auto的填充规则和普通流体元素一模一样: 如果一侧定值,一侧auto,auto为剩余空间大小; 如果两侧均是auto, 则平分剩余空间; : 例如,下面的CSS...“格式化宽度和格式化高度”,和div>的“正常流宽度”一样,同属于外部尺寸,也就是尺寸自动填充父级元素的可用尺寸的,然后,此时我们给.son设置尺寸,例如: .son { position:...因为,auto正好把上下左右剩余空间全部等分了,自然就居中啦!
class="top">div> div class="center">div> div class="bottom">div> 定位法 上中下盒子都设置绝对定位....center { top: 100px; bottom: 200px; background-color: blue; } flex布局 利用 flex: 1划分剩余空间的特性,并配合...分析以下原因:因为 main没有设置高度,且它的祖先元素 html、 body都没有设置高度,所以 main的高度就只有被上盒子和下盒子的高度撑开的那部分。既然如此,怎么可能还会有剩余空间呢?...这时候, main的高度就是屏幕高度,而中间占满剩余空间,也就是说中间自适应了。...flex布局可以通过子项目的属性 flex来设置平分剩余空间,只有一个属性没有设置宽( flex-direction: row)或高( flex-direction: column)的时候,就是占满剩余空间
本篇文章将详细介绍如何使用纯CSS(不依赖JavaScript)来实现一个高度自适应的页面内容区域和一个始终固定在页面底部的广告Banner,同时确保两者不会重叠。...需求分析底部广告Banner:固定在页面底部,高度未知。页面内容区域:占据除广告Banner外的所有空间,支持滚动,高度自适应。无重叠:两个区域之间不能有任何重叠。...分配空间内容区域:使用flex: 1;属性,这会使内容区域自动扩展以填充所有可用空间(除了底部广告Banner所占用的空间)。底部广告Banner:不需要特别设置高度,因为它将根据其内容自动调整大小。...-->div>div class="bottom-component"> 底部广告Banner --> 底部组件 一些底部的信息......div>结论通过上述方法,我们可以实现一个高度自适应的页面内容区域和一个始终固定在页面底部的广告Banner,同时确保两者不会重叠。
day010:CSS如何进行圣杯布局 圣杯布局如图: ? 而且要做到左右宽度固定,中间宽度自适应。 1.利用flex布局 填充空下来的padding-left部分 .left{ /* ... */ margin-left: -100%; left: -200px; } 效果呈现: ?...右边的盒子设置margin-left: -250px后,盒子在该行所占空间为0,因此直接到上面的middle块中,效果: .right{ /* ... */ margin-left: -250px...然后向右移动250px, 填充父容器的padding-right部分: .right{ /* ... */ margin-left: -250px; left: 250px; } 现在就达到最后的效果了...绝对定位 <!
则会默认占据100%的宽度。...auto指平分剩余空间 比如上图中我父div宽度为200px,子div宽度为100px,则水平方向平分剩余宽度为(200-100)/2 我们知道margin:0 auto和margin:0 auto 0...; } #child{ height: 100px; width: 100px; background: red; margin: 0 auto 0 0; } 我们发现子div被移动到了一侧,上图子...divmargin:0 auto 0 0,只给了右边设置了auto相当于让右边自己平分剩余空间,即把父div的剩余空间全都给了右侧; 怎么实现垂直方向居中 为什么margin:auto不能实现在垂直方向上的居中呢...因为默认垂直方向上没有剩余空间 如果子元素设置了绝对定位且四边都设为0,子元素会填充整个父元素的所有剩余空间,auto就能平均分配水平和垂直方向的剩余空间了。
:隐藏元素,使元素在页面中不显示,并且不占据任何空间。...class="fixed">固定在底部的元素div> 这里是大量的内容,当页面滚动时,底部的元素始终保持可见。...常用于创建垂直菜单、侧边栏以及垂直堆叠的内容区域,能有效利用垂直空间,使页面布局更紧凑、有条理。 示例4-3: 剩余空间比例分配,第一列占...,取值同 justify-items,分别对应顶部对齐、底部对齐、居中对齐和拉伸填充。
领取专属 10元无门槛券
手把手带您无忧上云