Способ решить эту проблему, не зная ширину и цвет фона, следующий:
Структура
<div class="strike">
<span>Kringle</span>
</div>
CSS
.strike {
display: block;
text-align: center;
overflow: hidden;
white-space: nowrap;
}
.strike > span {
position: relative;
display: inline-block;
}
.strike > span:before,
.strike > span:after {
content: "";
position: absolute;
top: 50%;
width: 9999px;
height: 1px;
background: red;
}
.strike > span:before {
right: 100%;
margin-right: 15px;
}
.strike > span:after {
left: 100%;
margin-left: 15px;
}
Пример: http://jsfiddle.net/z8Hnz/
Двойная линия
Чтобы создать двойную строку, используйте один из следующих параметров:
1) Исправлено расстояние между строками
.strike > span:before,
.strike > span:after {
content: "";
position: absolute;
top: 50%;
width: 9999px;
border-top: 4px double red;
Пример: http://jsfiddle.net/z8Hnz/103/
2) Пользовательский интервал между строками
.strike > span:before,
.strike > span:after {
content: "";
position: absolute;
top: 50%;
width: 9999px;
height: 5px; /* space between lines */
margin-top: -2px; /* adjust vertical align */
border-top: 1px solid red;
border-bottom: 1px solid red;
}
Пример: http://jsfiddle.net/z8Hnz/105/
SASS (SCSS) версия
Основываясь на этом решении, я добавил SCSS "со свойством цвета", если это может кому-нибудь помочь ...
//mixins.scss
@mixin bg-strike($color) {
display: block;
text-align: center;
overflow: hidden;
white-space: nowrap;
> span {
position: relative;
display: inline-block;
&:before,
&:after {
content: "";
position: absolute;
top: 50%;
width: 9999px;
height: 1px;
background: $color;
}
&:before {
right: 100%;
margin-right: 15px;
}
&:after {
left: 100%;
margin-left: 15px;
}
}
}
пример использования:
//content.scss
h2 {
@include bg-strike($col1);
color: $col1;
}