2015-09-15 2 views
1

Самый простой способ объяснить мою проблему является примером:CSS: настройка цвета фона на пролете вызывает предысторию неясного текста

<p style="line-height:1;"> 
<span style="background-color:yellow">ggggg<br>TTTT 
</span> 

или, если вы предпочитаете, https://jsfiddle.net/k17760zr/

вы можете видеть, что на первый план на «T» перекрывается нижняя часть «g», скрывающая текст. Однако, если вы удаляете подсветку, визуально нет помех между двумя линиями, и даже можно использовать мышь, чтобы выбрать T без затенения g, поэтому не кажется, что линии перекрываются.

Я понимаю, что могу обойти это, изменив высоту линии или установив цвет фона всего абзаца, но это не подходит в моих обстоятельствах. Есть ли способ сохранить высоту линии и по-прежнему выделять отдельные части в абзаце без выделения выделения, перекрывающего линию выше?

ответ

3

Используйте display: inline-block на <span>.

Demo

span { 
 
    display: inline-block; 
 
}
<p style="line-height:1;"> <span style="background-color:yellow">ggggg<br />TTTT 
 
    </span> 
 
</p>

+0

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

1

Вы можете увеличить высоту строки р.

<p style="line-height:1.2;"> 
    <span style="background-color:yellow">ggggg<br />TTTT</span> 
</p> 
+0

Как я уже сказал в оригинальном вопросе: «Я понимаю, что могу обойти это, изменив высоту линии или установив цвет фона всего абзаца, но это не подходит в моих обстоятельствах. " – Andy

Смежные вопросы