【发布时间】:2015-04-05 09:26:13
【问题描述】:
我正在尝试将我的 div 元素 (PureCSS) 居中以构建这样的网格(100% 宽度和高度,无滚动条):
现在我需要将所有元素垂直和水平居中对齐。
这是我的 HTML 代码:
<div class="pure-g" style="height:100%;">
<div class="pure-u-1-5" style="height:90%;">
<div class="pure-g" style="height:50%;">
<div class="pure-u-1-1 visible"><img src="img/logo.png" alt="Logo" style="width:100%;"></div>
<div class="pure-u-1-1 visible"><img src="img/ad.png" alt="AD" style="width:100%;"></div>
</div>
</div>
<div class="pure-u-4-5" style="height:90%;">
<div class="pure-g" style="height:100%;">
<div class="pure-u-1-1" style="height:20%;">
<div class="pure-g" style="height:100%;">
<div class="pure-u-1-6 news"><p>PIC</p></div>
<div class="pure-u-1-3 news"><p>TITLE</p></div>
<div class="pure-u-5-12 news"><p>DESCRIPTION</p></div>
<div class="pure-u-1-12 news"><p>ID</p></div>
</div>
</div>
<div class="pure-u-1-1" style="height:20%;">
<div class="pure-g" style="height:100%;">
<div class="pure-u-1-6 news"><p>PIC</p></div>
<div class="pure-u-1-3 news"><p>TITLE</p></div>
<div class="pure-u-5-12 news"><p>DESCRIPTION</p></div>
<div class="pure-u-1-12 news"><p>ID</p></div>
</div>
</div>
<div class="pure-u-1-1" style="height:20%;">
<div class="pure-g" style="height:100%;">
<div class="pure-u-1-6 news"><p>PIC</p></div>
<div class="pure-u-1-3 news"><p>TITLE</p></div>
<div class="pure-u-5-12 news"><p>DESCRIPTION</p></div>
<div class="pure-u-1-12 news"><p>ID</p></div>
</div>
</div>
<div class="pure-u-1-1" style="height:20%;">
<div class="pure-g" style="height:100%;">
<div class="pure-u-1-6 news"><p>PIC</p></div>
<div class="pure-u-1-3 news"><p>TITLE</p></div>
<div class="pure-u-5-12 news"><p>DESCRIPTION</p></div>
<div class="pure-u-1-12 news"><p>ID</p></div>
</div>
</div>
<div class="pure-u-1-1" style="height:20%;">
<div class="pure-g" style="height:100%;">
<div class="pure-u-1-6 news"><p>PIC</p></div>
<div class="pure-u-1-3 news"><p>TITLE</p></div>
<div class="pure-u-5-12 news"><p>DESCRIPTION</p></div>
<div class="pure-u-1-12 news"><p>ID</p></div>
</div>
</div>
</div>
</div>
<div class="pure-u-1-1 marquee">NEWSTICKER (jQuery marquee)</div>
</div>
这是我的 CSS:
*{font-family:'Raleway', sans-serif;}
h1, h2, h3, p {color:#fff;}
body, html {
overflow:hidden;
height: 100%;
padding:0px;
}
div {
/*
border:1px solid;
margin:-1px;
*/
}
.news {
height:100%;
position:relative;
background:#444; background:rgba(0,0,0,.5);
margin:0px 0px 0px 0px;
border-radius:0px;
margin-bottom:0px;
}
.visible {
height:100%;
position:relative;
background:#444; background:rgba(0,0,0,.5);
margin:0px 0px 0px 0px;
border-radius:0px;
margin-bottom:0px;
}
.news p {
text-align: center;
vertical-align: middle;
margin:15px;
height:100%;
}
.marquee {
height:100%;
position:relative;
background:#444; background:rgba(0,0,0,.5);
margin:0px 0px 0px 0px;
padding:0px;
border-radius:0px;
margin-bottom:0px;
font-family:'Raleway', sans-serif;
color:#fff;
}
结果是这样的:
我阅读了一些关于这个问题的线程,但它们似乎都不适合我让 div 元素垂直居中。 如果你们中的任何人发现一些代码改进,我也会很高兴,因为这是我第一次构建这样的网格。
提前致谢
【问题讨论】:
-
您的
.news p与height:100%的父级相比具有100% 的高度。使用PX 高度并将行高指定为相同。 -
嗨@Pogrindis 谢谢,你是对的。但是更改它并不能解决我原来的问题,这些项目仍然位于顶部。高度必须以百分比为单位(右侧:90%,内部 5x20%)以使其尽可能响应
-
pureCSS 不是已经响应内置定义了吗?
-
对于宽度是,但不是高度。页面必须垂直和水平填充屏幕,没有滚动条
-
这是一项危险的任务。很难保证你永远不需要滚动条!