【发布时间】:2017-01-16 23:59:28
【问题描述】:
我正在尝试制作一个简单的游戏,但遇到了一些我似乎无法解决的问题:
我无法居中垂直浮动元素(
.stat和.clickable)。所有元素的总高度应该完全符合屏幕高度,但它会超出它。
图像的宽度会有所不同,具体取决于我给它们的值(在我的屏幕上,它们在 32% 或 29% 时看起来相同,但在 30% 时,上方的图像稍微宽一些(而且有点模糊)边框)。
img 元素的高度属性无效。
这是我的代码(图片为 450 像素宽的正方形):
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
background-color: #e6e6e6;
}
.statsBar,
.buttons {
color: #333333;
font-family: Impact, Charcoal, sans-serif;
text-transform: uppercase;
background-color: #bfbfbf;
height: 13%;
}
#score {
float: left;
margin-left: 5%;
}
#hp {
float: right;
margin-right: 5%;
}
.stats:after {
content: "";
display: block;
clear: both;
}
.clickable {
float: left;
width: 29.33%;
margin: 1%;
padding: 1%;
background: #f2f2f2;
}
.game {
width: 50%;
height: 100%;
text-align: center;
margin: auto;
background-color: #999999;
}
img {
width: 32%;
display: block;
margin: auto;
}
#enemyHand {
transform: rotate(180deg);
margin-top: 5%;
}
#playerHand {
margin-bottom: 5%;
}
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src='game.js'></script>
</head>
<body>
<div class="game">
<div class="statsBar">
<p id="score" class="stat">score: 0</p>
<p id="hp" class="stat">hp: 3</p>
</div>
<div class="hands">
<img id="enemyHand" src="paper.png">
<img id="playerHand" src="scissors.png">
</div>
<div class="buttons">
<a id="paper" class="clickable" onclick="document.getElementById('playerHand').src='paper.png'">Paper</a>
<a id="rock" class="clickable" onclick="document.getElementById('playerHand').src='rock.png'">Rock</a>
<a id="scissors" class="clickable" onclick="document.getElementById('playerHand').src='scissors.png'">Scissors</a>
</div>
</div>
</body>
</html>
【问题讨论】:
-
浮动和居中是相互排斥的。如果要将元素居中,请使用 display:inline(-block) 而不是浮动来使它们“在同一行”。
标签: html css responsive-design