HTML元素大小和位置相对于谁的问题_html/css_WEB-ITnose

一、如果元素的position属性值为absolute,那么此时分为两种情况:

1. 父级(包括直接父级和间接父级)元素中没有定义position属性(即默认属性static),那么该元素会参照页面,以页面为基准进行定位,top, left等属性会参照页面。

如果该元素的width和height属性是百分数的话,那么这两个属性也是参照页面的宽度和高度。

*{margin: 0; padding: 0;}#div1 {    width: 200px;    height: 200px;    background: #ccc;}#div2 {    width: 50%;    height: 50%;    background: #aaa;    top: 100px;    left: 100px;    position: absolute;}

登录后复制

以上代码中,div2是绝对定位,而其父级元素没有设置position属性,那么该元素就会以页面为参照进行定位。

立即学习“前端免费学习笔记(深入)”;

从图中可以看到,div2是相对于页面定位的,而且其宽度和高度是页面宽高的一半。

立即学习“前端免费学习笔记(深入)”;

从控制台可以看到,页面的宽度和高度正好是div2元素的2倍。

2. 父级元素定义了position属性(relative或absolute),则会参照父级元素。

*{margin: 0; padding: 0;}#div1 {    width: 200px;    height: 200px;    background: #ccc;    position: relative;    top: 100px;    left: 100px;}#div2 {    width: 50%;    height: 50%;    background: #aaa;    top: 100px;    left: 100px;    position: absolute;}
div1
div2

登录后复制

立即学习“前端免费学习笔记(深入)”;

从图中可以看到,div2是相对于div1定位的,宽度和高度也是相对于div1

 

二、如果元素的position属性值为relative,那么该元素相对于其正常位置(即position:static)定位。

默认情况下宽度会占满父容器,高度根据本身内容决定。当是父元素的第一个子元素时,位置会在父元素的左上角。

那么设置其位置和大小就会以自己为参照,height的情况特殊,当设置height时,会以充满父容器的状态为参照。

*{margin: 0; padding: 0;}#div1 {    width: 100px;    height: 100px;    background: #ccc;}#div2 {    width: 50%;    height: 50%;    background: #aaa;    top: 100px;    left: 100px;    position: relative;}

登录后复制

立即学习“前端免费学习笔记(深入)”;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3108699.html

(0)
上一篇 2025年3月29日 10:06:22
下一篇 2025年3月6日 01:04:51

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论