Это возможно, но не все что легкий, для создания гибридной собственной/управляемой сборки в C#. Если бы Вы были использующий C++ вместо этого, то это было бы намного легче, поскольку компилятор Visual C++ может создать гибридные блоки так же легко как что-либо еще.
, Если у Вас нет строгого требования для создания гибридного блока, я согласился бы с MusiGenesis, что это не действительно стоит проблемы, чтобы сделать с C#. Если необходимо сделать это, возможно, посмотрите на перемещение в C++ / CLI вместо этого.
Использование div
в td
не хуже, чем любой другой способ использования таблиц для разметки. (Однако некоторые люди никогда не используют таблицы для разметки, и я один из них.)
Если вы используете div
в td
, вы, однако, попадете в ситуацию где может быть трудно предсказать размер элементов. По умолчанию для div ширина определяется по родительскому элементу, а для ячейки таблицы по умолчанию определяется размер в зависимости от размера содержимого.
Правила того, как div
должен be Size хорошо определен в стандартах, но правила того, как td
должны иметь размер, не так хорошо определены, поэтому разные браузеры используют несколько разные алгоритмы.
После проверки XHTML DTD I обнаружил, что элементу
Вот соответствующие правила DTD:
<!ELEMENT td %Flow;>
<!-- %Flow; mixes block and inline and is used for list items etc. -->
<!ENTITY %Flow "(#PCDATA | %block; | form | %inline; | %misc;>
<!ENTITY %block "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
Нет. Не обязательно.
Если вам нужно разместить DIV в TD, убедитесь, что вы правильно используете TD. Если вас не интересуют табличные данные и семантика, то вам, в конечном итоге, наплевать на DIV в TD. Я не думаю, что это проблема - если у вас есть , все в порядке.
Согласно спецификации HTML
A Ячейка таблицы может законно содержать элементы уровня блока, так что это, по сути, не является ошибкой. Браузерная реализация, конечно же, оставляет эту теоретико-умозрительную позицию. Это может вызвать проблемы с компоновкой и ошибки. Хотя таблицы использовались для компоновки - а иногда до сих пор используются - я полагаю, что большинство браузеров будут правильно отображать контент. Даже IE. Он нарушает семантику , вот и все. Он работает нормально, но в будущем могут появиться программы чтения с экрана или что-то еще, что не понравится обрабатывать ваш HTML, если вы "нарушите семантику".
2 .
Похожие вопросы: