Межстрочный интервал с закругленными границами в 1 пиксель

Я не могу найти подходящий ответ для этого.

<table class="table1">
<tr>
    <td class="red header" colspan="4">
        Table1 header</td>
</tr>
...
<tr>
    <td class="red footer" colspan="4">Footer</td>
</tr>

<table class="table2">
<tr>
    <td class="red header" colspan="4">
        Table2 header</td>
</tr>
...
<tr>
    <td class="red footer" colspan="4">Footer</td>
</tr>

table {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
border: 1px solid #000;
}

.table1 {
border-spacing: 0;
}

.table2 {
border-collapse: collapse;
}

.footer {
-moz-border-bottom-right-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
border-bottom-right-radius: 5px;
-moz-border-bottom-left-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
border-bottom-left-radius: 5px;
}

.header {
-moz-border-top-right-radius: 5px;
-webkit-border-top-right-radius: 5px;
border-bottom-top-radius: 5px;
-moz-border-top-left-radius: 5px;
-webkit-border-top-left-radius: 5px;
border-top-left-radius: 5px;
text-align: center;
}

td {
border: 1px solid #000;
}

http://jsfiddle.net/uXUnm/

Как вы видете, table1 имеет границу 2px (я бы хотел 1px), table2 не имеет округленных границ. border-collapse:collapse; исправляет первую проблему, вызванную border-spacing: 0; но ломает округления. Может кто-нибудь сказать мне способ исправить обе проблемы, не связываясь с :first-child, last-child и т.д. селекторы?

1 ответ

Вот мой фиксированный css:

table {
    border:1px solid black;
    border-radius: 5px;
    border-spacing: 0;
}
table td:first-child, table td:not(:first-child):not(:last-child){
    border-right:1px solid black;
}
table tr:first-child td, table tr:not(:last-child) td {
    border-bottom:1px solid black;
}

table thead tr:first-child  td:first-child {
    -webkit-border-top-left-radius: 2px;
    -moz-border-radius-topleft: 2px;
    border-top-left-radius: 2px;
}

table thead tr:first-child  td:last-child {
    -webkit-border-top-right-radius:2px;
    -moz-border-radius-topright: 2px;
    border-top-right-radius: 2px;
}
table tbody tr:last-child  td:first-child {
    -webkit-border-bottom-left-radius: 2px;
    -moz-border-radius-bottomleft: 2px;
    border-bottom-left-radius: 2px;
}

table tbody tr:last-child  td:last-child {
    -webkit-border-bottom-right-radius: 2px;
    -moz-border-radius-bottomright: 2px;
    border-bottom-right-radius: 2px;
}

Вы можете установить border-radius: 5px; любой стоимости, и она будет работать отлично!

Другие вопросы по тегам