Open HarleyWang93 opened 7 years ago
inline
display
block-level
内边界:指盒模型中的content边界。外边界:指盒模型中的margin边界。
inline-level
清除浮动指元素的侧边不允许出现浮动元素,从而使得浮动元素的不占据普通文档流空间的使得父元素的高度塌陷问题得到解决,主要通过clear属性实现。
clear
clear:指定一个元素是否可以在它之前的浮动元素旁边,或者必须向下移动(清除浮动) 在它的下面。clear 属性适用于浮动和非浮动元素。
当应用于非浮动块时,它将非浮动块的边框边界移动到所有相关浮动元素外边界的下方。这个行为作用时会导致margin collapsing不起作用。
margin collapsing
当应用于浮动元素时,它将元素的外边界移动到所有相关的浮动元素外边界的下方。这会影响后面浮动元素的布局,后面的浮动元素的位置无法高于它之前的元素。
height
:after
.clearfix{ *zoom:1; } /*兼容IE6、7 (现在基本上不用写这行了,基本淘汰了)*/ .clearfix:after { content:""; display: block; clear: both; }
float
overflow:hidden
inherit
position
static
top
bottom
left
right
z-index
relative
absolute
offset parent
fixed
sticky
`position:relative
position:fixed
position:relative;
width
z-index规定了元素在 Z 轴(距离用户远近)上的顺序,值越大则越靠近用户,表现就是元素在最上面。
z-index仅在设置了position非static属性的元素生效,且z-index的值只能在兄弟元素之间比较。
Z-index默认值为auto,则不建立层叠上下文。设置为 0 则会建立层叠上下文。
Z-index
auto
0
深入理解CSS中的层叠上下文和层叠顺序
position:relative
margin
none
inline-block
display: inline-block
display: table-cell
display: table-caption
overflow
visible
display: flow-root
float:left|right
overflow:hidden|auto|scroll
display:inline-block|table-caption|table-cell
position:absolute|fiexd
padding
border
min-height
浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?
浮动元素是什么?
浮动元素的特征
inline
元素设置浮动,改变inline
的display
使得它像个block-level
block-level
元素的背景,不会遮盖inline
元素。影响
inline-level
)会无视浮动元素的存在,从而占据浮动元素的"原来的位置"。inline-level
)级的元素会环绕浮动元素,表现的像是察觉到浮动元素一样。清除浮动指什么? 如何清除浮动?
清除浮动指元素的侧边不允许出现浮动元素,从而使得浮动元素的不占据普通文档流空间的使得父元素的高度塌陷问题得到解决,主要通过
clear
属性实现。clear
:指定一个元素是否可以在它之前的浮动元素旁边,或者必须向下移动(清除浮动) 在它的下面。clear
属性适用于浮动和非浮动元素。当应用于非浮动块时,它将非浮动块的边框边界移动到所有相关浮动元素外边界的下方。这个行为作用时会导致
margin collapsing
不起作用。当应用于浮动元素时,它将元素的外边界移动到所有相关的浮动元素外边界的下方。这会影响后面浮动元素的布局,后面的浮动元素的位置无法高于它之前的元素。
方法:
height
值:after
伪元素,然后在伪元素上设置clear
属性来实现利用伪类
:after
清除 (推荐使用)利用空标签清除
clear
属性利用 BFC 清除浮动
float
影响整体布局,overflow:hidden
影响内容的展示等等有几种定位方式,分别是如何实现定位的,参考点是什么,使用场景是什么?
inherit
从父元素继承position
属性的值 一般不用static
默认值,没有定位,元素出现在正常的流中(忽略top
,bottom
,left
,right
或者z-index
声明)relative
生成相对定位的元素,相对于元素本身正常位置进行定位 属性值:left
,top
,right
,bottom
应用于对其自身进行细微调整absolute
生成绝对定位的元素,相对于static定位以外的第一个祖先元素(offset parent
)进行定位 属性值:left
,top
,right
,bottom
fixed
生成绝对定位的元素,相对于浏览器窗口进行定位。 属性值:left
,top
,right
,bottom
需要一直停留在窗口的元素,例如sticky
兼容性较差,一般用 JS 实现 新的 CSS3 属性,它的表现类似`position:relative
和position:fixed
的合体,目标区域在屏幕中可见时,它的行为就像position:relative;
而当页面滚动超出目标区域时,它的表现就像position:fixed
,它会固定在目标位置。 注意:如果同时定义了left
和right
值,且width
和height
有值,那么left
生效,right
无效。同样的,同时定义了top
和bottom
,top
生效。z-index
有什么作用? 如何使用?z-index
规定了元素在 Z 轴(距离用户远近)上的顺序,值越大则越靠近用户,表现就是元素在最上面。z-index
仅在设置了position
非static
属性的元素生效,且z-index
的值只能在兄弟元素之间比较。Z-index
默认值为auto
,则不建立层叠上下文。设置为0
则会建立层叠上下文。深入理解CSS中的层叠上下文和层叠顺序
position:relative
和负margin
都可以使元素位置发生偏移?二者有什么区别position:relative
相对自己原本的位置偏移,不影响其它普通流中元素的位置。margin
:除了让元素自身发生偏移还影响其它普通流中的元素。BFC 是什么?如何生成 BFC?BFC 有什么作用?
BFC: 块格式化上下文 ( block formatting context 、Block Format Content ) 是 Web 页面的可视 CSS 渲染的一部分,是一种显示渲染规则。它是块盒子的布局发生及浮动体彼此交互的区域。
首先 BFC 是一个名词,是一个独立的布局环境,我们可以理解为一个箱子(实际上是看不见摸不着的),箱子里面物品的摆放是不受外界的影响的。
形成条件:
float
不是none
)position
为absolute
或fixed
)inline-block
(元素具有display: inline-block
)display: table-cell
,HTML 表格单元格默认属性)display: table-caption
, HTML 表格标题默认属性)overflow
,且值不是visible
display: flow-root
简而言之
float:left|right
overflow:hidden|auto|scroll
display:inline-block|table-caption|table-cell
position:absolute|fiexd
注意:浮动不会影响其它块格式化上下文中元素的布局,并且清除浮动只能清除同一块格式化上下文中在它前面的元素的浮动。
作用
float
元素的效果应用
在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?
场景
合并规则:
margin
都是正值的时候,取两者的最大值;margin
都是负值的时候,取的是其中绝对值较大的,然后,从0
位置,负向位移;margin
中绝对值中最大的,然后,和正margin
值中最大的margin
相加。margin
要一起参与运算,不能分步进行。不让相邻元素外边距合并的方法:
padding
、border
或clear
分隔开。margin
在垂直方向上不毗邻。总结:
top
margin
与第一个子box的top
margin
bottom
margin
与最后一个子box的bottom
margin
,但须在该box的height
为auto
的情况下bottom
margin
与紧接着的下一个box的top
margin
top
margin
与其自身的bottom
margin
,但须满足没创建BFC、零min-height
、零或者“auto
”的height
、没有普通流的子元素。参考
CSS 外边距合并