2016-06-15 7 views
1

Я хотел бы показать цитаты. Как в начале, так и в конце цитаты есть кавычка, отображаемая как фоновое изображение. Никогда не должно быть разрыва строки между стартовой кавычкой и первым словом цитаты, или между последним словом в цитате и кавычкой окончания. Для этого я попытался использовать white-space: nowrap;. Следующий фрагмент кода делает то, что я после:Предотвращение разрыва строки перед элементом встроенного блока

.quote { 
    width: 10px; 
    white-space: nowrap; 
    background: red; 
} 
.quote-text { 
    white-space: normal; 
} 
.quote-start, 
.quote-end { 
    display: inline-block; 
    width: 20px; 
    height: 20px; 
    background: blue; 
} 
<div class="quote"> 
    <span class="quote-start"></span> 
    <span class="quote-text">text that is wrapped over several lines</span> 
    <span>&#xfeff;</span> 
    <span class="quote-end"></span> 
</div> 

Вы можете проверить его в этом CodePen.

Но есть ли способ сделать это без уродливого <span>&#xfeff;</span>?

+0

Как элемент, который имеет ширину 20px должен вписываться в линии, которая имеет ширину 10px? – connexo

+0

Вам не нужно белое пространство: nowrap для всей цитаты. Это сделало бы вашу цитату непригодной. –

+0

@connexo: С узким, чтобы заставить сломать слова. Тогда легко проверить, что метки квотаций находятся на одной строке с первым и последним словом. –

ответ

1

Вы можете до и после псевдо элементов. Вы хотите этого? Проверьте код и ответ. http://codepen.io/SESN/pen/MeeaGp

.quote { 
    width: 10px; 
    white-space: nowrap; 
    background: red; 

} 
.quote:before, .quote:after { content: ""; position: relative; background: url(http://1axcbc2mo5e72fuf7p2ouonc.wpengine.netdna-cdn.com/wp-content/uploads/2012/01/left-quotation-marks.png) no-repeat; background-size: contain; padding: 0px 5px 0px 10px; 
} 

.quote:after { } 
.quote-text { 
    white-space: normal; 
} 
.quote-start, 
.quote-end { 
    display: inline-block; 
    width: 20px; 
    height: 20px; 
    background: blue; 
} 
+0

Хорошая идея. В вашей ручке у вас нет дисплея: блок в кавычках. Поэтому нельзя указывать ширину и высоту. Если дисплей: блок добавлен, кавычки не расположены в той же строке, что и первое и последнее слово. –

+0

Да, я удалил его из Pen. Что для вас актуально для вас? – SESN

+0

Я хотел бы использовать фоновое изображение для отображения кавычек, поэтому необходимо установить ширину и высоту контейнеров с меткой кавычек. –