2013-02-13 2 views
8

На моем веб-сайте я использую значки шрифтов для определенных типов ссылок. Эти значки добавляются через :before синтаксис CSS.Как избежать разрывов строк после «: before» в CSS

a.some-link:before { 
    font-family: icons; 
    display: inline-block; 
    padding-right: 0.3em; 
    content: 'x'; 
} 

Однако, когда эта ссылка находится в начале строки, она иногда отделяется от иконы:

Separated icon from link

Я попытался добавления white-space: nowrap правилу CSS выше, но это не Помогите.

Как сохранить значок и текст вместе? (CSS 3 это нормально)

Примечание: Я не хочу, чтобы отформатировать ссылку весь с white-space: nowrap.

ответ

8

Просто удаление display:inline-block;, кажется, решить эту проблему:

a.some-link:before { 
    font-family: icons; 
    padding-right: 0.3em; 
    content: 'x'; 
} 

JSFiddle.

К сожалению, для отображения SVG вам понадобится «display: inline-block». Простым решением является установка «display: inline-block» на «a». Это приведет к тому, что ваш SVG будет правильно отображаться, и он сохранит ваши: и раньше, и а вместе в одной строке.

2

Это гораздо лучше, чтобы добавить nowrap правило :before CSS:

white-space: nowrap; 

UPD: http://jsfiddle.net/MMbKK/5/

Причина nowrap правила является для правильной работы с содержанием изображения в :before. Текстовому контенту не требуется это правило, чтобы оставаться рядом с основным элементом.

+3

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

+0

ОП указывает, что они не ищут решение 'nowrap'. – indivisible

+0

Ужасно, я новичок в этом сообществе и раньше не видел уведомления. 'nowrap' внутри': before' CSS правило работало в моем случае. Возможно, это было только в моем главном браузере. 'a.tooltipWord: before { content: url ('..../quest_min.gif'); white-space: nowrap; } ' О, я не был достаточно ясен, я вижу это сейчас. Дело в том, чтобы изменить правило 'inline-block' на' nowrap', а не добавлять их. – ornic