一、position 属性:
- static:元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
- relative:元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
- absolute:元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
- fixed:元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
相对定位:
我理解的:相对定位的元素在文档中是正常流,它原先在什么位置,定位之后就相对于原先的位置移动;
绝对定位:
我理解的:元素脱离文档流,就好像页面中它不存在一样;它的位置对页面中其他元素没有任何影响,它可能会覆盖住其他元素;
但是它相对于什么元素定位的呢?(相对于其包含块,包含块可能是文档中的另一个元素或者是初始包含块。)相对于父元素
固定定位:
和绝对定位类似,也会脱离文档流,可能会覆盖住其他元素;只不过其包含块是视窗本身。
二、块级元素和行内元素:
块级元素:div、h1(大标题) 、 p(段落) 、hr、table
正常流时,每个块级元素默认占一行高度 ,一行内添加一个块级元素后无法一般无法添加其他元素 ,元素样式的display:block都是块级元素;
特点:
①、总是在新行上开始;
②、高度,行高以及外边距和内边距都可控制;
③、宽度缺省是它的容器的100%,除非设定一个宽度。
④、它可以容纳内联元素和其他块元素
②、高度,行高以及外边距和内边距都可控制;
③、宽度缺省是它的容器的100%,除非设定一个宽度。
④、它可以容纳内联元素和其他块元素
行内元素:a、 span、iframe、br(换行)、em(强调)、img(图片)、input、label、select 、textarea(多行文本输入框)、
display : inline的都是行内元素。设置高度无效,但可以通过line-height来设置;
特点:
①、和其他元素都在一行上;
②、高,行高及外边距和内边距不可改变;
③、宽度就是它的文字或图片的宽度,不可改变
④、内联元素只能容纳文本或者其他内联元素
②、高,行高及外边距和内边距不可改变;
③、宽度就是它的文字或图片的宽度,不可改变
④、内联元素只能容纳文本或者其他内联元素
三、inline/inline-block/block
display:block; 转化为块状元素;一个块状元素独占一行;可设宽、高、行高、顶和底边距离;宽默认为父元素的100%;
display:inline;转化为行内元素;和其他元素共处一行;不可设宽、高、行高、顶和底边距离;宽即所包含的文字图片之宽;
display:inline-block:可用{display:inline-block;}转化为内联块状元素;和其他元素共处一行;可设宽、高、行高、顶和底边距离;