почему кто-то может использовать недействительный HTML? - PullRequest
0 голосов
/ 18 апреля 2011

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

Не могли бы вы объяснить, почему кому-то может понадобиться этот код?

<table>
    <form>
        <tr>
            <td></td>
        </tr>
    </form>
    <form>
        <tr>
            <td></td>
        </tr>
    </form>
</table>

А также, в каких случаях это может быть лучшетогда следующее?

<table>
    <tr>
        <td>
            <form></form>
        </td>
    </tr>        
    <tr>
        <td>
            <form></form>
        </td>
    </tr>
</table>

Или вот это:

<form>
    <table>
        <tr>
            <td></td>
        </tr>        
        <tr>
            <td></td>
        </tr>
    </table>
</form>
<form>
    <table>
        <tr>
            <td></td>
        </tr>        
        <tr>
            <td></td>
        </tr>
    </table>
</form>

----------------- РЕДАКТИРОВАТЬ Я немного поиграл на jsfiddle ине могу найти html-решение, так что, возможно, это и есть причина.

http://jsfiddle.net/WcvFj/3/

Но я все же думаю, что JS или CSS-путь были бы лучше

Ответы [ 3 ]

5 голосов
/ 18 апреля 2011

А потом кто-то сказал мне, что иногда это неправильное использование является правильным.

По определению, неверный код неверен.

Не могли бы вы объяснить, почему кому-то может понадобиться этот код?

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

Если в строке было несколько ячеек, было бы неплохо иметь форму для строки (для функции «изменить эту запись»). Однако в этом нет необходимости, поскольку вы можете присвоить каждому входу уникальное имя, а затем определить, какую строку обрабатывать, на основе какой кнопки отправки нажали (так как только нажатая кнопка отправки будет успешной и, следовательно, будет отправлена ​​пара имя / значение). на сервер).

4 голосов
/ 18 апреля 2011

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

Сегодня можно сделать это в CSS с вашей предпочтительной разметкой.

2 голосов
/ 18 апреля 2011

Насколько я знаю, пример 1 просто не является действительным html. Попробуйте запустить его через валидатор. Однако большинство браузеров будут достаточно прощающими, чтобы не обращать на это внимания.

Пример 2 и 3 абсолютно в порядке. Лично я использую пример 3 в большинстве случаев, оборачивая все содержимое, которое «принадлежит» форме, в тег формы.

...