Описание
Свойство white-space устанавливает, как отображать пробелы между словами. В обычных условиях любое количество пробелов в коде HTML показывается на веб-странице как один. Исключением является тег
Помещенный в этот контейнер текст выводится со всеми пробелами, как он был отформатирован пользователем. Таким образом, white-space имитирует работу тегаНо в отличие от него не меняет шрифт на моноширинный.Синтаксис
white-space: normal | nowrap | pre | pre-line | pre-wrap | inherit
Значения
normal Текст в окне браузера выводится как обычно, переносы строк устанавливаются автоматически. nowrap Пробелы не учитываются, переносы строк в коде HTML игнорируются, весь текст отображается одной строкой; вместе с тем, добавление тега
переносит текст на новую строку. pre Текст показывается с учетом всех пробелов и переносов, как они были добавлены разработчиком в коде HTML. Если строка получается слишком длинной и не помещается в окне браузера, то будет добавлена горизонтальная полоса прокрутки. pre-line В тексте пробелы не учитываются, текст автоматически переносится на следующую строку, если он не помещается в заданную область. pre-wrap В тексте сохраняются все пробелы и переносы, однако если строка по ширине не помещается в заданную область, то текст автоматически будет перенесен на следующую строку. inherit Наследует значение родителя.Действие значений на текст представлено в табл. 1.
HTML5 CSS2.1 IE Cr Op Sa Fx
white-space Пример
Великая теорема Ферма
X n + Y n = Z n
где n - целое число > 2Результат данного примера показан на рис. 1.
Рис. 1. Применение свойства white-space
Объектная модель
document.getElementById("elementID ").style.whiteSpace
Браузеры
Браузер Internet Explorer до версии 7.0 включительно не поддерживает значения pre-line , pre-wrap и inherit . Для
Opera до версии 9.5 не поддерживает значение pre-line . Для
Safari до версии 3.0 и iOS не поддерживают значения pre-wrap и pre-line .
Firefox до версии 2.0 включительно не поддерживает значения pre-line и pre-wrap . Для
Урок 5.
В этом уроке мы:
1. Узнаем как сделать чтобы html код был для нас более удобен и легко читаем.
2. Разберем как правильно делать перенос текстовой строки.Делаем html код удобным.
Сейчас наш код понятен и легко читаем, так как в нем мало текста и практически нет тегов. Когда мы создадим более сложную страницу, то там будет много тегов, соответственно найти нужный будет сложно.
Чтобы не было каши из тегов, нужно изначально расставлять теги и строки так, чтобы они визуально воспринимались легче. Когда браузер считывает информацию с html страницы, ему без разницы сколько пробелов и сколько пустых строк в коде.
Я изменил текст в коде страницы относительно той, которую мы создавали, но это не важно. На левом и на правом рисунке изображен один и тот же код. Оба варианта будут отображаться браузером на экране монитора абсолютно одинаково. Согласитесь, работать с кодом изображенным справа будет гораздо легче, чем с тем, что слева.
Рассматриваемый нами код очень простой, но даже сейчас заметна разница в визуальном восприятии. Каких-либо определенных правил "наведения порядка" нет, каждый мастер сам решает как ему удобнее работать.
Перенос строки html. Тег <br>.
Обратите внимание на рисунок. В первом варианте текст написан в одну строку, во втором варианте в две строки.
Браузер будет отображать оба варианта одинаково. Текст будет написан в одну строку:
Вы спросите, почему так? Ведь в одном из кодов часть текста перенесена на другую строку. Было бы логично если бы в браузере часть текста тоже перенеслась на другую строку, но у html своя логика в этом отношении. Если мы в html коде делаем перенос строки, то для браузера это равнозначно одному пробелу (как обычный пробел между словами в тексте). Если мы перенесем часть текста не на одну строку вниз, а на 2 или 3 (любое количество), то браузер все равно будет считать это расстояние за один обычный пробел между словами и при выводе на экран текст будет писаться в одну строку.
Тег <br>
Когда мы в третьем уроке знакомились с тегами, я упомянул, что бывают теги которые не требуют закрытия. Тег <br> один из них, служит он для переноса строки.
Давайте применим его в коде:Мы вставили тег <br> в наш html код и теперь при запуске файла через браузер часть текста будет перенесена на следующую стоку.
* Не забываем сохранять изменения в Notepad (Ctrl + S) и обнавлять страницу в браузере (F5).Часто возникает потребность добавить новый абзац, но без пустой строки, которую вставляет тег абзаца
Для некоторых фрагментов текста принятые для абзацев стандартные интервалы просто неуместны. Это могут быть надписи под картинками и в таблицах, стихи, цитаты, сноски и примечания.
Для принудительного переноса строк предусмотрен специальный тег, функция которого заложена в его названии br (break row - "разорвать ряд, строку"). Тег
языка гипертекстовой разметки html означает, что все следующее за ним содержимое должно начинаться с новой строки. Если нужно, можно проставить несколько тегов подряд, чтобы добиться необходимого интервала.Тег
не чувствителен к регистру и не требует закрывающего тега, потому что это пустой элемент, но лучше привыкать закрывать все теги. В XHTML тег разрыва должен быть "наглухо закрыт" на обратный слэш.Пример использования тега разрыва
Тег br в действии < /title> <р> Прогул на службе р>
Еще нигде и никогда
Я не был столь плохим
Начальства алчная орда
Грызет меня живым р>
Прогул на службе
Еще нигде и никогда
Я не был столь плохим.
Начальства алчная орда
Грызет меня живым.Атрибут тега
Единственный атрибут, которым обладает html тег
, называется Он указывает браузеру, как поступить с переносимой строкой, если тексту придется обтекать так называемый плавающий элемент, каковым может быть, например, изображение с атрибутом выравнивания align, использующим значения right/left, или блок в CSS, которому прописано свойство float.В спецификациях по XHTML 1.0 / HTML 4.01 атрибут clear можно использовать только с Transitional, Frameset и , иначе код будет нерабочим.
Свойства атрибута тега
Эффект от применения атрибута clear зависит от его значения и расположения обтекаемого текстом плавающего элемента. Атрибут может принимать 4 значения:
Значение left запрещает обтекание элемента, выровненного по левому краю, поэтому текст, "споткнувшись" о тег
, расположится ниже изображения или иного плавающего элемента.Точно такой результат получится от использования аргумента all, который ни за что не позволит ни справа, ни слева.
Значение right запрещает тексту обтекание элемента, выровненного по правому краю, поэтому после тега
тексту не останется ничего другого, как обойти изображение, обтекая его справа.Значение none ("ни вашим, ни нашим") вообще снимает все полномочия с атрибута clear, и тег
молча переносит строку вниз.Значение по умолчанию, как таковое, у атрибута clear тега отсутствует.
Тег
- это мягкий переносТег разрыва строки очень удобен для создания необходимых интервалов между абзацами, внутри которых он используется как мягкий перенос, но не как средство для деления текста на абзацы.
Не следует слишком увлекаться тегом перевода строк для форматирования текста, потому что результаты его применения не всегда отличаются изяществом.
Например, если использовать тег
для перевода строк внутри абзаца, это может привести к появлению "гребенки" в окне пользователя, если оно меньше окна, на которое ориентировался веб-мастер.Здравствуйте, уважаемые читатели блога сайт! Те, кто хотя бы поверхностно успел ознакомиться с , наверное, уже приняли к сведению, пусть и в общих чертах. А значит, имеют представление о том, какие вообще HTML символы используются в коде документа.
В сегодняшней статье мы попробуем разобраться, что из себя представляет пробел в HTML, в каких случаях можно применить пробельные символы при форматировании самого кода для удобного восприятия. Узнаем, когда необходимо применение неразрывного пробела, а также познакомимся с другими спецсимволами (или, как их еще называют, мнемониками).
На самом деле я бы посоветовал не игнорировать тему использования различных спец символов, поскольку это важная составляющая, позволяющая придать законченность изучению языка гипертекстовой разметки. В общем, предоставленная в этой публикации информация лишней точно не будет. Ну а теперь к делу.
Пробелы и пробельные символы в HTML
Сначала необходимо сделать важное замечание. На клавиатуре компьютера есть специальные клавиши, которые позволяют реализовать разделение текста (чуть подробнее об этом ниже). Однако, лишь широкая клавиша пробела обеспечивает раздел между словами не только в редакторе, но и в окне браузера. При переносе строк и отступе от края существуют нюансы.
Как вы знаете, отображение тех или иных элементов в веббраузере определяется тегами. Для форматирования текста применяется известный , который является блочным. То есть его содержание располагается по всей доступной ширине.
Чтобы перенести строки внутри абзаца P , нужно воспользоваться одиночным тегом BR, с помощью которого это можно осуществить. Скажем, нам нужно вставить в текст какие-нибудь строчки из стихотворения, которые мы пишем в текстовом редакторе:
Несмотря на то, что строки стиха расположены корректно и переносы осуществлены в нужных местах, в браузере все будет выглядеть иначе:
Чтобы добиться такого же отображения в окне веб-обозревателя, нужно в каждом месте переноса строки прописать BR:
Теперь мы достигли выполнения поставленной задачи и в браузере стихотворные строчки отобразятся совершенно правильно:
Таким образом, нужные переносы строк выполнены. Здесь еще нужно отметить такую особенность, что множественные пробелы, идущие один за другим, веббраузер отображает как один. В этом вы сможете убедиться, если в том же редакторе попробуете поставить не один, а несколько пробелов между двумя словами и, нажав на кнопку «Сохранить», посмотрите на результат в браузере.
Пробел, табуляция и перенос строки
В принципе, с этими пробельными символами мы знакомимся сразу же, как начинаем работу с текстом в редакторе и форматируем его в нужном виде. Для реализации подобной задачи существуют специальные клавиши, каждая из которых соответствует своему пробельному символу:
- Пробел - самая широкая клавиша на клавиатуре компьютера (без надписи);
- Табуляция - клавиша слева с надписью «Tab» и двумя стрелками, направленными в разные стороны;
- Перенос строки - клавиша «Enter».
Однако, как я сказал выше, конечный нужный результат не только в текстовом редакторе, но и в браузере, мы получаем лишь при использовании первой клавиши. Все три клавиши (в том числе табуляция и перенос строки полезно использовать при форматировании кода HTML. Допустим, вот как выглядит фрагмент кода в NotePad++ ( об этом редакторе толковый материал) при отображении всех пробельных символов:
Мы получаем код, который легко читаем и понятен благодаря пробелам. Оранжевыми стрелками отмечены отступы, создаваемые с помощью клавиши Tab, а символами CR и LF переносы строк, осуществляемые посредством кавиши Enter.
Просматриваются контейнеры, вложенные один в другой, хорошо выделяются открывающие и закрывающие теги. В таком виде данный код можно спокойно редактировать. А теперь сравните его с таким же кодом, в котором нет подобного разделения текста:
Таким же образом с помощью пробельных символов можно прописать и правила CSS, которые будут визуально выглядеть понятными и удобоваримыми:
После того, как вы приведете все стили к общему знаменателю и полностью закончите редактирования файла стилей, можно будет подвергнуть , удалив из кода все пробелы. Это необходимо для повышения , что очень важно при продвижении ресурса.
Спецсимволы (или мнемоники) в коде HTML
Теперь разберем, в каких случаях необходимо использование специальных символов, о которых я упомянул в начале статьи. Спецсимволы HTML, которые иногда называют мнемониками, введены для решения давней проблемы с кодировками, возникшей в языке гипертекстовой разметки.
При наборе вами текста с клавиатуры происходит кодировка символов языка, который вы используете. В веббраузере набранный текст будет отображен посредством выбранных вами шрифтов в результате обратной операции декодирования.
Дело в том, что подобных кодировок немало, сейчас у нас нет цели их подробно разобрать. Просто в каждой из них может не доставать тех или иных символов, которые, однако, необходимо отобразить. Скажем, приспичило вам прописать одиночные кавычки или знак ударения, а эти значки банально отсутствуют в наборе.
Для того, чтобы ликвидировать эту проблему, и была введена система спецсимволов, которая включает в себя огромное количество самых различных мнемоник. Все они начинаются со значка амперсанда «&» и заканчиваются обычно точкой с запятой «;». Поначалу каждому спецсимволу соответствовал свой цифровой код. Например, для неразрывного пробела, который рассмотрим чуть ниже подробнее, будет справедлива такая запись:
Но спустя некоторое время наиболее распространенным символам были присвоены буквенные аналоги (мнемоники), чтобы их было проще запомнить. Скажем, для того же неразрывного пробела это выглядит следующим образом:
В результате браузер отображает соответствующий символ. Список мнемоник очень объемный, наиболее часто применяемые спецсимволы HTML вы можете обнаружить из ниже следующей таблицы:
символ код мнемоника описание неразрывный пробел узкий пробел (еn-шириной в букву n) широкий пробел (em-шириной в букву m) – - – узкое тире (en-тире) - — — широкое тире (em -тире) - мягкий перенос а́ ́ ударение, ставится после "ударной" буквы © © копирайт ® ® ® знак зарегистрированной торговой марки ™ ™ ™ знак торговой марки º º º копье Марса ª ª ª зеркало Венеры ‰ ‰ ‰ промилле π π π пи (используйте Times New Roman) ¦ ¦ ¦ вертикальный пунктир § § § параграф ° ° ° градус µ µ µ знак "микро" ¶ ¶ ¶ знак абзаца … … … многоточие ‾ ‾ ‾ надчеркивание ´ ´ ´ знак ударения № № знак номера 🔍 🔍 Лупа (наклонённая влево) 🔎 🔎 Лупа (наклонённая вправо) знаки арифметических и математических операций × × × умножить ÷ ÷ ÷ разделить < < меньше > > > больше ± ± ± плюс/минус ¹ ¹ ¹ степень 1 ² ² ² степень 2 ³ ³ ³ степень 3 ¬ ¬ ¬ отрицание ¼ ¼ ¼ одна четвертая ½ ½ ½ одна вторая ¾ ¾ ¾ три четверти ⁄ ⁄ ⁄ дробная черта − − − минус ≤ ≤ ≤ меньше или равно ≥ ≥ ≥ больше или равно ≈ ≈ ≈ приблизительно (почти) равно ≠ ≠ ≠ не равно ≡ ≡ ≡ тождественно √ √ √ квадратный корень (радикал) ∞ ∞ ∞ бесконечность ∑ ∑ ∑ знак суммирования ∏ ∏ ∏ знак произведения ∂ ∂ ∂ частичный дифференциал ∫ ∫ ∫ интеграл ∀ ∀ ∀ для всех (видно только если жирным шрифтом) ∃ ∃ ∃ существует ∅ ∅ ∅ пустое множество Ø Ø Ø диаметр ∈ ∈ ∈ принадлежит ∉ ∉ ∉ не принадлежит ∋ ∋ ∗ содержит ⊂ ⊂ ⊂ является подмножеством ⊃ ⊃ ⊃ является надмножеством ⊄ ⊄ ⊄ не является подмножеством ⊆ ⊆ ⊆ является подмножеством либо равно ⊇ ⊇ ⊇ является надмножеством либо равно ⊕ ⊕ ⊕ плюс в кружке ⊗ ⊗ ⊗ знак умножения в кружке ⊥ ⊥ ⊥ перпендикулярно ∠ ∠ ∠ угол ∧ ∧ ∧ логическое И ∨ ∨ ∨ логическое ИЛИ ∩ ∩ ∩ пересечение ∪ ∪ ∪ объединение знаки валют € € € Евро ¢ ¢ ¢ Цент £ £ £ Фунт ¤ ¤t; ¤ Знак валюты ¥ ¥ ¥ Знак йены и юаня ƒ ƒ ƒ Знак флорина маркеры . простой маркер ○ ○ круг · · · средняя точка † † крестик ‡ ‡ двойной крестик ♠ ♠ ♠ пики ♣ ♣ ♣ трефы червы ♦ ♦ ♦ бубны ◊ ◊ ◊ ромб ✏ ✏ карандаш ✎ ✎ карандаш ✐ ✐ карандаш ✍ ✍ рука кавычки " " " двойная кавычка & & & амперсанд « « « левая типографская кавычка (кавычка-елочка) » » » правая типографская кавычка (кавычка-елочка) ‹ ‹ одиночная угловая кавычка открывающая › › одиночная угловая кавычка закрывающая ′ ′ ′ штрих (минуты, футы) ″ ″ ″ двойной штрих (секунды, дюймы) ‘ ‘ ‘ левая верхняя одиночная кавычка ’ ’ ’ правая верхняя одиночная кавычка ‚ ‚ ‚ правая нижняя одиночная кавычка “ “ “ кавычка-лапка левая ” ” ” кавычка-лапка правая верхняя „ „ „ кавычка-лапка правая нижняя ❛ ❛ одиночная английская кавычка открывающая ❜ ❜ одиночная английская кавычка закрывающая ❝ ❝ двойная английская кавычка открывающая ❞ ❞ двойная английская кавычка закрывающая стрелки ← ← ← стрелка влево стрелка вверх → → → стрелка вправо ↓ ↓ ↓ стрелка вниз ↔ ↔ ↔ стрелка влево и вправо ↕ ↕ стрелка вверх и вниз ↵ ↵ ↵ возврат каретки ⇐ ⇐ ⇐ двойная стрелка влево ⇑ ⇑ ⇑ двойная стрелка вверх ⇒ ⇒ ⇒ двойная стрелка вправо ⇓ ⇓ ⇓ двойная стрелка вниз ⇔ ⇔ ⇔ двойная стрелка влево и вправо ⇕ ⇕ двойная стрелка вверх и вниз ▲ ▲ треугольная стрелка вверх ▼ ▼ треугольная стрелка вниз треугольная стрелка вправо ◄ ◄ треугольная стрелка влево звездочки, снежинки ☃ ☃ Снеговик ❄ ❄ Снежинка ❅ ❅ Зажатая трилистниками снежинка ❆ ❆ Жирная остроугольная снежинка ★ ★ Закрашенная звезда ☆ ☆ Незакрашенная звезда ✪ ✪ Незакрашенная звезда в закрашенном круге ✫ ✫ Закрашенная звезда с незакрашенным кругом внутри ✯ ✯ Вращающаяся звезда ⚝ ⚝ Начерченная белая звезда ⚪ ⚪ Средний незакрашенный круг ⚫ ⚫ Средний закрашенный круг ⚹ ⚹ Секстиле (типа снежинка) ✵ ✵ Восьмиконечная вращающаяся звезда ❉ ❉ Звёздочка с шарообразными окончаниями ❋ ❋ Жирная восьмиконечная каплеобразная звёздочка-пропеллер ✺ ✺ Шестнадцатиконечная звёздочка ✹ ✹ Двенадцатиконечная закрашенная звезда ✸ ✸ Жирная восьмиконечная прямолинейная закрашенная звезда ✶ ✶ Шестиконечная закрашенная звезда ✷ ✷ Восьмиконечная прямолинейная закрашенная звезда ✴ ✴ Восьмиконечная закрашенная звезда ✳ ✳ Восьмиконечная звёздочка ✲ ✲ Звёздочка с незакрашенным центром ✱ ✱ Жирная звёздочка ✧ ✧ Заострённая четырёхконечная незакрашенная звезда ✦ ✦ Заострённая четырёхконечная закрашенная звезда ⍟ ⍟ Звезда в круге ⊛ ⊛ Снежинка в круге часы, время ⏰ ⏰ Часы ⌚ ⌚ Часы ⌛ ⌛ Песочные часы ⏳ ⏳ Песочные часы Случаи использования некоторых спецсимволов, в том числе неразрывного пробела и мягкого переноса
Если вы немного уже изучили таблицу, то получили подтверждение сказанным мною выше словам, что для отображения всех спецсимволов используется цифровой код () либо его буквенный аналог (символьная мнемоника), где вместо совокупности решетки и цифр прописаны буквы ().
Теперь посмотрим, когда необходимо применять данные коды. Скажем, в статье вам необходимо в информативных целях указать какой-нибудь HTML тег, например,
Поэтому из той же таблицы спецсимволов HTML берем соответствующие коды и вся запись будет выглядеть так:
Кроме того, чтобы отобразить в браузере не сам знак амперсанда, а его обозначение в виде , нужно добавить из таблицы его код:
&lt;footer&gt;
Тогда в браузере выведется именно запись мнемоник, которые нужно применить для отображения тега FOOTER. Немного путано, но на этой странице вы сможете попрактиковаться в данном аспекте, введя в поле «HTML» мнемоники для соответствующих символов и задействуя кнопку «Run», а в области «Result» получая результат их отображения в браузере:
Обратите внимание, что я обеспечил перенос текста с помощью уже упомянутого тега BR с тем, чтобы сами символы отображались не в одну строку, а столбиком для удобства.
Идем дальше. Иногда в тексте возникают сочетания, которые нежелательно разделять по разным строкам. Скажем, «1000 руб.» будет логичным или оставить на верхней строке, или при недостатке места всю конструкцию перенести на на строку ниже.
Особенно это актуально, если пользователи применяют устройства с различной шириной экрана, в том числе мобильные. Ведь в этом случае веббраузер форматирует текст, подстраиваясь под новые условия. И если при стандартных размерах монитора текст выглядит корректно, то при их изменении все может поменяться.
Для этих случаев предусмотрен неразрывный пробел HTML , о котором я уже упоминал. Напомню, что в этом случае код пробела такой:
И его нужно вставить между двумя совокупностями знаков, которые требуется связать:
1000 руб.
Теперь браузер ни в коем случае не осуществит их разделение, даже если потребуется форматирование текста для его корректного отображения.
Также бывает такая ситуация, когда очень длинное слово не помещается в свободное пространство и требуется перенести его часть. Как при необходимости предопределить перенос на новую строку в этом случае? Для этого есть спецсимвол мягкого переноса -, который нужно поместить в то место, в котором слово нужно разорвать:
Длинноедлинноедлинноедлинноедлинноеслово
Если возникает ситуация, когда слово нужно перенести, то на месте нахождения мнемоники мягкого переноса образуется разрыв, где появится знак переноса (дефис), а оставшаяся часть данного слова окажется на ниже следующей строке.
Впрочем, опять же будет полезным все это дело, включая примеры неразрывного и мягкого переноса, воочию отследить на практике :
В окне этого редактора можно изменять размеры поля просмотра «Result», захватив левой кнопкой мышки край этой области и, не отпуская ее, тянуть влево для уменьшения ширины. Тогда возникает реальная ситуация, когда браузер начинает переформатировать содержимое для корректного его отображения.
И осуществляется перенос, который был предусмотрен в описанных мной примерах. Впрочем, вы сами можете подвигать просмотровое окно, расширяя-сужая ее, и визуально убедиться в этом.
Если я правильно поняла, то
и
имеют разные типы.- контейнер блочного типа, аразрывает и заканчивает строку, то весьма логично решить: одна строка закончилась, началась другая. И тут же разорвать ее с помощью
больше похож на строчный, так? Хотя
вообще не похож на контейнер, и это сбивает меня с толку. Вопрос такой: если абзац определяется и форматируется с помощью тега, например:строка вообще не определена:(РазТекст, текст, много текста...а после абзаца мне захотелось добавить пустую строку, то куда вставить
: внуть контейнера::Текст, текст, много текста...или после закрывающего дескриптора
Текст, текст, много текста...
Результат у меня в броузере, вроде бы, один и тот же, но как правильно?
Мне тут, конечно, пришло в голову, что можно не выпендриваться и отформатировать абзац с помощью тегаРезультат будет как раз такой, как я хочу, но мне все-таки интересно узнать, куда же по правилам надо вставлять этот проклятый "бээр" и можно ли про него сказать, что он - контейнер строчного типа, а потому должен быть расположен внутри контейнера блочного типа, то есть
?не реагирует... (наверное, к стандартам подтягивается:)))Перенесено в Стандарты.
По-моему без разницы...
Если внутри
, то значит перевод строки относится к нему.строка вообще не определена. Но, как видно, браузеры очень часто отклоняются от предписаний стардартов... Если Вы хотите строго следовать стандартам, создавайте абзацы с помощью тегов
Если после, то значит перевод строки послеа...сам по себе разрывает и заканчивает строку (а сколько раз можно разорвать или закончить одну и ту же строку?), во второй - потому, что послеНо я бы поставила после. Внутри имеет смысл ставить, если после написанного предложения следует еще одно с новой строки...
Берём источники, смотрим:
http://html.manual.ru/book/html/body/textblocks/br.php и
http://www.w3.org/TR/html4/struct/text.html#edef-BR— не контейнер. Это элемент, который обеспечивает перевод текстовой строки и по большому счёту заменяет „родной“ перевод строки в тексте (ведь просто перевод строки, как известно, броузерами игнорируется и заменяется пробелом). Поэтому
для броузера является как бы обычным символом, и ничем иным, разве что за счёт атрибута clear ему даются некоторые дополнительные возможности.Исходя из сказанного, думаю, понятно, что конструкция:
Он купил якитори на вертелах и две высокие вощеные картонки пива.
Бросив взгляд вверх, на голограммы, он обнаружил, что грудь одной из фигур уже заливает кровь. Густой коричневый соус стекал с вертелов и капал у Кейса с пальцев.
совершенно правильна и очень жизнеспособна.Замечание: не стоит использовать
для форматирования. для форматирования и оформления текста рекомендуется использовать.
— структурный блок, который обычно предназначен для создания независимых друг от друга элементов страницы, которые иногда называются „слоями“. Также он обеспечивает более явное логическое структурирование (по крайней мере, предназначен для этого).или
http://www.w3.org/TR/html4/struct/global.html#edef-DIVАлексей совершенно прав, но я позволю себе добавить ещё немножко теории. Теория, конечно, не всегда идёт в ногу с практикой, но ведь Вас интересует именно теоретическая сторона вопроса? Так вот, элемент строчного типа
- это всего лишь указание браузеру: "разорви или закончи здесь строку". Не больше. Используя конструкцию
, Вы пытаетесь применить этот тег с совсем другой целью, с целью, для которой он не предназначен. А именно, Вы пытаетесь использовать
для создания пустой строки, или даже нет, не пустой строки, а увеличенного промежутка между строками . Этот эффект, однако, является побочным, а потому полагаться на него - плохой стиль вёрстки. Таким образом, обе конструкции по сути своей ошибочны! Теоретически, браузер должен проигнорировать тег
в обоих позициях: в первой - потому, что закрывающий тегА межстрочные расстояния регулируйте с помощью CSS . Но конечно, практически следовать этой рекомендации трудно, а порой невозможно; но это уже другая тема.
Мама... Это что же такое получилось??? Господи, откуда все эти пустые строки??? :))
Попробую еще раз... "Блокнот"пошаливает, извините, пожалуйста...Кстати,мой броузер-таки на комбинацию...
Но все-таки, как же добиться такой конструкции:
Прежде чем Кейсу удалось найти палатку, где торговали едой, пришлось сделать вокруг здания почти полный круг.Если средний абзац форматировать с помощью контейнера
То перед ним будет пустая строка, которая мне не нужна. Для моего броузера кострукция
...
работает, но она неправильна:(Все, что я хочу - окружить средний абзац тегамии, а потом вставить пустую строку. Несколько странно, что после
. (Это, естественно, претензии не к вам, уважаемые эксперты, день и ночь отвечающие на наши безумные вопросы:), а к HTML -ю и ко всем прочим... броузерам) Я, собственно, всю свою недолгую жизнь среди HTML не могла понять, чем отличаютсяИ
, и верила, что вот как раз этими лишними пустыми строками, то есть, добавлением их. Но вы меня убедили, что это не так:)разрывает и заканчивает строку,
Так значит, окружать, средний абзац , а потом как-то за счет межстрочного расстояния убирать лишнюю пустую строку, которая появляется в таком случае перед ним? Но как? Можно тогда поподробнее, на примере?Я все-равно не понял, где этот "средний" абзац...
...
Не пойму, в чем сложность вставить
в нужном месте? Между теми же или
" Кейс был очень, очень голоден.
В таком состоянии он, казалось, мог бы проглотить слона.
Прежде чем Кейсу удалось найти палатку, где торговали едой, пришлось сделать вокруг здания почти полный круг.
Он купил якитори на вертелах и две высокие вощеные картонки пива.
Бросив взгляд вверх, на голограммы, он обнаружил, что грудь одной из фигур уже заливает кровь. Густой коричневый соус стекал с вертелов и капал у Кейса с пальцев.Но это зрелище оставило его безучастным.
Он съел все до последнего кусочка и с удовольствием запил якитори пивом."
Первый абзац:
Кейс был очень, очень голоден.
В таком состоянии он, казалось, мог бы проглотить слона.Второй абзац, он же средний:
Прежде чем Кейсу удалось найти палатку, где торговали едой, пришлось сделать вокруг здания почти полный круг.
Он купил якитори на вертелах и две высокие вощеные картонки пива.
Бросив взгляд вверх, на голограммы, он обнаружил, что грудь одной из фигур уже заливает кровь. Густой коричневый соус стекал с вертелов и капал у Кейса с пальцев.Третий:
Но это зрелище оставило его безучастным.
Он съел все до последнего кусочка и с удовольствием запил якитори пивом.Дмитрий, Вы мне мою пустую строку обеспечиваете за счет того, что третий абзац в контейнер
Заключаете, ну а если это не удобно? Если абзацев в тексте много, а это проклятая пустая строка должна встретиться только один раз в указанном месте? (то есть, если третий абзац так оформлять, то когда он закончится, будет разрыв и пустая строка, а мне этого не нужно) К тому же вот граждане пишут, что вообще лучше
не использовать для форматирования, а Вы использовали...строка вообще неС точки зрения теории (а в этом разделе мы говорим о теории, а о практике лишь постольку поскольку), так вот, с точки зрения теории в HTML пустых строк не бывает. Вообще! Строка - это комбинация линейно расположенных символов; нет символов - и строки не может быть. Поэтому-то аргумент
> Несколько странно, что после
> определена:(Раз
> то весьма логично решить: одна строка закончилась,
> началась другая. И тут же разорвать ее с помощью
.неприемлем: нельзя разорвать несуществующую "пустую строку", нельзя разорвать то, чего нет. Чтобы строка всё-таки обрела существование, нужно вставить в неё хоть какой-нибудь символ. Если вставить, появится ощущение "пустой строки" и всё будет законно (хотя и нелогично). Алина, теоретически Вам нужна не пустая строка - Вам нужно увеличенное расстояние между строками (интерлиньяж). Тег
В большинстве броузеров по умолчанию создаёт перед собой удвоенный относительно базового интерлиньяж. Если Вы хотите строго придерживаться теории и принципов логической разметки, абзацы следует создавать с помощью тега
С соответствующими стилями (margin-top для верхнего отступа, line-height для высоты строк внутри абзаца).
Но это теория. Большинство практиков используют фактическое поведение браузеров, не вдаваясь в теоретические тонкости. Т. е. устанавливают удвоенный интерлиньяж с помощью комбинации
(хотя по закону второй
должен игнорироваться), мешаютИ
и всякими прочими способами добиваются визуальных эффектов , опираясь на в принципе ошибочную интерпретацию браузерами языка логической разметки HTML. И зачастую это оправдано - просто потому, что язык визуальной разметки CSS реализован в браузерах ещё хуже HTML, и полагаться на него очень часто нельзя...Так... Вмешаюсь.
Алина, если вы хотите, чтобы у вас всё выглядело так, как вам нужно — это одно. Если вам нужно, чтобы вёрстка следовала правилам и высокой логике HTML — это совсем другое. Более того, часто одно с другим не совпадает.Теперь по делу. Если вам нужно, чтобы абзацев было много, а пробел был только в одном месте, вы вполне можете сложить весь текст в один [абзац
Слой
(нужное подчеркнуть)]. (см. мой первый пример с фрагментом из „Нейромансера“ У.Гибсона)
Так абзац будет у вас только один (реально), но выглядеть вы можете его заставить по-всякому, за счёт
. В том месте, где вам нужен будет пустая строка,
будет стоять два раза подряд.
Но это, как вы понимаете, нарушает логику HTML.Идём дальше. У нас есть такая прекрасная вещь, как стилевое оформление документов, и определив для нашего абзаца margin:0px, мы получим именно то, что нужно — нулевой отступ между абзацами. (сразу прошу прощения за избыточный объём, но для наглядности мне пришлось использовать несколько абзацев. Скопируйте пример в html-страницу и просмотрите)
Прежде чем Кейсу удалось найти палатку, где торговали едой, пришлось сделать вокруг здания почти полный круг. Он купил якитори на вертелах и две высокие вощеные картонки пива. Бросив взгляд вверх, на голограммы, он обнаружил, что грудь одной из фигур уже заливает кровь. Густой коричневый соус стекал с вертелов и капал у Кейса с пальцев.
Башни ее и поля, разбросанные в бесцветном псевдопространстве
симуляционной матрицы - всего лишь электронная видимость, облегчающая
процесс управления и обмен огромными объемами данных. Законным
программистам дела нет до тех стен из льда, позади которых они работают,
стен тьмы, которые скрывают их операции от других - артистов
индустриального шпионажа и деловых ребят вроде Бобби Квинна.
Бобби был ковбоем. Он был хакером, вором-взломщиком, потрошившим
разветвленную электронную нервную систему человечества. Он присваивал
информацию и кредиты в переполненной матрице, монохромном
псевдопространстве, где, как редкие звезды во тьме, светились плотные
сгустки данных, мерцали галактики корпораций и отсвечивали холодным
блеском спирали военных систем.
Бобби был одним из тех потерявшихся во времени лиц, которых всегда
застанешь за выпивкой в "Джентльмене-Неудачнике", популярном в городе
баре, пристанище для электронных ковбоев, дельцов и прочих ребят, хоть
каким-то боком связанных с кибернетикой.
Мы были партнерами.
Замечание в тему: если использовать предыдущий, „неверный“ вариант, то отступ между строками иногда хочется сделать меньше или больше одного
. В этом случае используется распорка, которая и обеспечит иллюзию половинного или полуторного интервала.Раз уж зашла речь о "теории", то замечу, что в подобная конструкция противоречит правилам русского языка (и не только русского). Поэтому, уподобляясь остальным “теоретикам” предложу: "Прежде чем думать о верстке, убедитесь, что это не протеворечит правилам "человеческого" языка". :)
Гениальная мысль - текст представить в виде графики.
И все те проблемы будут решены.
Другая мысль - попробовать в SVG.
Третья - какого..... до сих пор никто не проработал управление переносами в словах?
В CSS2 какое-то подобие заложили, да что толку....Управление переносами крайне проблематично. Для автоматической расстановки переносов браузер должен знать правила грамматики соответствующего языка, что в функции браузера не входит и в принципе входить не должно. Остаются "мягкие" переносы, "зашитые" в сам текст. Для этого уже есть символ - , который, правда, пока не всеми браузерами понимается. О расстановке "мягких" переносов должен заботиться автор/редактор текста, или его можно поручить серверу, "знающему" правила расстановки переносов.