Линия с эффектом градиента по обе стороны содержимого
by akogch
HTML
<!-- В нижеприведенном фрагменте тонкий градиент слева направо используется для создания эффекта линии, идущей от сплошного цвета рядом с содержимым до прозрачного с другой стороны. -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
<h3 class='heading'>Something broader</h3>
<h3 class='heading'>Something broader and broader</h3>
<h3 class='heading'>Something broader<br/> and spans multiple <br/> no. of lines</h3>
<!-- IE11 specific version -->
<h3 class='heading-ie'>
<span class='before'></span>
<!-- IE11 supports flex-grow only on actual elements -->
Something broader and broader and broader
<span class='after'></span>
<!-- IE11 supports flex-grow only on actual elements -->
</h3>
<div>Недостатком этого подхода является поддержка браузера для этой функции, которая на данный момент довольно низкая. Возможно, вам также придется принять некоторые настройки, специфичные для браузера, которые подробно описаны в моем ответе здесь, который аналогичен этому.</div>
CSS
h3 {
display: flex;
flex: 1;
width: 70%;
margin: 20px auto;
line-height: 1em;
}
.heading:before,
.heading:after,
.heading-ie span.after,
.heading-ie span.before {
content: '';
flex-grow: 1;
margin: 0px 4px;
background-size: 100% 2px;
background-position: 0% 50%;
background-repeat: repeat-x;
}
.heading:before,
.heading-ie span.before {
background-image: linear-gradient(to right, transparent, white);
}
.heading:after,
.heading-ie span.after {
background-image: linear-gradient(to left, transparent, white);
}
/* Just for demo*/
body {
background-image: radial-gradient(circle, #3F9CBA 0%, #153346 100%);
}