2013-01-22 2 views
28

Я использую HTML код следующим образом, чтобы показать бутстрапом поповерBootstrap поповер скрывает разрывы строк

<a data-original-title="" data-content="Hi, 
      Welcome ! 

      Sincerely, 
      programmer 
      " 
    data-placement="bottom"> 
    content 
</a> 

И я инициализирован поповер следующим

$(this).popover({ 
      html:true 
     }); 

Все работает нормально, но проблема заключается в контент, доступный в содержимом данных, не отображаемом с пробелами .... Он удаляет все новые строки и показывает их в одной строке .... Как я могу это преодолеть ....

+1

Как уже упоминалось Арун, вы должны будете использовать HTML в атрибут данных. Если вам нужно использовать атрибуты внутри атрибутов, просто используйте одинарные кавычки. – isherwood

ответ

45

Вам необходимо использовать <br /> для новой строки в html или используйте знак <pre>

+57

Это не работает без 'data-html =" true "' – daVe

+0

Огромное вам спасибо:) – mohammad

21

Вы можете использовать white-space: pre-wrap; для сохранения разрывов строк в форматировании. Нет необходимости вручную вставлять элементы html.

.popover { 
    white-space: pre-wrap;  
} 
+0

Это великолепно и нужно больше upvotes. Я не знал о опции «pre-wrap». – mcNux

+0

Это также сохраняет несколько смежных пространств в тексте. 'white-space: pre-line' сохраняет только разрывы строк. – qbert220

24

Для добавления к раствору Arun P Johny в, если вы обнаружите, что ваши <br /> тегов в значении data-content оказывают как простой текст в содержании поповера на странице, добавьте дополнительный атрибут data-html="true", например, так:

<a data-content="Hi,<br />Welcome !<br /><br />Sincerely,<br />programmer" 
     data-html="true" 
     data-placement="bottom"> 
    content 
</a> 

Помните, что использование data-html="true" действительно создает потенциальную уязвимость к XSS attacks; не используйте его с неаналитированным вводом пользователя.

Docs: https://getbootstrap.com/docs/3.3/javascript/#popovers-options

5

мне удалось получить эту работу, добавив \ п к моему поповер текста, где я хочу, чтобы линии ломаются и добавить следующее к моей таблице стилей:

.popover { 
    white-space: pre-line;  
} 

Благодарность за помогите, всем!

1

Нам удалось использовать стилизацию белого пространства: pre-wrap, за исключением того, что мы обнаружили, что добавили лишние пробелы во всплывающее окно. Вместо этого мы добавили этот стиль в контент-контент.

.popover-content { 
    white-space: pre-wrap; 
} 
+0

Да, это правильный ответ! Благодаря! – EstebanGarciaAlonso

1

Вам просто нужно добавить данных HTML = «истина» в теге, то все ваши HTML-теги внутри текста справки работают отлично,