将 div and/or ul 在 css 中居中
centering a div and/or ul in css
我对 ul 有疑问。我可以把它居中,但现在我不能。
这是我的代码
.wrapper{
position: fixed;
top: 50%;
left:50%;
transform: translate(-50%, -50%);
padding: 50px 50px 50px 50px;
float: left;
}
.nav{
list-style-type: none;
display: inline-block;
}
ul li{
text-align:center;
float: left;
}
<div class="wrapper">
<ul class="nav">
<li><a href='#'><div class="wrap"><img src="img/13.jpg" alt="" width="200" height="200" class="w1"></div></a></li>
<li><a href='#'><div class="wrap"><img src="img/11.jpg" alt="" width="200" height="200" class="w2"></div></a></li>
<li><a href='#'><div class="wrap"><img src="img/12.jpg" alt="" width="200" height="200" class="w3"></div></a></li>
<li><a href='#'><div class="wrap"><img src="img/14.jpg" alt="" width="200" height="200" class="w4"></div></a></li>
</ul>
</div>
我尝试只使用 ul,但我决定使用包装器元素,但我仍然不知道该怎么做。
我想让它垂直和水平居中。
有时我们添加了太多 CSS 而迷路了。
使用包装器是正确的方向,只需使用 flexbox
将所有子项居中。
要垂直和水平居中,首先你需要有一个至少和屏幕视图大小一样大的容器,否则你的元素会因为容器太小而在页面顶部。所以使用:
min-width: 100vw;
min-height: 100vh;
当你有更多的项目时,宽度和高度会增加,但项目仍然会通过使用 flexbox
:
居中
display: flex;
align-items: center;
justify-content: center;
要在一行中列出所有 li
,请使用:
.nav>li {
float: left;
}
从 HTML body:
中删除默认填充边距
html,
body {
margin: 0;
padding: 0;
}
.wrapper {
display: flex;
align-items: center;
justify-content: center;
min-width: 100vw;
min-height: 100vh;
background: green;
}
.nav {
list-style-type: none;
background: red;
padding: 0;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
}
.nav>li {
float: left;
}
html,
body {
margin: 0;
padding: 0;
}
<div class="wrapper">
<ul class="nav">
<li>
<a href='#'>
<div class="wrap"><img src="img/13.jpg" alt="" width="200" height="200" class="w1"></div>
</a>
</li>
<li>
<a href='#'>
<div class="wrap"><img src="img/13.jpg" alt="" width="200" height="200" class="w1"></div>
</a>
</li>
<li>
<a href='#'>
<div class="wrap"><img src="img/13.jpg" alt="" width="200" height="200" class="w1"></div>
</a>
</li>
</ul>
</div>
或者,如果您想使用现有代码,只需将高度和宽度替换为 100px 而不是 200px。
如果您想将任何 div 居中,请使用我刚刚尝试创建一个简单登录页面的代码。
#divLogin
{
width: 450px;
border-radius: 5px;
font-size: 18px;
padding: 10px;
margin-top: 20%;
margin-left: auto;
margin-right: auto;
}
我对 ul 有疑问。我可以把它居中,但现在我不能。 这是我的代码
.wrapper{
position: fixed;
top: 50%;
left:50%;
transform: translate(-50%, -50%);
padding: 50px 50px 50px 50px;
float: left;
}
.nav{
list-style-type: none;
display: inline-block;
}
ul li{
text-align:center;
float: left;
}
<div class="wrapper">
<ul class="nav">
<li><a href='#'><div class="wrap"><img src="img/13.jpg" alt="" width="200" height="200" class="w1"></div></a></li>
<li><a href='#'><div class="wrap"><img src="img/11.jpg" alt="" width="200" height="200" class="w2"></div></a></li>
<li><a href='#'><div class="wrap"><img src="img/12.jpg" alt="" width="200" height="200" class="w3"></div></a></li>
<li><a href='#'><div class="wrap"><img src="img/14.jpg" alt="" width="200" height="200" class="w4"></div></a></li>
</ul>
</div>
我尝试只使用 ul,但我决定使用包装器元素,但我仍然不知道该怎么做。 我想让它垂直和水平居中。
有时我们添加了太多 CSS 而迷路了。
使用包装器是正确的方向,只需使用 flexbox
将所有子项居中。
要垂直和水平居中,首先你需要有一个至少和屏幕视图大小一样大的容器,否则你的元素会因为容器太小而在页面顶部。所以使用:
min-width: 100vw;
min-height: 100vh;
当你有更多的项目时,宽度和高度会增加,但项目仍然会通过使用 flexbox
:
display: flex;
align-items: center;
justify-content: center;
要在一行中列出所有 li
,请使用:
.nav>li {
float: left;
}
从 HTML body:
中删除默认填充边距html,
body {
margin: 0;
padding: 0;
}
.wrapper {
display: flex;
align-items: center;
justify-content: center;
min-width: 100vw;
min-height: 100vh;
background: green;
}
.nav {
list-style-type: none;
background: red;
padding: 0;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
}
.nav>li {
float: left;
}
html,
body {
margin: 0;
padding: 0;
}
<div class="wrapper">
<ul class="nav">
<li>
<a href='#'>
<div class="wrap"><img src="img/13.jpg" alt="" width="200" height="200" class="w1"></div>
</a>
</li>
<li>
<a href='#'>
<div class="wrap"><img src="img/13.jpg" alt="" width="200" height="200" class="w1"></div>
</a>
</li>
<li>
<a href='#'>
<div class="wrap"><img src="img/13.jpg" alt="" width="200" height="200" class="w1"></div>
</a>
</li>
</ul>
</div>
或者,如果您想使用现有代码,只需将高度和宽度替换为 100px 而不是 200px。
如果您想将任何 div 居中,请使用我刚刚尝试创建一个简单登录页面的代码。
#divLogin
{
width: 450px;
border-radius: 5px;
font-size: 18px;
padding: 10px;
margin-top: 20%;
margin-left: auto;
margin-right: auto;
}