#html #css #text-alignment #text-decorations
Вопрос:
Я создаю простой веб-сайт портфолио HTML-CSS. Я изо всех сил пытаюсь найти способ стилизовать следующий текст так, как он показан на картинке.
Очень важно отметить, что я добился некоторых результатов, но проблема в том, что текст здесь не центрирован слева направо. Это скорее случайное выравнивание, и я не знаю, как этого достичь. А также, пожалуйста, имейте в виду, что этот текст будет использоваться таким образом, что он будет помещен перед изображением. Поэтому он должен быть создан как своего рода компонент, который я смогу легко повторно использовать/выровнять позже с изображением.
Есть какие-нибудь идеи о том, как достичь таких результатов?
Как вы можете видеть, мне удалось добавить текст в черный ящик. Но вторая строка выглядит не так, как в прототипе выше. Я не знаю, как этого добиться. Есть какие-нибудь идеи?
Это мой код:
HTML
/* Styles the header text "Hello, World!" putting it in a black box. */
.box {
width: 50rem;
margin: 0.2rem auto;
font-family: 'Inter', sans-serif;
font-weight: normal;
}
h1 {
color: white;
font-size: 2.5rem;
line-height: 3rem; /* reduce size to remove gap between text */
margin: 0px;
}
h1 span {
background-color: #2d2d2d;
padding-bottom: 0.8rem;
padding-left: 1.2rem;
padding-right: 1.2rem;
-webkit-box-shadow: 1rem 0px 0px #2d2d2d, -1rem 0px 0px #2d2d2d;
box-shadow: 1rem 0px 0px #2d2d2d, -1rem 0px 0px #2d2d2d;
-webkit-box-decoration-break: clone;
-ms-box-decoration-break: clone;
-o-box-decoration-break: clone;
box-decoration-break: clone;
}
<!-- Hello World Text that floats over the header picture -->
<div class="box">
<h1>
<span>Hello, <br> amp;emsp; World!</span>
</h1>
</div>
Заранее спасибо!
Комментарии:
1. Использовать два элемента вместо одного? В конце концов, это презентация, а не содержание.
2. В идеале элемент черного ящика будет 1 элементом, а затем текст в синем поле будет другим. Они должны плавать в зависимости от местоположения курсора. Я не хочу, чтобы «Привет, мир!» рассматривалось как два разных элемента, потому что при плавании оно может выглядеть не очень хорошо.
Ответ №1:
Отступ текста может помочь вам здесь вместо добавления пробела вручную:
h1 {
color: white;
font-size: 2.5rem;
line-height: 3rem;
text-indent: -30px;
margin:0;
margin-left: 46px;
}
h1 span {
background-color: #2d2d2d;
padding: 0 1.2rem 0.8rem;
-webkit-box-decoration-break: clone;
-ms-box-decoration-break: clone;
-o-box-decoration-break: clone;
box-decoration-break: clone;
}
<h1>
<span>Hello, <br> World!</span>
</h1>
Ответ №2:
Вы можете разделить слова на разные промежутки:
h1 span{
color: white;
font-size: 2.5rem;
line-height: 3rem;
background-color: #2d2d2d;
padding: 0 1rem;
}
.world{
margin-left: 2rem;
}
<h1>
<span class="hello">Hello,</span> <br>
<span class="world">World!</span>
</h1>