api.farmanager.com: валидизация html

Здесь можно обсудить сайт Far Manager и предложить идеи по его дальнейшему развитию.
User avatar
Px
Posts: 826
Joined: Fri 08 Sep, 2006 15:52
Location: Вишнёвый (под Киевом)
Contact:

Re: api.farmanager.com: валидизация html

Post by Px »

Latest post of the previous page:

Лучше <br />
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: api.farmanager.com: валидизация html

Post by Centaur »

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:

Code: Select all

<p>P. Sherman<br>
42 Wallaby Way<br>
Sydney</p>
br elements must not be used for separating thematic groups in a paragraph.

<br /> — это XHTML’ная форма <br>. Если в начале файла сказано

Code: Select all

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
пишем <br />, <hr />, <img alt="…" src="…" />; если

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
— пишем <br>, <hr>, <img alt="…" src="…">.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: api.farmanager.com: валидизация html

Post by John Doe »

Centaur wrote: <p>…</p> — это один абзац текста. Их можно использовать в том числе и в таблицах, и в списках.

<br> — это перенос строки внутри абзаца. Черновик спецификации HTML5 говорит:
Мануалы смотрел, и спрашиваю именно потому что практика с ними расходится.
Сформулирую вопрос так: есть ли какой-нибудь практический смысл в некоторых местах всё же использовать <br> вместо <p>?
Вроде как <p> добавляет интервал между абзацами...
Может для таблиц это не желательно и т.п.?
Centaur wrote:

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
В Энциклопедии указано <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">.
Есть ли смысл поменять на 4.01?
Centaur wrote:

Code: Select all

        "http://www.w3.org/TR/html4/loose.dtd">
Такого в Энциклопедии нет.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: api.farmanager.com: валидизация html

Post by HaRT »

John Doe wrote:Существуют ли на этот счёт какие-нибудь рекомендации?
Скажу банальность: <p> — это тэг абзаца; <br> — это тэг разрыва строки без образования нового абзаца. В принципе у абзаца могут быть такие параметры, как красная строка, вертикальные отступы перед и после, межстрочный интервал и пр.; да и с выравниванием разрыв строки взаимодействует иначе. Т.ч. эти два тэга — это просто разные вещи, хотя иногда и похожие.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: api.farmanager.com: валидизация html

Post by Centaur »

John Doe wrote:Сформулирую вопрос так: есть ли какой-нибудь практический смысл в некоторых местах всё же использовать <br> вместо <p>?
Нет.
John Doe wrote:Вроде как <p> добавляет интервал между абзацами...
Может для таблиц это не желательно и т.п.?
Если и так, то решать это нужно правильными стилями, а не уродованием разметки.
John Doe wrote:В Энциклопедии указано <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">.
Есть ли смысл поменять на 4.01?
Изменения между 4.0 и 4.01 не слишком существенны.
John Doe wrote:
Centaur wrote:

Code: Select all

        "http://www.w3.org/TR/html4/loose.dtd">
Такого в Энциклопедии нет.
К валидатору.

В спецификации XML сказано, что, когда в Document Type Declaration используется PUBLIC идентификатор, за ним должно следовать два строковых литерала. Как с этим в SGML — не знаю, скорее всего полный бардак. Чисто из соображений дисциплины предпочитаю максимально соответствовать синтаксису XHTML.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: api.farmanager.com: валидизация html

Post by John Doe »

Centaur wrote:
John Doe wrote:
Centaur wrote:

Code: Select all

        "http://www.w3.org/TR/html4/loose.dtd">
Такого в Энциклопедии нет.
К валидатору.
Валидатор не настаивает, иначе бы я не спрашивал.
Значит эту строку стоит добавить?
Centaur wrote:
John Doe wrote:В Энциклопедии указано <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">.
Есть ли смысл поменять на 4.01?
Изменения между 4.0 и 4.01 не слишком существенны.
Поэтому и спрашиваю: Есть ли смысл просто заменить на 4.01?
Centaur wrote:Если и так, то решать это нужно правильными стилями, а не уродованием разметки.
Кстати о стилях: типичная ситуация в энциклопедии:


Во всех таблицах стройные ряды значений процентов.
Можно ли от этого избавиться с помощью стилей?
g_max
Posts: 88
Joined: Mon 20 Mar, 2006 15:19
Location: Винница

Re: api.farmanager.com: валидизация html

Post by g_max »

Без стилей:

Code: Select all

<table class="cont">
  <col width="40%">
  <col width="60%">
  <tr>
    <td>name</td>
    <td>description</td>
  </tr>
</table>
Со стилями (которые надо прописать соответственно):

Code: Select all

<table class="cont">
  <col class="forty">
  <col class="sixty">
  <tr>
    <td>name</td>
    <td>description</td>
  </tr>
</table>
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: api.farmanager.com: валидизация html

Post by John Doe »

Из примера видно, что смысла в этом мало...
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: api.farmanager.com: валидизация html

Post by t-rex »

а если пример изменить вот так?

Code: Select all

<table class="cont">
  <col class="name">
  <col class="description">
  <tr>
    <td>name</td>
    <td>description</td>
  </tr>
</table>
g_max
Posts: 88
Joined: Mon 20 Mar, 2006 15:19
Location: Винница

Re: api.farmanager.com: валидизация html

Post by g_max »

Смысл в том, чтобы формат задавать один раз в таблице - стилями или напрямую - а не в каждом ряду или ячейке.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: api.farmanager.com: валидизация html

Post by John Doe »

Да, идеально было бы один раз.
Но спрятать значения в стиль тоже было бы хорошо (для последующих изменений), однако таблиц много, значения разные, и внятные имена стилям вряд ли не получится задать, а значит почти весь смысл теряется...
g_max
Posts: 88
Joined: Mon 20 Mar, 2006 15:19
Location: Винница

Re: api.farmanager.com: валидизация html

Post by g_max »

Поиск в \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 каждой колонки. Это будет лучше, чем писать его для каждой ячейки каждой строки каждой таблицы.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: api.farmanager.com: валидизация html

Post by John Doe »

g_max wrote:Это будет лучше, чем писать его для каждой ячейки каждой строки каждой таблицы.
Однозначно!
А можно ли похожим образом оптимизировать атрибут class="cont"? (В примере выше)
Или необходимо указывать его для каждой ячейки?
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: api.farmanager.com: валидизация html

Post by Max Rusov »

Стили можно указывать так:

Code: Select all

table.cont td {...}  /* Для всех клеток таблицы со стилем "cont" */

table.cont tr.header td {...} /* Для всех клеток таблицы со стилем "cont" в строке со стилем "header" */

table.cont td.somestyle {...} /* Для всех клеток со стилем "somestyle " таблицы со стилем "cont" */
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: api.farmanager.com: валидизация html

Post by John Doe »

Max Rusov wrote:Стили можно указывать так:
После всех рекомендованых табличных оптимизаций general.html похудел почти в полтора раза!

Прошу знатоков посмотреть, можно ли ещё что-то улучшить вот в такой обычной таблице:
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: api.farmanager.com: валидизация html

Post by Centaur »

John Doe (про loose.dtd)) wrote:Значит эту строку стоит добавить?
В спецификации HTML 4.0 уже тоже рекомендовали писать. Да, стоит.
John Doe wrote:Есть ли смысл просто заменить на 4.01?
Да. Но пройтись валидатором ещё раз после замены.
John Doe wrote:Кстати о стилях: типичная ситуация в энциклопедии:

Во всех таблицах стройные ряды значений процентов.
Можно ли от этого избавиться с помощью стилей?
Тут вот уже написали, Как Это можно делать. А я хочу внести немного разброда и шатаний на тему, Что можно было бы делать Вместо Этого.

Во-первых, если ширину колонок вообще не указывать, браузер в большинстве случаев сам сделает как надо. Исключение — если в правой колонке будет много текста, он может для левой выбрать слишком маленькую ширину, и текст будет переноситься. Ну так на это есть white-space: nowrap:

Code: Select all

tr>th:first-child, tr>td:first-child { white-space: nowrap }
Во-вторых, я вообще не уверен, что список пар <константа, описание> в действительности имеет табличный характер. На мой взгляд, это типичный definition list. Он обладает теми преимуществами, что более экономно расходует горизонтальное пространство и, следовательно, лучше выглядит на узких экранах.

И ещё пару замечаний о семантической вёрстке и типографике.

Code: Select all

<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> не несёт семантической нагрузки и не должен использоваться.)

Code: Select all

<tr class="cont"><td class="cont" width="10%">0x00000800</td><td class="cont" width="90%">FILE_ATTRIBUTE_COMPRESSED. Файл или каталог сжат. Для файла это означает, что все данные его сжаты, для каталога - что компрессия по умолчанию применяется ко всем его файлам и подкаталогам.</td></tr>
Здесь после «для каталога» должно быть тире (—), а не дефис.

Code: Select all

<tr class="cont">
    <td class="cont" width="40%">N=<dfn><a name="abs">abs</a></dfn>(N)</td>
    <td class="cont" width="60%">Возвращает абсолютную величину числового аргумента <em>N</em>.</td>
  </tr>
N=<dfn><a name="abs">abs</a></dfn>(N) должно быть в <code>…</code> (если мы считаем макроязык за язык программирования. А мы, видимо, считаем).

<dfn><a name="abs">abs</a></dfn> можно короче записать как <dfn id="abs">abs</dfn>.

<em>N</em>: N выделяется курсивом не потому, что это <em>что-то важное</em>, а потому, что это <var>переменная</var>.
Post Reply

Return to “Обсуждение www.farmanager.com”