- Чаще всего HTMLayout изменяет DOM-tree для упрощения форматирования строк внутри структурных блоков (например div-ов). В таких случаях HTMLayout обрамляет строку тегом text. Простой пример применения этого правила можно найти в спецификации CSS 2.1 http://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level
- В некоторых случаях behavior может взять на себя обязанности по "достраиванию" DOM-tree, что позволяет упростить html-код и избавить пользователя от рутинных описаний реализации. Типичный пример - упрощение комбобокса.
<select name="Alignment" size="1">
<option value="left">Left</option>
<option value="right">Right</option>
<option value="center">Center</option>
</select>
( код взят из примера HTMLayoutSDK\html_samples\form-test.htm)
Данная структура точно описывает семантику комбобокса с точки зрения человека, однако совершенно не годится для HTMLayout, поэтому строчки преобразовываются в<select name="Alignment" size="1">
<caption value="center">Center</caption>
<button role="dropdown" tabindex="-1"></button>
<popup type="select">
<option value="left">Left</option>
<option value="right">Right</option>
<option value="center">Center</option>
</popup>
</select> - Особенность реализации таблиц внутри HTMLayout.
<table>
<tr><td colspan="2">colspan</td></tr>
<tr><td>1</td><td>2</td></tr>
</table>
1. Первая строка будет иметь двух детей
2. Хендл второго ребенка будет нулевым.
Отдельное спасибо Jim Epler за пост со ссылкой на HTML Encoder
Комментариев нет:
Отправить комментарий