Это прыгает от начала feeela, но это достаточно отличается, чтобы гарантировать свой собственный ответ.
Вместо чрезмерного наложения цветного блока он добавляет только красные элементы, позволяя фону просвечивать. ОДНАКО, чтобы правильно рассчитать (чтобы они были квадратными углами!) Мне пришлось установить фиксированную ширину высоту. Вероятно, есть какой-то дурацкий способ сделать это с процентами, но для доказательства концепции это было слишком сложно для размышлений. Так как требование для фиксированной высоты переменной ширины, это должно работать.
Псевдоэлементы должны иметь содержимое, иначе они будут «разрушаться». Содержимое может быть пустым, но это свойство необходимо установить.
CSS:
/* main button block */
.button {
display:inline-block;
background: #f00;
position: relative;
line-height: 60px;
text-align: center;
padding: 0 20px;
height: 60px;
margin-left: 0.5em;
}
/* common background color to all */
.button, .button::before, .button::after {
background-color: #f00;
}
/* shared styles to make left and right lines */
.button::before, .button::after {
content: "";
position: absolute;
height: 50px;
width: 5px;
top: 5px;
}
/* pull the left 'line' out to the left */
.button::before {
left: -5px;
}
/* pull the right 'line' out to the right */
.button::after {
right: -5px;
}
1018 *
Скрипка: http://jsfiddle.net/3R9c5/2/