目录
1.显示模式display
显示模式 | 常见元素 | 特点 |
---|---|---|
块级元素 | div标签、h1-h6、p、form、header、footer、section、ul、li、ol、dl、dt | 独占一行,默认垂直布局,没有设置宽高时宽度继承父级,高度由内容撑开。可以设置宽高,具有盒子模型的特点 |
行内元素 | span标签、strong、em、i、a、b | 一行可存放多个,默认水平布局,默认宽度和高度由内容撑开,不能设置宽高,只能设置左右的外边距、上下左右的内边距和边框。一般容纳文本或者其他行内元素,不嵌套块级和行内块级元素 |
行内块元素 | img、input | 一行存放多个,默认水平布局,默认宽度和高度由内容撑开,可以设置宽高,具有盒子模型的特点 |
2.定位position
可让标签压在一起显示
静态定位:
position-static
,不受left、rigth等方位设置的影响。相对定位:
position: relative;
改变位置的参照物是自己原来的位置,不脱标,占位,标签显示模式特点不变。受left、rigth等方位设置的影响。绝对定位:
position:absolute;
子级绝对定位,父级相对定位(子绝父相)。子级先找最近的已经定位的祖先元素,如果祖先元素都没有定位,则参照浏览器可视区域位置。宽高生效,具备了行内块的特点。受left、rigth等方位设置的影响。定位居中:
固定定位:
position:fixed;
元素的位在网页滚动时不滚动。脱标,不占位;参照物是浏览器窗口。受left、rigth等方位设置的影响。粘性定位:
position-sticky
,根据滚动位置在相对(relative
)和固定(fixed
)之间切换。
<!DOCTYPE html>
<html>
<head>
<style>
/* 注意:Internet Explorer、Edge 15 以及更早的版本不支持粘性定位。 Safari 需要 -webkit- 前缀(请参见下面的实例)。您还必须至少指定 top、right、bottom 或 left 之一,以便粘性定位起作用。*/
div.sticky {
position: -webkit-sticky;
position: sticky;
top: 0;
padding: 5px;
background-color: #cae8ca;
border: 2px solid #4CAF50;
}
</style>
</head>
<body>
<p>请试着在这个框架内<b>滚动</b>页面,以理解粘性定位的原理。</p>
<div class="sticky">我是有粘性的!</div>
<div style="padding-bottom:2000px">
<p>在此例中,当您到达元素的滚动位置时,粘性元素将停留在页面顶部(top: 0)。</p>
<p>向上滚动以消除粘性。</p>
<p>一些启用滚动的文本.. Lorem ipsum dolor sit amet, illum definitiones no quo, maluisset concludaturque et eum, altera fabulas ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. Eum no molestiae voluptatibus.</p>
<p>一些启用滚动的文本.. Lorem ipsum dolor sit amet, illum definitiones no quo, maluisset concludaturque et eum, altera fabulas ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. Eum no molestiae voluptatibus.</p>
</div>
</body>
</html>
堆叠层级:按照标签书写顺序,后来者居上;作用,设置定位元素的层级顺序,改变定位元素的显示顺序。
z-index: x
x默认是0,为整数,取值越大显示顺序越靠上
3.元素溢出overflow
属性 | 描述 |
---|---|
overflow | 规定如果内容溢出元素框会发生什么情况。 |
overflow-x | 规定在元素的内容区域溢出时如何处理内容的左/右边缘。 |
overflow-y | 指定在元素的内容区域溢出时如何处理内容的上/下边缘。 |
4.float浮动
作用:让块状元素水平排列
属性名:float
属性值:left/right
特点:顶对齐,具备行内块显示模式特点,浮动的盒子可能“脱标”(脱离标准流的控制,不再占标准流的位置)
清除浮动:
场景:浮动元素脱标,如果父级没有高度,子级无法撑开父级高度,可能导致页面布局错乱。如果一个元素比包含它的元素高,并且它是浮动的,它将“溢出”到其容器之外:
解决办法:清除浮动
额外标签法:在父级元素内容的最后添加一个块级元素(一般将标签类名设置为
clearfix
),设置CSS属性clear:both
单伪元素法:给父级元素添加类名
clearfix
,在CSS中写如以下代码双伪元素法(推荐常用):给父级元素添加类名
clearfix
,在CSS中写如以下代码overflow:给父级元素添加CSS属性
overflow:hidden
【记录学习过程的笔记,欢迎大家一起讨论,会持续更新】