Запрет HTML Tidy добавление элементов li - PullRequest
1 голос
/ 16 декабря 2011

Я использую HTML Tidy для вывода красивого исходного кода HTML и для окончательной проверки кодировки.

Однако это очень простой список, такой как:

<ul id="navigation">
            <a href="index.php"><li>Summary</li></a>
            <a href="#"><li>Upload</li></a>
            <a href="accounts.php"><li>Accounts</li></a>
        </ul>

и преобразование его в это чудовище:

 <ul id="navigation">
        <li style="list-style: none">
          <a href="index.php"></a>
        </li>
        <li id="active">Summary
        </li>

        <li style="list-style: none">
          <a href="#"></a>
        </li>
        <li>Upload
        </li>
        <li style="list-style: none">
          <a href="accounts.php"></a>
        </li>
        <li>Accounts
        </li>

      </ul>

Как мне изящно сказать, чтобы я оставил свой список в покое?

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

Ответы [ 4 ]

2 голосов
/ 16 декабря 2011

Это на самом деле пытается исправить вашу разметку, чтобы она соответствовала стандартам, ваши теги <li> должны быть вокруг тегов <a>, а не наоборот, возможно, если вы исправите это, то он не будет пытаться добавить дополнительные элементы в список.

Вы можете удалить часть стиля, просто измените свой CSS так:

ul.navigation li
{
    list-style: none;
}
1 голос
/ 16 декабря 2011

Ваш список недействителен;элемент ul может содержать только элементы li.На самом деле, Tidy применяет наиболее разумный общий подход к исправлению такой сломанной разметки: он превращает любой контент, кроме li, в элемент li, для которого подавляется подстановка списка.

Поэтому вручную измените разметку как

<a href="index.php"><li>Summary</li></a>

до

<li><a href="index.php">Summary</a></li>

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

1 голос
/ 16 декабря 2011

Единственный ответ: дайте ему правильную разметку для начала.Единственный законный дочерний элемент ul - это li.Элемент a не может быть дочерним по отношению к ul.

<ul id="navigation">
    <li><a href="index.php">Summary</a></li>
    <li><a href="#">Upload</a></li>
    <li><a href="accounts.php">Accounts</a></li>
</ul>

Если вы хотите, чтобы все li можно было кликать, введите для элемента a display: block:

#navigation li a {
    display: block;
}
0 голосов
/ 16 декабря 2011

Переместите <a> теги в <li> -s:

<li><a href="index.php">Summary</a></li>
...