为什么div的默认值是静态但不是相对的?

时间:2014-05-14 11:15:51

标签: html css css-position

就像标题一样,为什么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都相对吗?

1 个答案:

答案 0 :(得分:2)

如果position: relative是默认值,position: absolute;将无法按预期工作。也就是说,因为position: absolute使用层次结构中最接近的非静态定位元素作为引用。如果没有静态定位元素,则所有元素都是非静态元素,因此position: absolute将使用父元素作为引用,因此不再定位绝对元素,而是相对的元素。