Я адаптировал пример для заголовка со строками на стороне (здесь, точнее: здесь). Он работает очень хорошо, но то, что я не могу сделать, это применить некоторые дополнения к любой стороне текста и иметь линии на стороне, чтобы обнять обе стороны контейнера. Кто-нибудь знает как это сделать?
Пока у меня есть следующий HTML:
<h2 class="section-heading">Example</h2>
и CSS:
.section-heading {
display: table;
white-space: nowrap;
}
.section-heading:before,
.section-heading:after {
background: linear-gradient(to bottom, black, black) no-repeat center / 90% 1px;
content: "";
display: table-cell;
width: 50%;
}
(Я положил его на jsfiddle, желательно, я хотел бы сделать это без каких-либо дополнительных элементов)
Хорошо, я смог сделать это без каких-либо дополнительных <span>
или <div>
, разделив псевдоэлементы и выравнивая их фоны слева и справа соответственно. Затем я могу настроить прописку по ширине фона, как показано на рисунке (например, имеет 5% отступов с обеих сторон):
.section-heading {
display: table;
white-space: nowrap;
}
.section-heading:before {
background: linear-gradient(to bottom, black, black) no-repeat left center / 95% 1px;
content: "";
display: table-cell;
width: 50%;
}
.section-heading:after {
background: linear-gradient(to bottom, black, black) no-repeat right center / 95% 1px;
content: "";
display: table-cell;
width: 50%;
}
демо, спасибо всем за помощь!
Добавить позицию: relative; top: 0.6em; к вашим псевдо-классам css.
здесь мое решение, добавьте <span></span>
внутри вашего элемента h2, а затем добавьте отступы /margin в h2 span {}
Как это демо?
Затем просто добавьте border-spacing
вашим section-heading
Возможно, вам придется иметь внутреннюю оболочку, обрабатывающую прописку так:
HTML:
<h2 class="section-heading"><div class="section-heading-padding">Example</div></h2>
CSS:
.section-heading {
display: table;
white-space: nowrap;
}
.section-heading-padding {
padding: 0 200px;
}
.section-heading:before,
.section-heading:after {
background: linear-gradient(to bottom, black, black) no-repeat center / 100% 1px;
content: "";
display: table-cell;
width: 50%;
}
Я не думаю, что это идеальный вариант. Надеюсь, кто-то может предоставить вам лучшее решение.
EDIT: Я обновил это, чтобы линии обнимали стороны.
Причина, по которой линии не обнимали стороны, состоит в том, что их ширина была установлена на 90%
. Я предполагаю, что это было потому, что он добавил прокладку вокруг текста; однако нежелательный побочный эффект заключался в том, что он также добавил прокладку вокруг внешних краев. Устанавливая их на 100%
ширины, а затем внутренняя прокладка, обрабатывающая отступы вокруг текста, кажется, дает желаемые результаты.