我在div上使用position: absolute;
。
我的代码是:
.ab {
background: none repeat scroll 0 0 #FF0000;
bottom: 0;
height: 100px;
left: 0;
position: absolute;
top: 0;
width: 100px;
}
我想知道即使我指定bottom: 0
,为什么它仍然在顶部?
顶部和底部之间是否有任何优先问题?或者是什么原因?
答案 0 :(得分:9)
来自Mozilla:https://developer.mozilla.org/en-US/docs/Web/CSS/top
如果同时指定
top
和bottom
,则只要height
未指定,auto
或100%
,top
和bottom
距离将得到尊重。否则,如果height
受到任何限制,top
属性优先,bottom
属性被忽略。
在您的示例中,您已声明了一个集height
以及top
和bottom
位置,因此top
位置优先,{忽略{1}}(无论您列出bottom
和top
的顺序如何。
答案 1 :(得分:6)
左上角和左上角优先于底部和右边。
但请注意,您只是看到了这种行为,因为您指定了一个高度。如果您指定top: 0
和bottom: 0
没有固定高度,则div将使用非静态定位从其第一个祖先的顶部到底部延伸。指定没有高度或宽度的所有四个,它将填充该父项的整个可用区域as you can see in this jsFiddle。
答案 2 :(得分:1)
CSS优先于左/右上/下。如果同时提供,则使用top / left而不是bottom / right。
虽然提供两者(如果你有一个明确的高度和宽度),但没有合法的理由。
答案 3 :(得分:1)
是top:
的优先级高于bottom
:
如果您同时使用top
和bottom
。它将与top
给出的值相对应。
Top
和Left
具有更高的优先级
答案 4 :(得分:1)
是。所有浏览器都从页面顶部开始计算坐标。 您有顶级属性和高度属性。首先设置元素的顶部位置,然后是高度,然后是底部位置。
如果删除高度属性 - 您的块从上到下。 (100%身高);