CSS несколько пробелов внутри элемента span - PullRequest
2 голосов
/ 15 февраля 2012

У меня есть страница, на которой я пытаюсь отобразить полное имя (firstName lastName) в браузере.

В моем JSP у меня есть

<span>
    <c:if test="${someCondition1}">
        <c:out value="${firstName}">
    </c:if>
    <c:if test="${someCondition2}">
        <c:out value="${lastName}">
    </c:if>
</span>

Теперь внутри элемента span есть несколько отступов кода. Проблема в том, что в Firefox кодовые пространства не сворачиваются, а IE сворачивает их.

Также я попытался использовать различные свойства пробелов CSS: normal, wrap, -moz-pre-wrap и т. Д.

Но, похоже, по какой-то причине это не работает.

Также я не смогу использовать свойство пробела, чтобы исправить это, поскольку у меня также может быть несколько пробелов в пределах firstName / lastName, которые должны отображаться в том виде, как они есть, например. Имя может быть

"my    First   Name"

Таким образом, использование пробела CSS в элементе span для свертывания нескольких пробелов было бы неправильным.

Ответы [ 3 ]

2 голосов
/ 15 февраля 2012

Вы можете заменить свои пробелы на &nbsp;

firstName = firstName.replace(" ", "&nbsp;");

При этом вам больше не понадобится ваш CSS white-space.

0 голосов
/ 16 февраля 2012

Попробуйте это,

<span><c:out value="${someCondition1?firstName:''} ${someCondition2?lastName:''}"/></span>

все в одной строке.

0 голосов
/ 15 февраля 2012

Firefox должен разрушать пробелы, но если нет, попробуйте white-space-collapse: collapse;.Это свойство CSS3, которое явно задает желаемое поведение.

РЕДАКТИРОВАТЬ: Подождите, я в замешательстве.В каком сценарии было бы разумно использовать более 1 пробела между частями имени?Я не знаю ни одного человеческого языка, где это приемлемо.Это какой-то инопланетный язык?

...