[19/20] Испытание: псевдоэлементы, 100%

Прошу посмотреть код, буду рада критике и советам по оптимизации. Спасибо!

html,
    body {
        margin: 0;
        padding: 0;
        font-family: "Arial", sans-serif;
        line-height: 30px;
    }

    body {
        min-width: 550px;
        min-height: 290px;
        padding: 10px;
    }

    .two-cards {
        width: 350px;
        height: 250px;
        padding: 10px;
        text-align: center;
    }

    .two-cards div {
        position: relative;
        display: inline-block;
        width: 120px;
        height: 180px;
        margin: 0 10px;
        margin-top: 30px;
        vertical-align: middle;
        background-color: white;
        border-radius: 5px;
        box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.8);
        background-size: 50px auto;
    }
    .ace-heart {
        background: url(/assets/course57/heart.svg) no-repeat 50% 50%;
    }
    .two-spade {
        background: url(/assets/course57/spade.svg) no-repeat 50% 50%;
    }

    /* Ширина иконок, не изменяйте */
    .two-cards div::before,
    .two-cards div::after {
        width: 20px;
        position: absolute;
        font-weight: bold;
        font-size: 25px;
        background-size: 25px auto;
        padding-bottom: 20px;
    }

    .ace-heart::before,
    .ace-heart::after {
        content: "A";
        color: red;
        background: url(/assets/course57/heart.svg) no-repeat 50% 100%;
    }

    .ace-heart::before,
    .two-spade::before{
        left: 5px;
        top: 5px;
    }
    .ace-heart::after,
    .two-spade::after{
         right: 5px;
        bottom: 5px;
    }

    .two-spade::before,
    .two-spade::after {
        content: "2";
        color: black;
        background: url(/assets/course57/spade.svg) no-repeat 50% 100%;
    }

    /* Поворот нижней иконки */
    .two-cards div::after {
        transform: rotate(180deg);
    }

Как бы вы могли прокомментировать код другого пользователя, (19/20) Оцените, пожалуйста, код (100%) ?

Мне кажется чтобы сократить код можно было сгруппировать повторяющиеся свойства, нр, свойство position, padding-bottom вывести в
.two-cards .ace-heart::before,
.two-cards .ace-heart::after {

.two-cards .ace-heart::before,
.two-cards .ace-heart::after {
content: "A";
color: red;
font-size: 25px;
font-weight: bold;
background: url("/assets/course57/heart.svg") no-repeat 50% 100%;
background-size: 25px auto;

}

.two-cards .ace-heart::before {
position: absolute;
padding-bottom: 20px;
left: 5px;
top: 5px; 
}

.two-cards .ace-heart::after {
position: absolute;
padding-bottom: 20px;
right: 5px;
bottom: 5px;

}
1 Симпатия

Вопросов и замечаний по вашему варианту у меня нет. Всё грамотно и с осознанием дела.

Объясните пожалуйста какая логика у добавления свойства

padding-bottom: 20px;

Я вижу что без него картинка схлопывается (как раз искала решение этой проблемы), но я не понимаю почему так?

сердечко добавляется к буковке, чтобы полностью было видно отодвигаем нижнюю границу буковки. эээ. поправьте меня)))

html,
body {
margin: 0;
padding: 0;
font-family: “Arial”, sans-serif;
line-height: 30px;
}

body {
min-width: 550px;
min-height: 290px;
padding: 10px;
}

.two-cards {
width: 350px;
height: 250px;
padding: 10px;
text-align: center;
}

.two-cards div {
position: relative;
display: inline-block;
width: 120px;
height: 180px;
margin: 0 10px;
margin-top: 30px;
vertical-align: middle;
background-color: white;
border-radius: 5px;
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.8);
}

/* Ширина иконок, не изменяйте */
.two-cards div::before,
.two-cards div::after {
width: 20px;
}

.ace-heart {
background: url(heart.svg) no-repeat 50% 50%;
background-size: 50px auto;
color: red;
font-size: 25px;
font-weight: bold;

}

.ace-heart::before {
content: “A”;
position: absolute;
left: 5px;
top:5px;
background: url(heart.svg) no-repeat 50% 100%;
background-size: 25px auto;
padding-bottom: 20px;
}

.ace-heart::after {
content: “A”;
position: absolute;
right: 5px;
bottom: 5px;
background: url(heart.svg) no-repeat 50% 100%;
background-size: 25px;
padding-bottom: 20px;
transform: rotate(180deg);
}

.two-spade {
background: url(spade.svg) no-repeat 50% 50%;
background-size: 50px auto;
color: black;
font-size: 25px;
font-weight: bold;
}
.two-spade::before {
content: “2”;
position: absolute;
left: 5px;
top: 5px;
background: url(spade.svg) no-repeat 50% 100%;
padding-bottom: 20px;
background-size: 25px;
}
.two-spade::after {
content: “2”;
position: absolute;
right: 5px;
bottom: 5px;
background: url(spade.svg) no-repeat 50% 84%;
background-size: 25px;
transform: rotate(180deg);
padding-bottom: 25px;

}