Ответ 1
<table cellspacing="0" cellpadding="0">
И в css:
table {border: none;}
EDIT: Как отметил iGEL, это решение официально устарело (все еще работает), поэтому, если вы начинаете с нуля, вы должны пойти с решением jnpcl border-collapse.
На самом деле я совсем не люблю это изменение (часто не работаю с таблицами). Это усложняет некоторые задачи. Например. когда вы хотите включить две разные границы в одном и том же месте (визуально), а один - TOP для одной строки, а второй - BOTTOM для другой строки. Они рухнут (= будет показан только один из них). Затем вам нужно изучить, как вычисляется граничный "приоритет" и какие стили границы "сильнее" (double vs. solid и т.д.).
Мне понравилось:
<table cellspacing="0" cellpadding="0">
<tr>
<td class="first">first row</td>
</tr>
<tr>
<td class="second">second row</td>
</tr>
</table>
----------
.first {border-bottom:1px solid #EEE;}
.second {border-top:1px solid #CCC;}
Теперь, при обрыве границы, это не сработает, поскольку всегда удаляется одна граница. Я должен сделать это каким-то другим способом (есть больше решений ofc). Одна из возможностей заключается в использовании CSS3 с box-shadow:
<table class="tab">
<tr>
<td class="first">first row</td>
</tr>
<tr>
<td class="second">second row</td>
</tr>
</table>
<style>
.tab {border-collapse:collapse;}
.tab .first {border-bottom:1px solid #EEE;}
.tab .second {border-top:1px solid #CCC;box-shadow: inset 0 1px 0 #CCC;}
</style>
Вы также можете использовать что-то вроде стиля "groove | ridge | inset | outset" с одной границей. Но для меня это не оптимально, потому что я не могу контролировать оба цвета.
Может быть, есть простое и приятное решение для сбрасывания границ, но я еще не видел его, и я честно не потратил на это много времени. Может быть, кто-то здесь сможет показать мне/нам;)