Я нашел очень странное поведение маржи для таблицы, когда она находится внутри элемента LI. Внутри LI TABLE имеет дополнительный запас вверху, который нельзя отменить, используя стили CSS «margin» или «padding». Единственный способ отменить это - установить «display: block» для LI (по умолчанию это «display: list-item»). Вот код:Поведение странного поведения таблицы внутри элемента LI
<!DOCTYPE html>
<html>
<head>
<title>Strange table margin behaviour</title>
</head>
<body>
<ul>
<li style="border: 1px solid #009; margin: 0; padding: 0;"><table style="border: 1px solid #ccc; margin: 0; padding: 0;"><tr><td>test</td></tr></table></li>
<li style="border: 1px solid #009; margin: 0; padding: 0;"><table style="border: 1px solid #ccc; margin: 0; padding: 0;"><tr><td>test</td></tr></table></li>
<li style="border: 1px solid #009; margin: 0; padding: 0;"><table style="border: 1px solid #ccc; margin: 0; padding: 0;"><tr><td>test</td></tr></table></li>
</ul>
</body>
</html>
Это делает в Google Chrome, как:
Я ожидаю:
Я действительно не понимаю, почему эта разница происходит? Сам LI не имеет никаких прокладок, TABLE не имеет полей, но вместе ...
UPD. Эта маржа отображается только в Google Chrome (24.0.1312.68). В Mozilla Firefox (18.0.2) нет поля, и страница выглядит как ожидалось (снимок экрана 2).
есть какая-либо конкретная причина вы вложенность таблиц в список вроде этого? Конечно, было бы проще/лучше стилизовать таблицы без использования списков. Или даже используйте div вместо списков, если вам отчаянно нужно их обернуть. Списки IMO следует использовать для отображения отдельных элементов, а не таблиц элементов. – lukeocom
Да, причина в том, что мне нужно отобразить дерево, где каждый внутренний элемент имеет форму html и выглядит как [this] (http: // screenshot. су/show.php? IMG = 88cb29678efe7e3c8c2b5b60b0b1eac0.jpg). Да, есть и другие способы сделать это, но я интересуюсь этим аспектом для будущего. –