Домашняя » кодирование » Как изменить перенос текста по умолчанию с помощью HTML и CSS

    Как изменить перенос текста по умолчанию с помощью HTML и CSS

    В отличие от бумаги, веб-страницы могут почти бесконечно расширяется вбок. Как это ни впечатляет, это не то, что нам действительно нужно во время чтения. Браузеры переносят текст в зависимости от ширина текстового контейнера и ширина экрана так что мы можем видеть весь текст без большой прокрутки в сторону (только вниз).

    Упаковка это то, что браузеры делают с учетом многих факторов, таких как язык текста или расположение знаков препинания и пробелов - они не просто давить что не помещается в поле, определенное для текстового содержимого.

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

    Когда следует изменить перенос текста по умолчанию

    Это все замечательно и высоко ценится. Но мы можем легко оказаться в обстоятельствах, когда поведение браузера по умолчанию не то, что мы ищем. Это может быть заголовок, который не должен быть завернут или слово в абзаце, которое лучше сломаться, чем спуститься по линии, оставляя странно выглядящее пустое место в конце строки.

    Может случиться так, что мы просто отчаянно нужны эти пробелы в нашем тексте, однако браузер продолжает объединять их в один, заставляя нас добавлять несколько в исходном коде.

    Настройки упаковки также могут изменить в зависимости от языка и цели текста. Новостная статья «Мандарин» и французское стихотворение не обязательно должны быть завернуты одинаково.

    Существует немало свойств CSS (и элементов HTML!), Которые могут контролировать упаковку и контрольные точки а также определить, как пробелы и разрывы строк обрабатываются перед переносом.

    Возможности мягкой обертки и разрывов

    Браузеры решают, где перенести переполненный текст в зависимости от границ слов, дефисов, слогов, знаков препинания, пробелов и многого другого. Эти места все называются возможность мягкой упаковки и когда браузер разрывает текст в одном из таких мест, разрыв называется мягкий перерыв.

    Самый простой способ вызвать дополнительный перерыв может быть сделано с помощью старого доброго
    элемент.

    Пробелы

    Если вы знакомы с бело-пространство CSS свойство Держу пари, вы пришли в первый знать его таким же образом, как и многие другие; ища способ предотвратить перенос текста. Nowrap ценность бело-пространство делает именно это.

    Тем не менее бело-пространство собственность - это больше, чем просто упаковка. Прежде всего, что такое пробел? Это набор символов пробела. Каждое место в наборе отличается друг от друга по длине, направлению или обоим.

    Типичный одиночный горизонтальный пробел это то, что мы добавляем, нажав клавишу пробела. Клавиша Tab также добавляет похожее пространство, но с большей длиной. Клавиша ввода добавляет вертикальное пространство начать новую строку и в HTML добавляет одно неразрывное пространство на веб-страницах. Как это, есть много типов пространств, которые составляют “пробельные”.

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

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

    Ниже вы можете увидеть скриншот образца текста, который обернутый браузером, чтобы поместиться в его контейнере. Переполнение происходит в нижней части контейнера, а переполненный текст окрашивается по-разному. Вы заметите крах последовательных пространств в коде.

     
    â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет.
     .textContainer ширина: 500 пикселей; высота: 320 пикселей;  

    После применения пустое пространство: nowrap; Как правило, перенос текста изменяется следующим образом:

     .textContainer / *… * / пробел: nowrap;  

    до ценность бело-пространство сохраняет все пробелы а также предотвращает перенос текста:

     .textContainer / *… * / пробел: pre;  

    предварительно обертка ценность бело-пространство сохраняет все пробелы а также переносит текст:

     .textContainer / *… * / пробел: предварительная переноска;  

    Наконец, до линии ценность бело-пространство сохраняет вертикальные пробелы такие как новые линии и переносит текст:

     .textContainer / *… * / пробел: предварительная строка;  

    Разрывы слов

    Другое важное свойство CSS, которое вы должны знать для управления переносом текста: слово-брейк. На всех приведенных скриншотах видно, что браузер завернул текст перед словом “Привет” на правой стороне, за которой текст переполнен. Браузер не нарушил слово.

    Однако если вы должен разрешить разрыв букв в слове так что текст будет выглядеть даже на правой стороне, вам нужно использовать брейк-все значение для слово-брейк имущество:

     .textContainer / *… * / word-break: break-all;  

    слово-брейк свойство имеет третье значение, кроме брейк-все а также нормальный (принадлежность к разрыву строки по умолчанию). сохранить все значение не позволяет разбивать слова.

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

    Например, буквы в корейских словах, изначально сломан для упаковки, хранятся вместе когда пустое пространство: держать все; правило указано.

    ì  ??¸ÃªÂ³Â ?? à «Â¥Â¼ А-А-А¥А-А ??  ?? à «Â?  ?? Ã- ??  ??, ìÂ?  Â?  ?? ì½ ?? à «Â ??  ?? à «¡Â ?? А-А ??  ?? ì ??  Ã-¬Â ??  ?? ì  ??¤. ì   10    ?? ìÂ?  Â?  ?? ì½ ?? à «Â ??  ?? êµА-А¬?? А-А ??  ?? ì ??  ?? ê  ?? ° 1997 Ã…  ?? 3À¬Â ??  ?? 10А¬Â  ??¼Ã «Â¶Â ?? Â- ° 12ì  ??¼ÃªÂ¹Â à ??¬Â§Â ?? à «Â ?? Â… ì  ??¼Ã¬Â ??  ?? à «Â§Â à ??¬Â  ??¸Ã¬Â¦Â à ??¬Â- ?? ì ??  ?? ìА-А´Ã «Â¦Â½А «Â ??  ?? ë   ??¤. 짠à ??ªÂ¸Â ?? à «Â ??  ± ë ¡ ?? А-А ??  ?? ì ??  Ã-¬Â ??  ?? ì  ??¤. ì  ??´ А-А ??  ?? ì ??  ?? ìÂ- ?? ì ??  ?? à «Â ??  ?? ìÂ-Â… ê³ ?? ì ?? à «Â °  ?? ì ??  ?? ì  ??  «¬Â¸ÃªÂ ° à  ?? «Â  ??¤Ã¬Â  ??´ А-А ?? ¨ê »Â ?? à «ÂªÂ¨Ã¬А-А¬ à «Â  ??¤Ã¬Â ??  ?? ê³¼ ê  ° à ??¬Â ??  ?? à «Â¶Â à ??¬Â  ??¼Ã «Â¥Â¼ à «Â  ??¤Ã «Â £ ¹А «Â ??  ?? ë   ??¤.
     .textContainer / *… * / word-break: keep-all;  

    Это свойство может поддерживать другое значение Распад слово в будущем. Вы увидите, как Распад слово работает позже, в “Переливная упаковка” раздел этой статьи.

    Возможность разбить слово

    Разработчики также могут добавить возможности переноса внутри слов, с использованием Элемент HTML. Если браузер должен обернуть текстовую строку, он будет учитывать место, где присутствует для возможности упаковки.

     
    â ??  ?? Привет. â ??  ?? Привет. â ??  ?? ЧАСЭлло М¢Â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет. â ??  ?? Привет.
     .textContainer / *… * / пробел: предварительная переноска;  

    Без , целый “Привет” слово было бы представлено в новой строке. Добавляя в код HTML, мы сообщили браузеру, что это нормально, чтобы сломать слово в этот момент для упаковки, в случае необходимости.

    Дефис

    дефиса CSS свойство еще один способ контролировать разрывы между буквами в слове. У нас есть отдельная статья о переносе CSS, если вам интересно. Короче говоря, свойство позволяет вам создать возможности для переноса через переносы.

    это авто значение побуждает браузер автоматически переносить и разбивать слова в случае необходимости во время упаковки. руководство значение заставляет браузеры обернуть (при необходимости) в добавленные нами возможности переноса слов, такой как символ дефиса (‐) или же ­ (мягкий дефис). Если никто было дано в качестве значения будет нет переноса рядом с дефисами.

     
    Bluehouse Bluehouse Bluehouse Bluehouse Bluehouse Bluehouse Bluehouse Bluehouse Bluehouse Bluehouse Bluehouse
     .textContainer / *… * / -webkit-дефисы: авто; -ms-дефисы: авто; дефисы: авто;  

    Переливная упаковка

    Переполнение-обертка CSS свойство контролирует, если браузер может разбивать слова (или сохранившиеся пробелы, поддержка которых может произойти в ближайшее время) при переполнении. Когда Распад слово значение дано для Переполнение-обертка, слово будет сломан в случае других возможностей мягкой упаковки не найдено в соответствии.

    Обратите внимание, что Переполнение-обертка также известен как перенос слова (они псевдонимы).

     
    bluehousebluehousebluehousebluehousebluehousebluehousebluehousebluehousebluehousebluehousebluehousebluehouse
     .textContainer / *… * / overflow-wrap: break-word;  

    Без пробела между буквами в приведенном выше HTML-коде (т. Е. Без возможности обтекания) текст не был обернут сначала и был сохранен как одно слово.

    Тем не менее, когда было дано разрешение обернуть текст, разбив слова (т.е. Распад слово значение было дано Переполнение-обертка), обертывание произошло путем разрыва всей строки везде, где это было необходимо.