外部尺寸与流体特性
1.正常流宽度:margin
/border
/padding
/content
内容区域自动分配水平空间
2.格式化宽度:仅出现在“绝对定位模型”中
内部尺寸与流体特性
1.包裹性:包裹+自适应
2.首选最小宽度:每个汉字宽度,每个英文字符单元
3.最大宽度:最大的连续内联盒子的宽度
内联元素
可以和文字在同一行显示
内联盒模型
1.内容区域
2.内联盒子
3.行框盒子
4.包含盒子
幽灵空白节点
在HTML5
文档声明中,内联元素的所有解析和渲染表现就如同每个行框盒子的前面有一个“空白节点”。这个空白节点永远透明,不占宽度,无法获取,但确实存在,表现如文本节点一样。
替换元素
根据是否具有可替换内容,可以把元素分为替换元素和非替换元素。
典型的替换元素:<img>
、<object>
、<video>
、<iframe>
、<textarea>
、<input>
······
替换元素特性:
1.内容可替换
2.内容的外观不受页面上的css影响
3.有自己的尺寸
4.在很多css属性上有自己的一套规则
替换元素和非替换元素的区别:
1.替换元素和非替换元素之间只隔了一个src
属性
2.替换元素和非替换元素之间只隔了一个CSS content
属性
content内容生成技术
1.content辅助元素生成
2.content字符内容生成
3.content图片生成
4.content开启闭合符号生成
5.content计数器
margin
margin合并的3种场景
1.相邻兄弟元素margin合并
2.父级和第一个/最后一个子元素
3.空块级元素的margin合并
margin合并的计算规则:
1.正正取大
2.正负相加
3.负负最负
margin:auto
的填充规则
1.如果一侧定值,一侧auto
,则auto
为剩余空间大小
可用于实现左对齐或右对齐
2.如果两侧均是auto
,则平分剩余空间
注:触发margin:auto
计算有一个前提,width
和height
不能是auto
margin无效情形:
1.display
计算值inline
的非替换元素的垂直margin
无效
表格中<tr>
和<td>
元素设置display
计算值是table-cell
和table-row
的元素的margin
都是无效的
2.margin
合并的时候
3.绝对定位元素非定位方向的margin
值“无效”
4.定高容器的子元素的margin-bottom
或者定宽容器的子元素的margin-right
的定位“失效”
5.鞭长莫及导致的margin
失效
6.内联特性导致的margin
失效
vertical-align
vertical-align属性值分为4类:
1.线类: baseline
,top
,middle
,bottom
2.文本类:text-top
,text-bottom
3.上下标类: sub
,super
4.数值百分比类: 如20px
,2em
,20%
5.vertical-align
作用的前提: 只能应用于内联元素以及display
值为table-cell
的元素
width:auto
auto默认值包含四种表现形式:
1.充分利用可用空间:fill-available
2.收缩与包裹: fit-content
3.收缩到最小:min-content
4.超出容器限制
height:100%
如果父元素高度为auto
,只要子元素在文档流中,百分比值会被忽略。
使height:100%
生效:
1.设置显示的高度值
html,body {
height: 100%;
}
2.使用绝对定位
div {
position: absolute;
height: 100%;
}
层叠上下文和层叠水平
层叠顺序:
1.正z-index
2.z-index:0或者z-index:auto
或者不依赖z-index
的层叠上下文
3.inline水平盒子
4.float浮动盒子
5.block块状盒子
6.负z-index
7.层叠上下文background/boder
层叠领域的黄金准则
1.谁大谁上
2.后来居上
z-index不犯二准则: 对于非浮层元素,避免设定z-index值,z-index值没有任何道理需要超过2。
流向的改变
1.direction
2.unicode-bidi
3.writing-mode
关于display:block
block
属性具有最具代表性的流动性,天生默认宽度为父盒子的100%.流动性,当设置了宽度的时候,会打断流动性,所以张鑫旭建议布局无宽度.(当子盒子浮动或者定位,就会失去这个流动性)
关于display:inline-block
与block
的流动性不同,inline-block
具有包裹性,也就是宽度由内部元素决定
文字和图片最优原则
就是你哪怕设置了父盒子的宽度为零,文字和图片依旧会显示的.如果设置了overflow:hidden
,就可以隐藏起来,这是改变了渲染的规则.
网友评论