Про border-spacing: 0px все понятно. Но почему разрывы горизонтальных линий в таблице преодолеваются только при разделенных (border-collapse: separate;) соседних вертикальных границах ячеек? Почему при схлопывании в одну вертикальную линию двух соседних вертикальных границ при нулевой ширине этой линии остается как-бы пустое место для нее, которое отображается на всех горизонтальных линиях как разрыв? Следуя этой логике, при несхлопнувшихся вертикальных границах ячеек (border-collapse: separate;) должно оставаться двойное пустое место, которое отображалось бы на всех горизонтальных линиях как разрыв в двое больший, чем в первом случае. Но ведь этого не происходит. Почему с границами ячеек все устроенно именно так?
Вопрос несколько риторический получился, если вы имеете ввиду, почему таблицы устроены именно так. Конкретизируйте, пожалуйста, что именно нужно уточнить по заданию.
По логике, при несхлопнувшихся вертикальных границах ячеек (border-collapse: separate;) должно оставаться двойное пустое место. Но его нет. Почему его нет?
О том, как устроены отступы в таблицах, можно почитать в соответствующем разделе спецификации. Почему именно так — исторически сложилось в процессе развития HTML и его формализации комитетом, пишущим спецификации.