Во-первых, вы должны использовать семантическую разметку. Если что-то является заголовком и содержимым, пометьте его как таковое тегами заголовка и абзаца. Это поможет вам выйти из «табличного» мышления, если вы попытаетесь эмулировать свою разметку и стили, такие как таблица, разметка должна стоять на первом месте, CSS может последовать.
Следующее должно делать то, что вы хотите:
<style type="text/css">
* {
margin:0px;
padding:0px;
}
.box {
border: solid 1px #BBBBBB;
margin:10px;
}
.box h3 {
padding: 4px;
border-bottom: solid 1px #BBBBBB;
background-color: #DDDDDD;
}
.box p {
padding: 6px;
}
</style>
<div class='box'>
<h3>please help make these divs stop overlapping</h3>
<p>please help make these divs stop overlapping</p>
</div>
Размышление о разметке и стиле отдельно - путь к CSS Zen Mastery: o)