我试图创建一个十字标记和一个复选标记来对齐后面的文本。然而,虽然复选标记看起来对齐得很好,但十字标记却在右上方。有什么方法可以可靠地解决这个问题吗?我不确定调整边距和填充是否明智,因为一旦屏幕大小发生变化,它可能会损坏。
.list {
font-family: sans-serif;
margin: 1rem 0 1rem !important;
}
.checkmark {
transform: rotate(45deg);
height: 24px;
width: 12px;
border-bottom: 7px solid lightgreen;
border-right: 7px solid lightgreen;
}
.crossmark {
height: 24px;
width: 12px;
position:relative;
}
.crossmark::after{
position: absolute;
content: '';
width: 24px;
height: 0px;
border: solid orange;
border-width: 0 0px 7px 0;
transform: rotate(45deg);
top:0;
}
.crossmark::before{
position: absolute;
content: '';
width: 24px;
height: 0px;
border: solid orange;
border-width: 0 0px 7px 0;
transform: rotate(-45deg);
top:0;
}
.highlighted-err {
background-color: red;
color: white;
border-radius: 0.5rem;
padding: 0.5rem;
}
.highlighted-success {
background-color: darkgreen;
color: white;
border-radius: 0.5rem;
padding: 0.5rem;
}
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<div class="row list" id="type-msg">
</div><div class="row list highlighted-success" id="size-msg">
<div class="col-md-1">
<div class="checkmark"></div>
</div><div class="col-md-11">
<div>Bild-Dateien müssen 600 x 450 Pixel oder größer sein.</div>
</div>
</div><div class="row list highlighted-err" id="aspect-msg">
<div class="col-md-1">
<div class="crossmark"></div>
</div><div class="col-md-11">
<div>Bild-Dateien müssen eine Breite zu Höhe von 3:4 haben.</div>
</div>
</div>
2条答案
按热度按时间ljo96ir51#
在移除之前和之后交叉标记中
将2中的内容替换为
你正在旋转45度和-45度。将元素定位在中心(十字标记24 px,所以中心12 px),然后旋转。变换原点在元素的中心旋转。
2nbm6dog2#
使用
top: 0;
的绝对定位强制before和after元素位于父元素的顶部。通过将其切换为
top: 50%;
并将translate(0, -50%)
添加到每个转换,可以有效地将两个元素都置于父元素的中心。即使您开始更改固定宽度和高度的值,此操作也会起作用。