HTML CSS ul 和 li 在 div
HTML CSS ul and li in a div
我有以下 HTML 代码:
<div class="playerInfo">
<ul>
<li id="playerTeam">
team
</li>
<li id="player">
player
</li>
</ul>
</div>
我有以下 CSS 相同的样式:
.playerInfo{
width: 60%;
height: 30%;
margin: auto;
background-color: #888;
}
.playerInfo ul{
margin: 0;
padding: 0;
list-style: none;
text-align: center;
}
.playerInfo li{
display: inline-block;
width: 30%;
height: 80%;
vertical-align: middle;
background-color: #555;
}
我想让li块垂直居中,但是vertical-align: middle不行,li元素从顶部开始!另外,我希望这些 li 块之间有一个间隙,以便它们居中对齐,但彼此之间有一个间隙。我该怎么做?
use padding instead of giving specific height for li as shown below
<div class="playerInfo">
<ul>
<li id="playerTeam">
team
</li>
<li id="player">
player
</li>
</ul>
</div>
<style>
.playerInfo{
width: 60%;
height: 30%;
margin: auto;
background-color: #888;
}
.playerInfo ul{
margin: 0;
padding: 0;
list-style: none;
text-align: center;
}
.playerInfo li{
background-color: #555;
display: inline-block;
padding: 11% 0;
vertical-align: middle;
width: 30%;
}
</style>
hope it helps
抱歉,看错问题了。正确答案是:
<div class="playerInfo">
<ul>
<li id="playerTeam">
<span>team</span>
</li>
<li id="player">
<span>player</span>
</li>
</ul>
</div>
.playerInfo{
width: 60%;
height: 200px;
margin: auto;
background-color: #888;
position: relative;
}
.playerInfo ul{
margin: 0;
padding: 0;
list-style: none;
text-align: center;
height: 100%;
}
.playerInfo li{
display: inline-block;
width: 30%;
height: 80%;
background-color: #555;
position: relative;
top: 50%;
transform: translate(0, -50%);
}
这就是在 li
元素中居中文本的方法。
如果您可以修改您的 DOM,则将文本换行在 span:
<div class="playerInfo">
<ul>
<li id="playerTeam">
<span>team</span>
</li>
<li id="player">
<span>player</span>
</li>
</ul>
</div>
并修改样式表:
.playerInfo{
width: 60%;
height: 30%;
margin: auto;
background-color: #888;
}
.playerInfo ul{
margin: 0;
padding: 0;
list-style: none;
text-align: center;
}
.playerInfo li{
display: inline-block;
width: 30%;
height: 80%;
background-color: #555;
position: relative;
}
.playerInfo li span{
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
我有以下 HTML 代码:
<div class="playerInfo">
<ul>
<li id="playerTeam">
team
</li>
<li id="player">
player
</li>
</ul>
</div>
我有以下 CSS 相同的样式:
.playerInfo{
width: 60%;
height: 30%;
margin: auto;
background-color: #888;
}
.playerInfo ul{
margin: 0;
padding: 0;
list-style: none;
text-align: center;
}
.playerInfo li{
display: inline-block;
width: 30%;
height: 80%;
vertical-align: middle;
background-color: #555;
}
我想让li块垂直居中,但是vertical-align: middle不行,li元素从顶部开始!另外,我希望这些 li 块之间有一个间隙,以便它们居中对齐,但彼此之间有一个间隙。我该怎么做?
use padding instead of giving specific height for li as shown below
<div class="playerInfo">
<ul>
<li id="playerTeam">
team
</li>
<li id="player">
player
</li>
</ul>
</div>
<style>
.playerInfo{
width: 60%;
height: 30%;
margin: auto;
background-color: #888;
}
.playerInfo ul{
margin: 0;
padding: 0;
list-style: none;
text-align: center;
}
.playerInfo li{
background-color: #555;
display: inline-block;
padding: 11% 0;
vertical-align: middle;
width: 30%;
}
</style>
hope it helps
抱歉,看错问题了。正确答案是:
<div class="playerInfo">
<ul>
<li id="playerTeam">
<span>team</span>
</li>
<li id="player">
<span>player</span>
</li>
</ul>
</div>
.playerInfo{
width: 60%;
height: 200px;
margin: auto;
background-color: #888;
position: relative;
}
.playerInfo ul{
margin: 0;
padding: 0;
list-style: none;
text-align: center;
height: 100%;
}
.playerInfo li{
display: inline-block;
width: 30%;
height: 80%;
background-color: #555;
position: relative;
top: 50%;
transform: translate(0, -50%);
}
这就是在 li
元素中居中文本的方法。
如果您可以修改您的 DOM,则将文本换行在 span:
<div class="playerInfo">
<ul>
<li id="playerTeam">
<span>team</span>
</li>
<li id="player">
<span>player</span>
</li>
</ul>
</div>
并修改样式表:
.playerInfo{
width: 60%;
height: 30%;
margin: auto;
background-color: #888;
}
.playerInfo ul{
margin: 0;
padding: 0;
list-style: none;
text-align: center;
}
.playerInfo li{
display: inline-block;
width: 30%;
height: 80%;
background-color: #555;
position: relative;
}
.playerInfo li span{
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}