有个高频面试题,“如何使一个不定宽高div垂直水平居中?”,有的萌新竟然回答用vertical-align: middle。这个回答是减分的,至少在某种程度上给人一种感觉CSS基础比较薄弱。...为 absolute 或 fixed) 行内块元素(元素的 display 为 inline-block) 表格单元格(元素的 display 为 table-cell,HTML表格单元格默认为该值)...表格标题(元素的 display 为 table-caption,HTML表格标题默认为该值) 匿名表格单元格元素(元素的 display 为 table、table-row、 table-row-group.../div> 以上代码,container容器高度为0,因为子元素left浮动。...上述demo,box-item之所以能够垂直居中,得益于top/bottom设置了值,使元素产生高度100%的外部尺寸,而width/height固定元素的内部尺寸,使得 外部尺寸高度-内部尺寸高度=元素剩余可用空间高度
,但是元素占用的空间任然存在 opacity: 0; CSS3属性,设置0可以使一个元素完全透明 position: absolute; 设置一个很大的 left 负值定位,使元素定位在可见区域之外...;相同,但这个属性用于记录一个元素的状态 height: 0; 将元素高度设为 0 ,并消除边框 filter: blur(0); CSS3属性,将一个元素的模糊度设置为...absolute; top:50%; /*父元素高度50%*/ margin-top: -150px; /*自身高度一半*/ } 未知高度的块级父子元素居中,模拟表格布局 缺点:IE67不兼容...line-height 指一行字的高度,包含了字间距,实际上是下一行基线到上一行基线距离 如果一个标签没有定义 height 属性,那么其最终表现的高度是由 line-height 决定的 一个容器没有设置高度...例如,父级行高为 1.5,子元素字体为 18px,则子元素行高为 1.5 * 18 = 27px 百分比:将计算后的值传递给后代 设置元素浮动后,该元素的 display 值会如何变化?
css如何实现垂直居中(5种方法) 第一种 这个方法把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align property 属性 的 top 设置为 50%,top margin 设置为负的 content高度。...这个 div 被设置为 top:0; bottom:0;。 但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。...">LEFT RIGHT 清除浮动 当我们不给父节点设置高度,子节点设置浮动的时候,会发生高度塌陷...一般化的样式:为大部分HTML元素提供 修复浏览器自身的bug并保证各浏览器的一致性 优化CSS可用性:用一些小技巧 解释代码:用注释和详细的文档来 /*!
important解决) 2, 居中问题. 1).垂直居中.将 line-height 设置为 当前 div 相同的高度, 再通过 vertical-align: middle.( 注意内容不要换行...float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略} 这里细说一下block...但IE不认得这个, 而它实际上把width当做最小宽度来使。...改CSS如下: body { text-align: center } #content { text-align: left; width: 700px; margin: 0 auto } 这会把网页内容都居中...8、用CSS来处理垂直对齐 垂直对齐用表格可以很方便地实现,设定表格单元 vertical-align: middle 就可以了。但对CSS来说这没用。
contain 保持图片纵横比并将图像缩放成适合背景定位区域的最大大小 background-position属性:该属性设置背景图像的起始位置,其默认值是:0% 0% 值 说明 left top...:collapse; } table,td { border: 1px solid black; } 表格文字对齐:表格中的文本对齐和垂直对齐属性,text-align属性设置水平对齐方式,向左,右,或中心...td { text-align:right; } td { height:50px; vertical-align:bottom; } 表格填充:如果在表的内容中控制空格之间的边框,应使用td和th元素的填充属性...值 描述 left 元素向左浮动 right 元素向右浮动 浮动的原理: 浮动以后使元素脱离了文档流 浮动只有左右浮动,没有上下浮动 脱离文档流之后,元素相当于在页面上面增加一个浮层来放置内容。...可选,阴影的颜色 动画 动画是使元素从一种样式逐渐变化为另一种样式的效果 您可以改变任意多的样式任意多的次数 请用百分比来规定变化发生的时间,或用关键词 “from” 和 “to”,等同于 0% 和
brother2的右边*/ b) 不同方向的浮动元素,会尽量去寻找并贴靠前面和它浮动方向相同的元素。...那么要怎样才能消除浮动对其他元素的影响呢?我们通过下面的方式清除浮动带来的影响。 a) 为父元素设置固定的高度(解决问题一)。...和left偏移量为0。...; } /*这样实现垂直居中的原理是:使父元素以表格的形式呈现,再利用vertical-align属性在表格中是设置单元格内容垂直对齐方式的特性,从而达到块级元素垂直居中的效果。...因为它的left和right实际上占用(遮住)了center的空间,所以需要在center中新增一个.content的div,并设置它的margin,以便空出left和right的位置。
浮动布局的生成: css 属性 float:left/right/none 左浮动/右浮动/不浮动(默认)。 浮动的影响: 不会影响未浮动的块级元素布局,但会影响内联元素的布局。...因为浮动元素脱离了普通流,会出现一种高度坍塌的现象:原来的父容器高度是当前盒子撑开的,但是当当前盒子浮动后,脱离文档流浮动起来,那父容器的高度就坍塌。...定位布局的生成: 通过设置元素的 position 属性,可以让元素处于定位布局中,并通过 left、right、top、bottom 属性设置元素具体的偏移量。...display 为 inline-block) 表格单元格(元素的 display为 table-cell,HTML表格单元格默认为该值) 表格标题(元素的 display 为 table-caption...IFC 的布局规则例如以下: 内部的盒子会在水平方向,一个个地放置,水平的外边距,内边距,边框是可以有的; IFC 的高度,由里面最高盒子的高度决定; 当一行不够放置的时候会自动切换到下一行; 根据 vertical-align
浮动布局的优点就是比较简单,兼容性也比较好。但浮动布局是有局限性的,浮动元素脱离文档流,要做清除浮动,这个处理不好的话,会带来很多问题,比如父容器高度塌陷等。 2.绝对定位布局 left"> 表格布局解决方案 1.这是三栏布局的浮动解决方案; 2.这是三栏布局的浮动解决方案...表格布局也是有缺陷:① 无法设置栏边距;② 对 seo 不友好;③ 当其中一个单元格高度超出的时候,两侧的单元格也是会跟着一起变高的,然而有时候这并不是我们想要的效果。 5.网格布局 并设 margin: 0 200px; ③ 缺点 多加一层 dom 树节点,增加渲染树生成的计算量。...两种布局方式的不同之处在于如何处理中间主列的位置: 圣杯布局是利用父容器的左、右内边距+两个从列相对定位; 双飞翼布局是把主列嵌套在一个新的父级块中利用主列的左、右外边距进行布局调整 四、等高列布局 等高布局是指子元素在父元素中高度相等的布局方式
答案关键字就是:高度塌陷。 我在多个地方浓墨重彩的讲浮动与高度的关系,浮动使高度塌陷的原因,自己都觉得唠叨的太多了,这里不再讲。直接讲些实际的东西。.../image/border.png" /> 结果如下图: 上图显示ul高度为0,这是必然的,正常的,应该的。...至于为什么ul高度为0,我前面很多地方都已经讲了,不再说了。...但是,从中我们可以看到,浮动本不是用来列表布局的,而是用来使元素环绕显示的,因为元素环绕(例如文字),其自身是含有inline boxes高度的,这是inline水平的元素形成高度的基础,所以,虽然浮动元素没有高度...八、解决高度塌陷的问题 – 清除浮动 CSS中有个讨论较多的话题就是如何清除浮动,清除浮动其实就一个目的,就是解决高度塌陷的问题。为什么会高度塌陷?什么时候会高度塌陷?
.nav li{ float: left; /* 导航栏下的li标签整体向左浮动 */ list-style: none; /*去掉导航栏下的li标签前的小圆点*/ margin-left: 100px...li标签内容,行内元素变块元素*/ } .article{ width: 80%; /* 主体内容宽度为整个网页80% */ height: 600px; /* 主体内容高度为600像素 */ } .aside...{ width: 20%; /* 左侧菜单栏宽度为主体内容宽度的20%*/ height: 600px; /* 左侧菜单栏高度为600像素*/ float:left; /* 左侧菜单栏整体向左浮动,达到使右边内容栏与左侧菜单栏同在一行的目的.../* 右侧内容栏高度为600像素 */ float:right; /* 右侧菜单栏整体向右浮动,达到使右边内容栏与左侧菜单栏同在一行的目的*/ background-color: #d5aedf; /*...80% */ height: 36px; /* 底部高度为36像素 */ background-color: #d7bdde; /* 底部颜色为#d7bdde */ text-align: center
margin:5px;/*IE下理解为10px*/ display:inline;/*IE下再理解为5px*/} 3.浮动ie产生的双倍距离 #box{ float:left;...width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略} 这里细说一下block与inline...但IE不认得这个,而它实际上把width当 做最小宽度来使。...它实际上通 过Javascript的判断来实现最小宽度。 6.DIV浮动IE文本产生3象素的bug 左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距....12 .IE6下为什么图片下有空隙产生 解决这个BUG的方法也有很多,可以是改变html的排版,或者设置img 为display:block 或者设置vertical-align 属性为 vertical-align
下面我们看一下使对象垂直集中的几种不同方法,以及它们各自的优缺点。 表格布局 这个方法把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align 属性。...假借图片法 这个方法把一些 div 的显示方式设置为inline-block,和图片一样,因此我们可以使用图片的 vertical-align 属性。...,导致网页布局全部瘫痪 绝对定位法 这个方法使用绝对定位的 div,把它的 top 设置为 50%,top margin 设置为负的 content 高度。...设置此 div height:50%; margin-bottom:-contentheight;content 清除浮动,并显示在中间。...这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。
定位方式实现(方法一) 第一种通过定位的方式实现就比较简单,实际就是通过top: 50%; margin-top: 等于负的高度的一半就可以实现垂直居中。...> 内容 左列容器开启左浮动 右列容器开启右浮动 使中间自适应的宽度为父级容器减去两个定宽的列 实现CSS代码如下: .left...通过position实现 实现步骤 左右两列脱离文档流,并通过偏移的方式到达自己的区域 使中间自适应的宽度为父级容器减去两个定宽的列 通过外边距将容器往内缩小 实现CSS代码如下: .left {...绝对定位的方式 通过绝对定位的方式实现Sticky Footer布局的步骤如下: 设置最外层容器高度为100%; 让子元素元素相对于容器元素进行定位,并设置容器元素最小高度为100%; 在中间区域设置padding-bottom...为footer的高度 ; 底部栏绝对定位,并一直吸附在底部即可实现。
HTML的结构包括头部 (Head)、主体 (Body) 两大部分。头部描述浏览器所需的信息,主体包含所要说明的具体内容。...##### #号中的言论待考证 如果第一个div1里面的内容高度小于或者等于本身定义的div0的高度的话,下一个div2就会自动靠下边最左边浮动 如果div1里面的内容的高度大于div1设置的高度的话...,div2的位置不会靠最左边,而是在多出内容的右下角为开头浮动,如果div设了float:left; 则在div的右边浮动。 ...#### 两个div,分别为div1和div2,如果div1的float调为left,div2不调,那个div2就会从div1开始的地方,开始浮动,也就是覆盖在div1的下面,哪个定义浮动,哪个就优先显示...要想让每一个div规规矩矩的从上往下排列就需要给想要浮动的那个个div设置宽度和高度,并给指定的div设置float为left.
flex-flow justify-content属性定义了项目在主轴上的对齐方式 align-items属性定义项目在交叉轴上如何对齐 align-content flexbox中的align-self...缺点 最明显的缺点就是浮动元素一旦脱离了文档流,就无法撑起父元素,会造成父级元素的高度塌陷。...浮动元素(元素的float不是none) 绝对定位元素(元素的position为absolute或fixed) 行内块元素(元素的display为inline-block) 表格单元格(元素的display...为table-cell, HTML表格单元格默认为该值) 表格标题(元素的display为table-caption,HTML表格标题默认为该值) 匿名表格单元格元素(元素的display为table、...高度的时候浮动元素也会参与计算 应用场景 (1) 避免外边距折叠 <!
文本水平对齐方式:text-align left,center,right 文本所在行高的垂直对齐方式:vertical-align baseline默认 sub垂直对齐文本的下标,和sub标签一样的效果...设置当对象的内容超过其指定高度及宽度时如何显示内容 visible默认值,内容不会被修剪,会呈现在元素框之外 hidden内容会被修剪,并且其余内容是不可见的 scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容...间距margin 内填充padding 浮动float 浮动原理:浮动使元素脱离文档普通流,漂浮在普通流之上的 浮动元素依然按照其在普通流的位置上出现,然后尽可能的根据设置的浮动方向向左或向右浮动,...知道浮动元素的外边缘遇到包含框或者另一个浮动元素为止,且允许文本和内联元素环绕它 浮动会产生块级框,而不管该元素本身是什么 清除浮动带来的影响 clear清除浮动 none不清除,left不允许左边有浮动对象...,right,both 利用伪类实现清除浮动 .clearFix{ content=""; display: block; width: 0; height: 0;
(需要注意的是:vertical-align: middle使用的前提条件是内联元素以及display值为table-cell的元素)。 二、浮动布局的优点?有什么缺点?清除浮动有哪些方式?...优点 这样做的优点就是在图文混排的时候可以很好的使文字环绕在图片周围。...*/ content: ''; /* 设置添加子元素为块级元素 */ display: block; /* 设置添加的子元素的高度0 */ height...为 absolute 或 fixed) 行内块元素(元素的 display 为 inline-block) 表格单元格(元素的 display为 table-cell,HTML表格单元格默认为该值)...表格标题(元素的 display 为 table-caption,HTML表格标题默认为该值) 匿名表格单元格元素(元素的 display为 table、table-row、 table-row-group
使子元素相对于容器元素定位; (2). 子元素开启绝对定位; (3). 设置该元素的偏移量,值为50% 减去宽度/高度的一半。...左列容器开启左浮动; (3). 右列容器开启右浮动; (4). 使中间自适应的宽度为父级容器减去两个定宽的列。...左右两列脱离文档流,并通过偏移的方式到达自己的区域; (2). 使中间自适应的宽度为父级容器减去两个定宽的列; (3). 通过外边距将容器往内缩小。...绝对定位的方式 实现步骤: (1). 设置最外层容器高度为100%; (2). 让子元素元素相对于容器元素进行定位,并设置容器元素最小高度为100%; (3). ...在中间区域设置padding-bottom为footer的高度; (4). 底部栏绝对定位,并一直吸附在底部即可实现。
对于 left 来说,它需要左移父元素的总宽度,对于 right 来说,它需要左移自身宽度。 设置父容器的左右 padding,使内部内容向中间挤压,从而使左右留白。...两种布局的对比: 优先加载主列。 三列浮动,配合负外边距形成三列布局 两种布局方式的主要区别在于如何处理主列,从而让其内容不被覆盖。...flex 有三个值时,设置的是 flex-grow,flex-shrink,flex-basis。这里左右两列的 flex-basis 都是 100px,实际上为它们设置了固定宽度。...float: left; width: 220px; } 4.3 利用表格布局: 这是一种非常简单,易于实现的方法。...此时弹性子元素的 align-items 属性默认值是 stretch,也就是在 y 轴上将所有子元素拉伸为同一高度,从而达到等高布局。
领取专属 10元无门槛券
手把手带您无忧上云