就像标题一样,为什么div(或p或html中的任何其他元素)将'position:static'作为默认值?为什么不'位置:亲戚'? 在我的CSS中使用'position:static'看不出任何好处。 使用'position:relative'?
定义html中的所有div元素是否安全?修改: 我非常清楚静态,相对,绝对和固定定位之间的区别。但主要的问题是为什么div或任何其他html元素的默认定位是静态的?这个例子:
HTML
<div class="div1">
<div class="div2">
<div class="div3">
<div class="div-last"></div>
</div>
</div>
</div>
CSS
.div1 {
width: 700px;
height: 700px;
background-color: #000;
position: relative;
}
.div2 {
width: 600px;
height: 600px;
background-color: #333;
position: relative;
top: 20px;
left: 20px;
}
.div3 {
width: 500px;
height: 500px;
background-color: #777;
position: absolute;
right: 0;
top: 30px;
}
.div-last {
width: 400px;
height: 400px;
background-color: #AAA;
position: absolute;
bottom: 20px;
left: 20px;
}
表明我不需要一个静态定位来按我的意愿安排我的div。 这是上面代码的jsfiddle。 抱歉我的马铃薯英语。 :d
编辑#2 : 相关问题的答案是: “是的,它是。如果你试图将一个元素置于绝对位置,它将相对于最近的祖先定位,它的CSS位置不是静态的。
如果每个元素都有position:relative,那么这将是直接父元素。
但是你可能想要将绝对元素相对于DOM树中的元素进一步放置,或者可能绝对放在页面主体上。“
所以,我不希望/需要“将绝对元素相对于DOM树中的元素进一步定位,或者绝对在页面主体上。”,是否有任何其他技术预防措施我需要知道之前我让所有div都相对吗?
答案 0 :(得分:2)
如果position: relative
是默认值,position: absolute;
将无法按预期工作。也就是说,因为position: absolute
使用层次结构中最接近的非静态定位元素作为引用。如果没有静态定位元素,则所有元素都是非静态元素,因此position: absolute
将使用父元素作为引用,因此不再定位绝对元素,而是相对的元素。