3.1 静态定位
static
在静态定位的情况下,每个元素都处于常规文档流中。要突破这种布局元素的方式,就必须把盒子的 position 属性改为其它三个值。
3.2 相对定位
relative
相对定位,相对的是它原来在文档流中的位置(或者默认位置)。设置之后,可以使用 top、right、bottom 和 left 属性来改变它的位置。多数情况下,只用 top 和 left 就可以实现我们想要的效果。
使用相对定位的关键就是要考虑到元素原来的空间。因为使用了相对定位的元素只是相对于原始位置挪动了一下,页面没有任何变化,即元素原来占据的空间没有动,其他元素也没动。
3.3 绝对定位
absolute
绝对定位会把元素彻底从文档流中拿出来,然后相对于其他元素(默认是定位上下文 body)定位。同样可以通过 top 和 left 设定偏移值来决定位置。
3.4 固定定位
fixed
从完全移出文档流的角度说,固定定位与绝对定位类似。但不同之处在于,固定定位元素的定位上下文是视口(浏览器窗口或手持设备的屏幕),因此它不会随页面滚动而移动。
提示:固定定位并不常用,最常见的情况是用它创建不随页面滚动而移动的导航元素。
3.5 定位上下文
定位上下文,指的是定位元素所相对偏移的元素。
事实上,只要把元素的外边距和内边距设定好,多数情况下只用静态定位就足以实现页面布局了。很多刚开始接触 CSS 的初学者都会错误地设定 position 属性,最终才发现从文档流中挪出来的这些元素一点也不好控制。因此,除非真需要那么做,否则 不要轻易修改元素默认的 position 属性。
4.显示属性
所有元素都有 position 属性,也有 display 属性。
display属性有三个值:block、inline 和 none。
块级元素,比如段落,标题,列表等,在浏览器上下堆叠显示。
行内元素,比如a、span、img,在浏览器中左右并排显示,只有前一行没有空间时才会显示到下一行。
把块级元素变成行内元素(或者相反):
CSS Code复制内容到剪贴板
/*默认为 block*/
p {display:inline;}
/*默认为 inline*/
a {display:block;}
把元素的 display 设置为 none,则该元素及所有包含在其中的元素,都不会在页面显示,它们原先占据的空间也不会被回收,就好像相关标记根本不存在一样。
与此相对的元素是 visibility 属性,属性值为:visible(默认值)和 hidden。如果设置为 hidden,元素会被隐藏,但其占据的页面空间会被保留。










