我尝试了响应式css布局,但是" top:50%"不能工作和离开:50%"能够。 为什么会这样?
<div style="position:relative;top:0%;left:0%;height:100%;width:100%">
<div style="position:absolute;top:50%;left:50%;">
</div>
</div>
答案 0 :(得分:10)
定义父容器的维度,例如DIV:
<div style="border: 2px solid red;position:relative;top:0%;left:0%;height:200px;width:300px">
<div style="border: 2px solid green;position:absolute;top:50%;left:50%;height:50%;width:50%">
</div>
</div>
或者
另一种方法是通过其顶部,底部,左侧和右侧属性拉伸父容器,即div。像这样:
<div style="border: 2px solid red;position: absolute;top: 0px;bottom: 0px;left:0px;right:0px;">
<div style="border: 2px solid green;position:absolute;top:50%;left:50%;height:50%;width:50%">
</div>
</div>
答案 1 :(得分:3)
考虑您的原始HTML:
html, body {
height: 100%;
}
<div style="position:relative;top:0%;left:0%;height:100%;width:100%">
<div style="position:absolute;top:50%;left:50%;">test</div>
</div>
内部/子div
有position: absolute
,因此它不在父元素的内容流中,也不会影响父元素的高度或宽度。
父div
位于内容流中,但没有内容,因此其内在
高度为零。但是,您指定了height: 100%
,但这不会执行任何操作,因为div
没有基于计算值的高度参考。因此,父div
的计算高度值为零。
结果,子元素的top
偏移量计算为零的50%
,
所以它位于父块的顶部边缘。
您需要为父div
指定高度或指定
html, body {height: 100%}
因为这将允许div
根据高度计算其高度
body
基于html
的高度(100%),取决于屏幕的高度。
答案 2 :(得分:1)
请参阅以下链接。我相信你会有一个更好的结果,因为你正在尝试做什么,虽然我仍然不是100%肯定我明白这是什么。
http://jsfiddle.net/8q107wvb/1/
body {background:#e9e9e9; color:#202020;}
#wrapper {width:500px; background:#fff; margin:50% auto;}
.centered-content {position: fixed; top: 50%; left: 50%; background:#fff; padding:20px;}
答案 3 :(得分:0)
这是另一个解决此问题的方法
expo --version
* {
height: 100%;
}
.first{
position:relative;
top:0%;
left:0%;height:100%;
width:100%"
}
div{
position:absolute;
top:50%;
left:50%;
}