Можно ли нацелить <br/>
тег разрыва строки с помощью CSS?
Я хотел бы иметь пунктирную линию 1px каждый раз, когда есть разрыв строки. Я настраиваю сайт со своим собственным CSS и не могу изменить установленный HTML, иначе я бы использовал другой способ.
Я не думаю, что это возможно, но, возможно, есть способ, о котором кто-то знает.
html
css
line-breaks
DC3
источник
источник
Ответы:
BR
генерирует разрыв строки, и это только разрыв строки. Поскольку у этого элемента нет содержимого, есть только несколько стилей, которые имеют смысл применять к нему, напримерclear
илиposition
. Вы можете установитьBR
границу, но вы ее не увидите, так как она не имеет визуального измерения.Если вам нравится визуально разделять два предложения, то вы, вероятно, хотите использовать горизонтальную линейку, предназначенную для этой цели. Поскольку вы не можете изменить разметку, я боюсь, что используя только CSS, вы не сможете добиться этого.
Кажется, это уже обсуждалось на других форумах. Извлечение из Re: Установка высоты элемента BR с помощью CSS :
Я также нашел разъяснение в спецификации CSS 1 (никакой спецификации более высокого уровня не упоминает):
Тесты Гранта Вагнера показывают, что нет никакого способа стилизовать,
BR
как вы можете сделать с другими элементами. В Интернете также есть сайт, где вы можете проверить результаты в своем браузере .Обновить
Компания pelms провела дальнейшие исследования и указала, что IE8 (на Win7) и Chrome 2 / Safari 4b позволяют вам
BR
немного стилизовать. И действительно, я проверил демонстрационную страницу IE с двигателем IE8 IE Net Renderer в , и это сработало.Update 2 C69 сделал некоторые дополнительные исследования, и оказывается , что вы можете стилизовать маркер для
br
довольно сильно (хотя, не кросс-браузер), но это не будет влиять на линии ломать себя, потому что , кажется, принадлежат к родительскому контейнеру.источник
Попробуйте следующее, я собрал его, используя Обновление 2 из другого ответа с высоким голосом, и он отлично сработал для меня:
источник
Есть одна веская причина, по которой вам нужно стилизовать
<br>
тег.Когда это часть кода, которую вы не хотите (или не можете) изменить, и вы хотите, чтобы эта информация
<br>
не отображалась.Может сэкономить много времени, а иногда и ваш день.
источник
Для будущих посетителей, которые могли пропустить мои комментарии:
не работает.
Он был протестирован в IE 6, 7 и 8, Firefox 2, 3 и 3.5B4, Safari 3 и 4 для Windows, Opera 9.6 и 10 (альфа) и Google Chrome (версия 2), и не работал ни в одном из их. Если в какой-то момент в будущем кто-то найдет браузер, который поддерживает границу
<br>
элемента, обновите этот список.Также обратите внимание, что я пробовал ряд других вещей:
Из них следующее работает в Opera 9.6 и 10 (альфа) (спасибо porneL!):
Не очень полезно, когда он поддерживается только в одном браузере, но мне всегда интересно видеть, как различные браузеры реализуют спецификацию.
источник
content:""; display:block
ко второму правилу.Я знаю, что вы не можете редактировать HTML, но если вы можете изменить CSS, можете ли вы добавить JavaScript?
если это так, вы можете включить JQuery, то вы могли бы сделать
источник
рендерится, как показано ниже в IE8 ... не очень много пользы только в одном браузере.
(Примечание: я использую IE 8.0.7100 (на Win7 RC), если это имеет значение)
Также,
или,
br { content: "" }
дает пунктирную линию в Chrome 2 / Safari 4b, но теряет разрыв строки, который (если кто-либо не может придумать способ вновь ввести это) делает его менее чем бесполезным.
например ,
тест IE8 , Chrome / Safari тест и другие
источник
BR
. Спасибо, я обновил свой ответ с вашими результатами тестирования.Мои собственные тесты убедительно показывают, что
br
теги не любят быть целью для CSS.Но если вы можете добавить стиль, то, возможно, вы также можете добавить тег script в заголовок страницы? Ссылка на внешний,
.js
который делает что-то вроде этого:Короче говоря, это не оптимально, но вот мое решение.
источник
кажется, это решает проблему:
источник
BR это встроенный элемент, а не блочный элемент.
Итак, вам нужно:
В противном случае браузеры, которые немного придирчивы к таким вещам, откажутся применять границы к вашим элементам BR, поскольку встроенные элементы не имеют границ, отступов или полей.
источник
ОБНОВЛЕНО 13.09.2009:
Цель стилизации
<br>
тега, подобного этой, состоит в том, чтобы сделать «больший» разрыв строки (т.е. с небольшим дополнительным пространством между строками).Класс oldbig (ниже) был протестирован и работал должным образом в стилях Chrome 66.0.3359.181, Firefox Quantum 60.0.2, Edge 42.17134.1.0 и IE 11.48.17134.0. К сожалению, он сломался в Chrome версии 76 и его производных (около августа 2019 года). Симптом заключается в том, что лишний пробел между строками больше не отображается.
Класс "newbig" протестирован и работает должным образом в текущих версиях Chrome (76.0.3809.132), Opera, Firefox, Edge, IE, Brave и Palemoon:
Вот демо:
Вот результат, отображаемый в Chrome v.76:
источник
Это будет работать, но только в IE. Я проверял это в IE8.
источник
Я поместил
<br>
тег в<span>
тег и смог использоватьdisplay:none;
его,<span>
чтобы контролировать, когда не использовать<br>
тег с помощью Media Queries.источник
<br>
непосредственно на объект, а не оборачивать его в промежуток?старый вопрос, но это довольно аккуратное и чистое решение, может пригодиться людям, которые все еще задаются вопросом, возможно ли это :):
с помощью этого исправления вы также можете удалять BR на веб-сайтах (просто установите ширину 0px)
источник
Почему бы просто не использовать тег HR? Это сделано именно для того, что вы хотите. Вроде как пытаться приготовить вилку для супа, когда перед вами на столе ложка.
источник