我看到很多关于如何将div居中到页面中间的示例,但在所有示例中,div的大小都是固定的。
如何将div放在div高度未知大小的页面中心?
(中间的灰色div)
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<style>
html,body{
margin: 0;
padding: 0;
border: 0;
}
body{
background-color: transparent;
overflow: hidden;
font-family: "Helvetica"
;
color: #359115;
font-weight:bold;
}
#wrapper {
position: absolute;
width: 100%;
height: 100%;
text-align: center;
}
#container {
background-color: #dddddd;
/*height: 100%;
widows: 100%;*/
margin: 0,auto;
text-align: center;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="container" align="center">
<span class="currency">$ </span><span class="integer">4,080,048.</span><span class="decimal">00</span>
</div>
</div>
</body>
</html>
我需要在Android和IOS中使用webView,因为这些数字总是显示在浏览器的顶部。
注意:浏览器不是全屏!
屏幕截图位于我的其他question
中答案 0 :(得分:5)
如何将div放在div高度未知大小的页面中心?
涉及2d变换的简单解决方案(X轴和Y轴具有负平移值):
http://jsbin.com/itifad/1/edit
CSS
div {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%); /* Older Gecko browser */
-ms-transform: translate(-50%, -50%); /* IE9+ */
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
这就是全部:不需要使用javascript或嵌套元素,来定义父容器的高度或使用棘手的显示属性。
进一步参考:http://css-tricks.com/centering-percentage-widthheight-elements/
浏览器支持:http://caniuse.com/transforms2d(不在IE<=8
上运行)
答案 1 :(得分:1)
这应该有效:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<style>
body{
margin: 0; /* There is no margin, padding or border on html, only margin: 8px; on body... */
background-color: #FFFFFF; /* Why transparent? Changed to white... */
font-family: "Helvetica";
color: #359115;
font-weight: bold;
}
#wrapper {
position: relative;
width: 50%;
margin: auto;
text-align: center;
}
#container {
background-color: #dddddd;
margin: 0 auto;
text-align: center;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="container" align="center">
<span class="currency">$ </span><span class="integer">4,080,048.</span><span class="decimal">00</span>
</div>
</div>
</body>
</html>
如果你想让它在绝对中心x和y,你需要改变它的风格:
#wrapper {
position: relative;
width: 50%;
margin: auto;
text-align: center;
}
#container {
background-color: #dddddd;
margin: 0 auto;
text-align: center;
}
对此:
#wrapper {
position: relative;
width: 50%;
height: 50%;
margin: auto;
text-align: center;
}
#container {
background-color: #dddddd;
margin: auto;
text-align: center;
}
答案 2 :(得分:1)
我会这样做。对于 HTML ,请在您的内容周围添加.wrapper
容器:
<div id="container">
<div class="wrapper">
<span class="currency">₪</span><span class="integer">4,080.</span><span class="decimal">00</span>
</div>
</div>
假设您想要居中这是一个页面(视口),我会使用以下 CSS :
html, body {
margin: 0;
padding: 0;
border: 0;
height: 100%;
}
body {
background-color: transparent;
overflow: hidden;
font-family:"Helvetica";
color: #359115;
font-weight:bold;
}
#container {
display: table;
height: 100%;
width: 100%;
background-color: #dddddd;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
#container .wrapper {
display: table-cell;
height: 100%;
vertical-align: middle;
text-align: center;
}
如何运作
将table
的显示类型设置为#container
,并使用绝对定位使其延伸到视口的边缘。
将.wrapper
设置为显示类型table-cell
,将高度设置为100%,然后使用vertical-align: middle
获取垂直
居中,text-align: center
用于水平居中。
答案 3 :(得分:1)
display:table
是实现此目标的最简单方法。见这里:http://jsfiddle.net/bRgrf/4/
html,body{
margin: 0;
padding: 0;
border: 0;
height:100%;
width:100%;
}
body{
background-color: transparent;
overflow: hidden;
font-family: "Helvetica";
color: #359115;
font-weight:bold;
display:table;
}
#container {
background-color: #dddddd;
height: 100%;
width: 100%;
margin: 0;
text-align: center;
vertical-align:middle;
display:table-cell;
}