CSS禅意花园(2)-绝对定位和相对定位
  evcC6HYXeV5x 2023年11月02日 92 0


今天来讲一下CSS中的绝对定位和相对定位,即position属性的使用方法。

position属性常见的值有三种:

  • static: 不使用定位(默认值)。
  • absolute: 使用绝对定位。
  • relative: 使用相对定位。

在解释定位方式之前,首先要阐明文档流(document flow)的概念。浏览器在解释HTML文档时,它会将各个元素按照在HTML文档中出现的次序,从上到下依次排列。例如下面的代码将产生如下的效果:





绝对定位

将元素设置为 position:absolute 可以使其变为绝对定位。绝对定位的元素将不再包含于文档流之中,也就是说,浏览器在从上到下显示HTML文档的各个元素时会“忽略”掉绝对定位的元素,好像它根本不存在一样。如下图:




指定绝对定位之后,就可以通过left和top属性来指定该元素的位置。一般来说,left和top以浏览器内容区域的左上角为原点(0,0)。但有一个特例,即''当一个绝对定位的元素的父元素也被绝对定位,那么该元素的位置将以其父元素区域的左上角为原点''。




绝对定位由于可以直接指定左上角位置,因此页面布局会很容易。但是它无法处理带有页脚的页面布局,因为你无法确定正文内容的量,所以无法将页脚元素精确地定位到正文的下方。

相对定位

相对定位使得元素在原有位置的基础上移动top和left指定的距离。相对定位不会将元素从文档流中剔除,因此浏览器在显示相对定位的元素时,会当作它还在原有位置一样进行处理。如下面的代码,可以看到div1和div3之间留出了div2的位置,而实际上div2已经向右下方偏移了一定的距离。




相对定位可以很好地解决绝对定位无法做到的页脚布局问题。

应用

最后再用CSS Zen Garden上的一个 例子来说明相对定位的应用。这个设计的页面最下方,一条巨龙盘踞在文字栏的上方。




显然,我们无法确定正文内容的多少,因此使用绝对定位无法将龙的图像精确地定位在文字栏之上。但作者利用相对定位就很好地解决了这个问题。巨龙图像元素的CSS代码如下:


#extraDiv1 { position: relative; top: -225px; left: -360px; margin: 0 auto; width: 96px; height: 206px; background-image: url(Dragon.gif); background-position: left top; background-repeat: no-repeat; }


去掉position:relative属性也许能更为明显地看到这个技巧的用法。巨龙本应位于整个文档的下方,设计师通过相对定位将他移动到了文字栏之上。




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  qmj2xyt4e0cp   2023年11月12日   43   0   0 nginxhtml服务器服务器htmlnginx
  qmj2xyt4e0cp   2023年11月12日   51   0   0 html服务器
  TuKgtV27aHkY   2023年11月12日   29   0   0 html搜索nginx
evcC6HYXeV5x