John Doe wrote:В Энциклопедии практикуется смесь <br> и <p>.
В таблицах везде <br>.
Существуют ли на этот счёт какие-нибудь рекомендации?
И как лучше <br> или <br /> ?
P.S.
Мануалы смотрел, но не имея практики применения трудно представить.
<p>…</p> — это один абзац текста. Их можно использовать в том числе и в таблицах, и в списках.
<br> — это перенос строки внутри абзаца. Черновик спецификации HTML5 говорит:
HTML5 wrote:
br elements must be used only for line breaks that are actually part of the content, as in poems or addresses.
The following example is correct usage of the br element:
Centaur wrote:
<p>…</p> — это один абзац текста. Их можно использовать в том числе и в таблицах, и в списках.
<br> — это перенос строки внутри абзаца. Черновик спецификации HTML5 говорит:
Мануалы смотрел, и спрашиваю именно потому что практика с ними расходится.
Сформулирую вопрос так: есть ли какой-нибудь практический смысл в некоторых местах всё же использовать <br> вместо <p>?
Вроде как <p> добавляет интервал между абзацами...
Может для таблиц это не желательно и т.п.?
John Doe wrote:Существуют ли на этот счёт какие-нибудь рекомендации?
Скажу банальность: <p> — это тэг абзаца; <br> — это тэг разрыва строки без образования нового абзаца. В принципе у абзаца могут быть такие параметры, как красная строка, вертикальные отступы перед и после, межстрочный интервал и пр.; да и с выравниванием разрыв строки взаимодействует иначе. Т.ч. эти два тэга — это просто разные вещи, хотя иногда и похожие.
В спецификации XML сказано, что, когда в Document Type Declaration используется PUBLIC идентификатор, за ним должно следовать два строковых литерала. Как с этим в SGML — не знаю, скорее всего полный бардак. Чисто из соображений дисциплины предпочитаю максимально соответствовать синтаксису XHTML.
<table class="cont">
<tr class="cont"><th class="cont" width="10%">Атрибут</th><th class="cont" width="90%">Описание</th></tr>
<tr class="cont"><td class="cont" width="10%">0x00000001</td><td class="cont" width="90%">FILE_ATTRIBUTE_READONLY. Файл только для чтения. Приложения могут читать такой файл, но не могут записывать или удалять его.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00000002</td><td class="cont" width="90%">FILE_ATTRIBUTE_HIDDEN. Файл скрыт. Такой файл не включается в обычный листинг каталога.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00000004</td><td class="cont" width="90%">FILE_ATTRIBUTE_SYSTEM. Этот файл - часть операционной системы.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00000010</td><td class="cont" width="90%">FILE_ATTRIBUTE_DIRECTORY. Это каталог.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00000020</td><td class="cont" width="90%">FILE_ATTRIBUTE_ARCHIVE. Это архивный файл. Приложения должны использовать этот флаг для копирования, архивирования или удаления.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00000080</td><td class="cont" width="90%">FILE_ATTRIBUTE_NORMAL. У этого файла не установлены другие атрибуты. Это значение корректно только при использовании без остальных флагов.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00000100</td><td class="cont" width="90%">FILE_ATTRIBUTE_TEMPORARY. Это временный файл. Приложения должны записывать в такой файл только в крайней необходимости. Большая часть данных файла находится в памяти и не сбрасывается на диск, так как файл будет удалён.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00000200</td><td class="cont" width="90%">FILE_ATTRIBUTE_SPARSE_FILE. Файл является разрежённым.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00000400</td><td class="cont" width="90%">FILE_ATTRIBUTE_REPARSE_POINT. Каталог является точкой повторной обработки.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00000800</td><td class="cont" width="90%">FILE_ATTRIBUTE_COMPRESSED. Файл или каталог сжат. Для файла это означает, что все данные его сжаты, для каталога - что компрессия по умолчанию применяется ко всем его файлам и подкаталогам.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00001000</td><td class="cont" width="90%">FILE_ATTRIBUTE_OFFLINE. Данные файла не доступны непосредственно. Означает, что реальные данные файла были физически перемещены на устройства хранения.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00002000</td><td class="cont" width="90%">FILE_ATTRIBUTE_NOT_CONTENT_INDEXED. Этот файл или каталог не будут индексироваться службой индексирования.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00004000</td><td class="cont" width="90%">FILE_ATTRIBUTE_ENCRYPTED. Файл или каталог зашифрован. Для файла, это означает, что все данные в файле зашифрованы. Для директория, это означает, что шифрование является умолчанием для вновь созданных файлов и подкаталогов.</td></tr>
<tr class="cont"><td class="cont" width="10%">0x00010000</td><td class="cont" width="90%">FILE_ATTRIBUTE_VIRTUAL. Этот файл - виртуальный файл.</td></tr>
</table>
Да, идеально было бы один раз.
Но спрятать значения в стиль тоже было бы хорошо (для последующих изменений), однако таблиц много, значения разные, и внятные имена стилям вряд ли не получится задать, а значит почти весь смысл теряется...
Поиск в \fardev\enc\enc_rus2:
"cont" width=" - 235 файлов
"cont" width="40%" - 230 файлов
Я думаю, что для 230 файлов есть смысл завести ещё два стиля для колонок в таблицах.
Кроме 40/60, нашел ещё 30/10/60, 30/70, 10/90, 25/10/10/55, 20/20/60 - по одной-две таблицы.
В них можно, не создавая стилей, прописать один раз для каждой таблицы width каждой колонки. Это будет лучше, чем писать его для каждой ячейки каждой строки каждой таблицы.
table.cont td {...} /* Для всех клеток таблицы со стилем "cont" */
table.cont tr.header td {...} /* Для всех клеток таблицы со стилем "cont" в строке со стилем "header" */
table.cont td.somestyle {...} /* Для всех клеток со стилем "somestyle " таблицы со стилем "cont" */
<table class="cont">
<tr class="cont"><th class="cont" width="10%">Атрибут</th><th class="cont" width="90%">Описание</th></tr>
<tr class="cont"><td class="cont" width="10%">0x00000001</td><td class="cont" width="90%">FILE_ATTRIBUTE_READONLY. Файл только для чтения. Приложения могут читать такой файл, но не могут записывать или удалять его.</td></tr>
Во всех таблицах стройные ряды значений процентов.
Можно ли от этого избавиться с помощью стилей?
Тут вот уже написали, Как Это можно делать. А я хочу внести немного разброда и шатаний на тему, Что можно было бы делать Вместо Этого.
Во-первых, если ширину колонок вообще не указывать, браузер в большинстве случаев сам сделает как надо. Исключение — если в правой колонке будет много текста, он может для левой выбрать слишком маленькую ширину, и текст будет переноситься. Ну так на это есть white-space: nowrap:
Во-вторых, я вообще не уверен, что список пар <константа, описание> в действительности имеет табличный характер. На мой взгляд, это типичный definition list. Он обладает теми преимуществами, что более экономно расходует горизонтальное пространство и, следовательно, лучше выглядит на узких экранах.
И ещё пару замечаний о семантической вёрстке и типографике.
<tr class="cont"><td class="cont" width="10%">0x00000001</td><td class="cont" width="90%">FILE_ATTRIBUTE_READONLY. Файл только для чтения. Приложения могут читать такой файл, но не могут записывать или удалять его.</td></tr>
Фрагменты программного кода, такие как 0x00000001 и FILE_ATTRIBUTE_READONLY, нужно заключать в <code>…</code>. (Фрагменты вывода программ, в том числе строки из пользовательского интерфейса — в <samp>. Пользовательский ввод и нажимаемые клавиши — в <kbd>. <tt> не несёт семантической нагрузки и не должен использоваться.)
<tr class="cont"><td class="cont" width="10%">0x00000800</td><td class="cont" width="90%">FILE_ATTRIBUTE_COMPRESSED. Файл или каталог сжат. Для файла это означает, что все данные его сжаты, для каталога - что компрессия по умолчанию применяется ко всем его файлам и подкаталогам.</td></tr>
Здесь после «для каталога» должно быть тире (—), а не дефис.