CSS中的元素定位方法详解

2020-05-05 07:32:21易采站长站整理

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,元素会被隐藏,但其占据的页面空间会被保留。