テーブルが LI 要素内にある場合、テーブルの非常に奇妙なマージン動作を見つけました。LI 内では、TABLE の上部に追加のマージンがあり、「マージン」または「パディング」CSS スタイルを使用してキャンセルすることはできません。これをキャンセルする唯一の方法は -- LI に "display: block" を設定することです (デフォルトでは "display: list-item" です)。コードは次のとおりです。
<!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にはマージンがありませんが、一緒に...
アップデート。このマージンは、Google Chrome (24.0.1312.68) でのみ表示されます。Mozilla Firefox (18.0.2) では余白がなく、ページは期待どおりに表示されます (スクリーンショット #2)。