Перенос строки и разделительная линия в HTML. Основные варианты решения проблемы переноса слов в CSS.

29.01.2019

Часто возникает потребность добавить новый абзац, но без пустой строки, которую вставляет тег абзаца

Для некоторых фрагментов текста принятые для абзацев стандартные интервалы просто неуместны. Это могут быть надписи под картинками и в таблицах, стихи, цитаты, сноски и примечания.

Для принудительного переноса строк предусмотрен специальный тег, функция которого заложена в его названии br (break row - "разорвать ряд, строку"). Тег
языка гипертекстовой разметки html означает, что все следующее за ним содержимое должно начинаться с новой строки. Если нужно, можно проставить несколько тегов подряд, чтобы добиться необходимого интервала.

Тег
не чувствителен к регистру и не требует закрывающего тега, потому что это пустой элемент, но лучше привыкать закрывать все теги. В XHTML тег разрыва должен быть "наглухо закрыт" на обратный слэш.

Пример использования тега разрыва

Тег br в действии < /title></p><p><р> Прогул на службе </р></p><p><p>Еще нигде и никогда <br></p><p>Я не был столь плохим <br></p><p>Начальства алчная орда <br></p><p>Грызет меня живым </р></p><p>Прогул на службе</p><p>Еще нигде и никогда<br>Я не был столь плохим.<br>Начальства алчная орда<br>Грызет меня живым.</p><h2>Атрибут тега <br></h2><p>Единственный атрибут, которым обладает <a href="/bazovye-tegi-html-spravochnik-tegov-html.html">html тег</a> <br>, называется Clear ("очистить"). Он указывает браузеру, как поступить с переносимой строкой, если тексту придется обтекать так называемый плавающий элемент, каковым может быть, например, изображение с атрибутом <a href="/vyravnivanie-bloka-po-centru-css-vertikalno-css---vyravnivanie-po.html">выравнивания align</a>, использующим значения right/left, или блок в CSS, которому прописано свойство float.</p><p>В спецификациях по XHTML 1.0 / HTML 4.01 атрибут clear можно использовать только с Transitional, Frameset и <!DOCTYPE>, иначе код будет нерабочим.</p><h2>Свойства атрибута тега </h2><p>Эффект от применения атрибута clear зависит от его значения и расположения обтекаемого текстом плавающего элемента. Атрибут может принимать 4 значения:</p><p><br clear = "right | left | all | none"></p><p><br><img src='https://anyhost.ru/wp-content/uploads/2019/01/mdsc-cec634.jpg' width="100%" loading=lazy></p><p>Значение left запрещает обтекание элемента, выровненного по левому краю, поэтому текст, "споткнувшись" о тег <br>, расположится ниже изображения или иного плавающего элемента.</p><p>Точно такой результат получится от использования аргумента all, который ни за что не позволит ни справа, ни слева.</p><p>Значение right запрещает тексту обтекание элемента, выровненного по правому краю, поэтому после тега <br> тексту не останется ничего другого, как обойти изображение, обтекая его справа.</p><p>Значение none ("ни вашим, ни нашим") вообще снимает все полномочия с атрибута clear, и тег <br> молча переносит строку вниз.</p><p>Значение по умолчанию, как таковое, у атрибута clear тега отсутствует.</p><h2>Тег <br> - это мягкий перенос</h2><p>Тег разрыва строки очень удобен для создания необходимых интервалов между абзацами, внутри которых он используется как <a href="/kak-udalit-myagkie-perenosy-v-word-kak-ubrat-perenosy-v-vorde.html">мягкий перенос</a>, но не как средство для деления текста на абзацы.</p><p><br><img src='https://anyhost.ru/wp-content/uploads/2019/01/6101171-621x910.jpg' width="100%" loading=lazy></p><p>Не следует слишком увлекаться тегом перевода строк для форматирования текста, потому что результаты его применения не всегда отличаются изяществом.</p><p>Например, если использовать тег <br> для перевода строк внутри абзаца, это может привести к появлению "гребенки" в окне пользователя, если оно меньше окна, на которое ориентировался веб-мастер.</p> <p>HTML-оформление постов и страниц очень важное дело - оно помогает оформлять контент таким способом, чтобы пользователю было удобно его читать.</p><p>Я расскажу вам о теге br - он делает перенос строки в HTML, то есть разбивает строку на две части - причем делает это принудительно, заканчивая <a href="/the-text-editor-is-microsoft-word-allows-you-to-give-paragraphs-a-list-form-where-each-paragraph-will-be-marked-with-a-specific-marker-or-number.html">текущую строку</a> в том месте, где был вставлен и перенося ее вторую часть на новый ряд.</p><p>Где используется этот тег, когда конкретно возникает неотложна необходимость вставить в текст перевод строки без создания нового абзаца? Например, это может пригодиться в оформлении контента - если у вас есть сайт со стихами и отрывками стихов, текстами песен или чем-то подобным.</p><h2>Все о теге для переноса строки br</h2><p>Тег br осуществляет одинарный перенос строки в HTML (что это такое описано ) и определяется всеми браузерами. Да, чуть не забыл - если вы используете тег br, то в отличие от тега абзаца p, у вас не добавляется пустой отступ (перед строкой).</p><p>Тег br является пустым (пустой значит без содержимого, ничего не содержит), а значит его не нужно закрывать. А так как его не нужно закрывать, было придумано краткое описание - оно изначально подразумевает то, что сам тег не имеет закрывающего тега.</p><p>Представьте на минуту, что не было бы <a href="/programmnyi-kompleks-avtokad-kratkoe-opisanie-programmy-avtocad.html">краткого описания</a>. Что тогда? Тогда пришлось бы каждый раз «закрывать и открывать» перенос строки примерно так: <br></br>. Это как минимум неудобно. Но, тем не менее, в строгом XHTML закрывать его обязательно тегом <br />.</p><p>Если стоит задача увеличить расстояние по вертикали - между теми строками, где вы вставляете перенос - сделайте двойной перенос, вставив тег <br> дважды подряд.</p><p><br><<span>br > </span><br></p><p>Результат:</p><p>Чтобы осуществить перенос следующего предложения на новую строку, используем тег br.</p><p>Ура, второе предложение на новой строке.</p><p>Реальный пример:</p><p>А. Блок<br ><br>Ночь, улица, фонарь, аптека,<br ><br>Бессмысленный и тусклый свет.<br ><br>Живи еще хоть четверть века -<br ><br>Все будет так. Исхода нет.<br ><br ><br><br ><br>И повторится все, как встарь:<br ><br>Ночь, ледяная рябь канала,<br ><br>Аптека, улица, фонарь.</p><p>Результат:</p><p>Ночь, улица, фонарь, аптека,<br>Бессмысленный и тусклый свет.<br>Живи еще хоть четверть века -<br>Все будет так. Исхода нет.</p><p>Умрешь - начнешь опять сначала<br>И повторится все, как встарь:<br>Ночь, ледяная рябь канала,<br>Аптека, улица, фонарь.</p><p>Как выглядит:</p><p><br><img src='https://anyhost.ru/wp-content/uploads/2019/01/4933279.png' align="center" width="100%" loading=lazy></p><h2>Зачем придумали тег br?</h2><p>Необходимость этого тега существует хотя бы потому что перенести строку «как в Ворде» (как делают <a href="/gde-naiti-otkrytki-v-kontakte-kak-otpravit-otkrytku-v.html">неопытные пользователи</a>), путем написания десятков пробелов подряд, - не выйдет.</p><p>Почему не выйдет? Потому что любое количество пробелов будет считаться браузером как один пробел, а не перенос строки - браузер автоматически удаляет <a href="/slishkom-bolshoi-probel-kak-ubrat-lishnie-probely-mezhdu.html">лишние пробелы</a>. Для этого и нужен перенос строк.</p><p>Но не стоит злоупотреблять тегом <br>, чтобы все больше и больше увеличивать расстояние между строками - для этого лучше всего воспользоваться <a href="/bazovye-instrumenty-photoshop-dlya-novichkov-instrumenty-v-fotoshope.html">базовыми инструментами</a> HTML+CSS. Недопустимо создание новых абзацев или «как бы абзацев» (это считается плохим подходом) - только перенос строки!</p><p>Чтобы создавать и размечать абзацы вам следует пользоваться тегом p, а чтобы увеличить имеющееся расстояние между абзацами - измените <a href="/kaskadnaya-tablica-stilei-sovety.html">каскадные таблицы</a> стилей, например добавьте:</p><p>margin-top : 40 px; </p><h2>Бонус - br clear</h2><p>А как сделать так чтобы текст, в котором вы поставили перенос строки, не обтекал плавающий элемент (это либо изображение с установленным align, либо элемент со <a href="/float-i-clear-css-svoistva-dlya-plavayushchih-elementov-pri-blochnoi-verstke.html">свойством float</a>), а начинался ниже элемента? Для этого можно использовать атрибут clear.</p><p>Допустим, у нас есть изображение выровненное по левому краю (align=»left»). Если мы установим <br clear=»all»> или <br clear=»left»>, то текст после тега <br> (следующая строка, которую мы и переносим) будет отображаться как надо, ниже рисунка. Другие значения атрибута clear тега <br> сделают так, чтобы текст обтекал рисунок, расположившись справа от него.</p><p>Использование этого специфичного атрибута не приветствуется спецификацией HTML - такой код будет невалидным.</p><h2>БОНУС - тег-разделитель hr</h2><p>Тег <hr> тоже одиночный, но, в отличие от <br>, он используется для создания горизонтального разделителя в виде линии. Более того, <a href="/menyaem-nazvanie-i-imya-proizvoditelya-na-fleshki-kak-prisvoit.html">внешний вид</a> этой линии мы можем задавать при помощи атрибутов. Но, конечно же, лучше это делать проверенными методами через CSS (что это такое, читайте ).</p><h2>БОНУС - запрет переноса на новую строку с тегом nobr</h2><p>Бывает и так, что мы хотим запретит перенос строки и избежать перевода на новую строку текста: либо между двумя <a href="/chto-takoe-login-na-russkom-yazyke-chto-takoe-login-prostymi-slovami-s.html">конкретными словами</a>, либо в целом абзаце. Что делать? Использовать тег <nobr>Ваш текст</nobr>. Как выглядит на практике? Вот так:</p><p><img src='https://anyhost.ru/wp-content/uploads/2019/01/f427ce14dc075173c2184e0-692x611.png' align="center" height="269" width="382" loading=lazy></p><p>Что делает тег <nobr>? Он говорит браузеру - отображай текст внутри тега без переносов, одной строкой. И, если текст длинный, тогда у нас появится некрасивая и длинная <a href="/gorizontalnye-polosy-na-ekrane-iphone-5-ustranenie-belyh-ili-cvetnyh-polos-na.html">горизонтальная полоса</a> прокрутки, а пользователи должны будут прокрутить текст по горизонтали, чтобы прочитать его полностью.</p><p>Как мы понимаем, это очень неудобно. Но тег есть!</p><h2>Итоги - использование br, nobr, hr, p в HTML</h2><p>Подводя итог, резюмирую содержание статьи:</p><ul><li>тег <p>Для того чтобы разделять абзацы</li><li>тег <br> - для того чтобы перенести строку внутри абзаца (недопустимо «создание абзацев» при помощи этого тега или злоупотребление им)</li><li>тег <hr> - для создания горизонтальной линии-разделителя</li><li>тег <nobr> - для запрета переноса строк в HTML</li> </ul> <p><b>CSS3-текст </b> включает свойства для работы с текстом, позволяющие решить проблемы с переносом текста и обрезкой текста в пределах содержимого.</p> <h2>CSS3-свойства для форматирования текста</h2> <i> </i><h3>1. Обрезка строки text-overflow</h3> <p>Свойство позволяет ограничивать длину текста в случае, когда он не умещается в контейнер, визуально обрезая его или отображая многоточием. Свойство работает только при задании следующих условий: должна быть определена ширина контейнера, элемент должен иметь значения overflow: hidden и white-space: nowrap . Не наследуется.</p> <p><b>Синтаксис </b></p><p>P { width: 300px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } Рис. 1. Обрезка текста с помощью свойства text-overflow </p><h3>2. Перенос внутри слов word-break</h3> <p>В <a href="/prinyatie-reshenii-kak-eto-sdelat-pravilno-i-ne-dat-oshibitsya-drugomu.html">обычной ситуации</a> слова переносятся на другую строку в местах пробелов или дефисов («мягкий перенос»), или же в случае принудительного переноса с использованием элемента <br> . <a href="/chem-otlichayutsya-ponyatiya-informaciya-i-dannye-ponyatie-dannyh.html">Данное свойство</a> позволяет установить правила переноса внутри слов для того, чтобы <a href="/dlya-chego-prednaznachena-standartnaya-programma-bloknot-dve-prichiny-po.html">длинные строки</a> полностью заполняли пространство внутри контейнера. Не используется для CJK-языков (китайский-японский-корейский). Наследуется.</p> <p><b>Синтаксис </b></p><p>P {word-break: normal;} p {word-break: break-all;} p {word-break: keep-all;} </p><h3>3. Перенос слов в строке word-wrap</h3> <p>Применяется в случаях, когда текст не умещается в свой контейнер и выходит за его границу. Позволяет разрывать <a href="/kak-ubrat-dlinnyi-probel-mezhdu-slovami-reshenie-problemy-dlinnyh-probelov-v.html">длинные слова</a> и переносить их на <a href="/perenos-na-sleduyushchuyu-stroku-html-kak-sdelat-v-css-perenos-slov.html">следующую строку</a>. Наследуется. Срабатывает лишь в случае, если значение white-space разрешает разрыв строк.</p> <p><b>Синтаксис </b></p><p>P {word-wrap: normal;} p {word-wrap: break-word;} </p><ul><p>Yrii </p> <p>Неплохо было бы вам для вашего сайта сделать в конце каждой статьи кнопочку «Следующая статья» или что-то в этом роде. Это было бы очень удобно для пользователей вашего полезного ресурса.</p> <ul><li> <p>Спасибо за идею! В ближайшее время займусь улучшением шаблона.</p> </ul></li> </ul> <span>Тег <br /> осуществляет <b>перенос строки </b>, разбивает строку: </span> Результат: <span>Тег <br /> <br> размещенный за ним, будет отображен с новой строки. </span> <p>Увеличим <b>расстояние между строками </b> по вертикали: </p> <p>Тег <br /> осуществляет перенос, то есть текст,</p><p>Размещенный за ним, будет отображен с новой строки. Одно дело применять тег <br /> другое <br> перенос строки происходит плавнее и точнее.</p> <h3>Пример:</h3> <h3>Результат:</h3> Просто произвольный набор текста для примера.<br> Текст набран случайно и так чтобы показать как будет отображаться вывод того или иного <a href="/kak-rabotaet-svoistvo-css-float-left-i-float-right-vs-o-svoistve.html">свойства css</a> и его параметров к <a href="/ponyatie-relyacionnyh-dannyh-i-subd-osnovnye-klassy.html">данному классу</a>.<br> Все что необходимо знать и как это будет выглядеть в результате примера чуть ниже: <h3>Пример css расстояние между строками используя свойство line-height</h3> Для управления <a href="/rasstoyanie-mezhdu-bukvami-css-letter-spacing-mezhsimvolnyi-mezhstrochnyi-interval-css.html">межстрочным расстоянием</a> (оно еще называется интерлиньяжем) применяется стилевое <a href="/vertikalnoe-vyravnivanie-v-bloke-vyravnivanie-svoistvom-line-height.html">свойство line-height</a>. В качестве значения обычно указывается число либо проценты которое определяет межстрочный интервал.<br> Например:<br> line-height: 2 устанавливает двойной интервал<br> line-height: 1.5 полуторный<br> line-height: 100% Устанавливает одинарный интервал аналогично line-height: 1<br> Примеры использования <table class="jsexam"><tbody><tr><td> <span><html><br> <head><br> <style><br> .text1{ line-height:1;}<br> .text2{ line-height:2;}<br> .text3{ line-height:150%;}<br> .text4{ line-height:120%;}<br> </style><br> <title><a href="/kod-html-perenos-na-novuyu-stroku-kak-dobavit-s-pomoshchyu-svoistv-css.html">HTML перенос</a> строки, расстояние между строками по вертикалии используя css свойство line-height



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

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

Просто произвольный набор текста для примера. Текст набран случайно и так чтобы показать как будет отображаться вывод того или иного свойства css и его параметров к данному классу. Все что необходимо знать и как это будет выглядеть в результате примера чуть ниже
Результат вывода:

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

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

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

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

Иногда бывают конфликты стилей и чтобы их разрешить надо использовать параметры внутри данного элемента на примере div чуть ниже

Меня часто просят подстроить тот или иной элемент вывода к красивому исполнению на разных cms. Но когда мне предоставляют шаблон то там часто бывают конфликты стилей блочных элементов и чтобы их разрешить приходится прибегать к использованию стилей внутри каждого эелемента чтобы быстро и в короткие строки подстроить нужный элемент к нужному выводу.
Например чтобы применить тот же стиль что и в классе для див по примеру выше можно сделать так

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

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

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

Просто произвольный набор текста для примера. Текст набран случайно и так чтобы показать как будет отображаться вывод того или иного свойства css и его параметров к данному классу. Все что необходимо знать и как это будет выглядеть в результате примера чуть ниже
Как видите параметры класса которые были бы в стиле выше сохранились но мы переопределили только те параметры которые на необходимы были и они идут последними
Результат:

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

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

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

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


В данных уроках вы научились создавать переносы строк и расстояние между строками с помощью css line-height на различных примерах данного урока.

Описание тега

Тег BR (break, английский - разрыв) служит для принудительного разрыва строки и напоминает по своему действию нажатие кнопки Enter в текстовом редакторе. Этот тег нельзя использовать для создания нового абзаца так, как для этого есть тег Р. Вообще старайтесь использовать этот тег оправдано. Если текст, в котором используется тег переноса строки BR, содержит плавающий объект, то для управления обтеканием можно использовать атрибут CLEAR. Хотя этот атрибут и поддерживается браузерами, но он осуждается спецификациями HTML 4.01 и XHTML. В спецификациях HTML 5 и XHTML 1.1 использование этого атрибута вообще запрещено. Пользуйтесь лучше стилевыми свойствами(clear).

Браузеры

Тег поддерживается следующими браузерами и их версиями:

Синтаксис тега BR

HTML

XHTML

Атрибуты тега:

Тег поддерживает также глобальные атрибуты и события.

Пример BR:

Пример тег BRа

Вот пример переноса строки.
Напоминает как при печати на машинке 40ых годов.
И всеже перенос карретки остался, и есть в HTML.