我在调整放置在div中的<label>
时遇到问题。
这是我的HTML:
<div class="one-whole index-border">
<div class="score red score--primary">
<label>20</label>
</div>
</div>
这是我的CSS:
.one-whole {
100%;
}
.index-border {
border-bottom: 2px solid #D2D2D2;
}
.score {
border: none;
display: inline-block;
/* margin: 0; */
line-height: 1;
width: 120px;
height: 100px;
text-align: center;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
-ms-border-radius: 6px;
-o-border-radius: 6px;
border-radius: 6px;
-webkit-box-shadow: 0 0 4px rgba(51, 51, 51, 0.125);
-moz-box-shadow: 0 0 4px rgba(51, 51, 51, 0.125);
box-shadow: 0 0 4px rgba(51, 51, 51, 0.125);
color: white;
margin-bottom: 15px;
vertical-align: middle;
}
.red {
background: #CC0000;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #FF3400), color-stop(100%, #CC0000));
background-image: -webkit-linear-gradient(#FF3400, #CC0000);
background-image: -moz-linear-gradient(#FF3400, #CC0000);
background-image: -o-linear-gradient(#FF3400, #CC0000);
background-image: linear-gradient(#FF3400, #CC0000);
}
.score--primary {
border: 1px solid #CC0000;
font-size: 30px;
font-weight: bold;
}
我认为使用vertical-align: middle
会有效,但没有运气。
这是一个小提琴:http://jsfiddle.net/oampz/aH86E/
如果有任何方法可以重构我的代码,那会有所帮助。
由于
答案 0 :(得分:4)
如果您不想使用table-cell
,则可以随时将line-height
设置为父级。老实说,在我知道容器的高度可能会发生变化的情况下,我更喜欢使用台式电池。
它将允许内容始终居中,使用此方法,您必须更改line-height
以匹配容器的高度。
.score{
line-height: 100px;
}
答案 1 :(得分:3)
您需要display: table-cell;
而不是 display: inline-block;
.score {
/* Other properties */
display: table-cell;
}
对于代码的重构,您可以安全地删除box-shadow
,box-radius
以及渐变代码的专有属性,现在依赖于您,直到您想要支持的级别旧版浏览器。
重构CSS
.one-whole {
100%;
}
.index-border {
border-bottom: 2px solid #D2D2D2;
}
.score {
border: none;
display: table-cell;
/* margin: 0; */
line-height: 1;
width: 120px;
height: 100px;
text-align: center;
border-radius: 6px;
box-shadow: 0 0 4px rgba(51, 51, 51, 0.125);
color: white;
margin-bottom: 15px;
vertical-align: middle;
}
.red {
background-image: linear-gradient(#FF3400, #CC0000);
}
.score--primary {
border: 1px solid #CC0000;
font-size: 30px;
font-weight: bold;
}
另外,我刚刚看到你正在使用rgba()
所以最好也为此声明一个后退,所以请使用,
.score {
/* Other properties */
box-shadow: 0 0 4px #333; /*Equivalent to rgb(51,51,51) */
box-shadow: 0 0 4px rgba(51, 51, 51, 0.125);
}