答案 0 :(得分:4)
为了实现所需的行为,请在包装器元素中使用属性position: relative
,并在子元素中使用position: absolute
。
然后使用top: 0
和right: 0
将子元素放在右上角。
最后一部分需要具有transform
属性的CSS3属性translate
。您可以在CSS3 2D Transforms
或transform | CSS-Tricks
中详细了解相关信息。
我们将在此处使用transform: translate(50%, -50%)
。第一个50%
表示该元素将自己的宽度向右移动一半,而第二个50%
表示该元素将在其自身高度的一半处脱臼。
如果您的徽章具有固定的宽度和/或高度,您可以跳过此部分,只需使用固定值。
body {
margin: 25px
}
.outter-badge {
position: relative;
margin: 10px;
}
.inner-badge {
position: absolute;
top: 0;
right: 0;
transform: translate(50%, -50%);
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css">
<div class="badge outter-badge">badge
<div class="badge inner-badge">1</div>
</div>
<div class="badge outter-badge">primary label
<div class="label label-primary inner-badge">1</div>
</div>
<div class="badge outter-badge">success label
<div class="label label-success inner-badge">1</div>
</div>
<div class="badge outter-badge">warning label
<div class="label label-warning inner-badge">1</div>
</div>
<div class="badge outter-badge">danger label
<div class="label label-danger inner-badge">1</div>
</div>
<div class="badge outter-badge">info label
<div class="label label-info inner-badge">1</div>
</div>