Если вы хотите добавить пробел между элементами HTML (используя CSS), к какому элементу вы присоедините его?Где вы помещаете свои поля CSS?
Я регулярно нахожусь в ситуации вдоль этих линий:
<body>
<h1>This is the heading</h1>
<p>This is a paragraph</p>
<h1>Here's another heading</h1>
<div>This is a footer</div>
</body>
Теперь, скажем, я хотел 1em пространства между каждым из этих элементов, но ни над первым h1 или ниже последними дел. К каким элементам я должен его прикрепить?
Очевидно, что нет никакой реальной технической разницы между этим:
h1, p { margin-bottom: 1em; }
... и это ...
div { margin-top: 1em; }
p { margin-top: 1em; margin-bottom: 1em }
Что меня интересуют является вторичными факторами:
- Консистенция
- Применимость ко всем ситуациям
- Удобство/простота
- Удобство внесения изменений
Например: в данном конкретном случае, я бы сказал, что первое решение лучше, чем второй, так как это проще; вы привязываете только крайность к двум элементам в одном определении свойства. Тем не менее, я ищу более универсальное решение. Каждый раз, когда я работаю с CSS, у меня возникает ощущение, что есть хорошее правило для применения ... но я не уверен, что это такое. У кого-нибудь есть хороший аргумент?
Если вы не против того, чтобы избегать IE6, вы всегда можете отказаться от псевдоселекторов CSS2: first-child и last-child, чтобы делать ставки! – 2009-12-04 18:44:53