[英]Vertically aligning elements in parent div
I am having an issue with elements not vertically aligning in the middle of it's parent div. 我遇到一个问题,即元素的父div中间未垂直对齐。
CSS: CSS:
/* Main body structure */
body{
font-size:0.5em;
}
.main-wrapper {
width: 90%;
margin: auto;
background-color: #efefef;
}
* {
box-sizing: border-box;
}
/* Main header/logo/navigation structure */
.main-header {
padding: 20px;
background-color: #003;
display:table;
width: 100%;
min-height: 150px;
}
.main-logo,
.main-nav,
.main-nav li {
display: inline-block;
}
.main-logo,
.main-nav, {
display: table-cell;
vertical-align: middle;
}
.main-logo,
.main-nav li {
padding: 10px 20px;
border-radiues: 5px;
background-color:#3CC;
}
.main-nav li {
margin-right: 10px;
display:inline-block;
}
.main-logo {
background-color:#3F6;
}
.main-nav {
padding: 10px;
}
.main-logo a,
.main-nav a {
color: #FFF;
text-decoration:none;
display:block;
text-align:center;
padding: 10px 20px;
}
@media ( max-width: 768px) {
.maing-logo,
.main-nav,
.main-nav li {
display:block;
width: initial;
margin: initial;
}
.main-nav {
padding-left: initial;
}
.main-nav li {
margin-top: initial;
}
HTML: HTML:
<div class="main-wrapper">
<header class="main-header">
<h1 class="main-logo"><a href="#">logo</a></h1>
<div class="main-nav">
<ul class="main-nav">
<li><a href="#">HOME</a></li>
<li><a href="#">SEARCH</a></li>
<li><a href="#">MESSAGES</a></li>
<li><a href=logout.php>LOGOUT</a></li>
</ul>
</header>
</div>
So the issue being that if I alter the min-height of the main-header class the elements stay in the same place and do not automatically adjust but my code looks like it should be automatically middle aligning the elements? 因此,问题在于,如果我更改main-header类的最小高度,元素将保持在同一位置,并且不会自动调整,但是我的代码看起来应该是在元素中间自动对齐?
if you use display:table;
如果使用
display:table;
, you should use height
and not min-height
. ,则应使用
height
而不是min-height
。 Behavior of this display rule will do that the element will expand to fit its content anyway. 此显示规则的行为将使元素无论如何都会扩展以适合其内容。
You have an extra ,
, that kills you rule . 你有一个额外的
,
这会杀死你的统治。
correct is : 正确的是:
.main-header {
padding: 20px;
background-color: #003;
display:table;
width: 100%;
/*min-*/height: 150px;
}
.main-logo,
.main-nav,
.main-nav li {
display: inline-block;
}
.main-logo,
.main-nav/* , */ {
display: table-cell;
vertical-align: middle;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.