Подтвердить что ты не робот

Как добавить граничный радиус в строку таблицы

Кто-нибудь знает, как стилить tr, как нам нравится?

Я использовал border-collapse на таблице, после этого tr может отобразить 1px сплошную границу, которую я им даю.

Однако, когда я пробовал -moz-border-radius, он не работает. Даже простая маржа не работает.

4b9b3361

Ответ 1

Вы можете применить только радиус границы к td, а не tr или таблице. Я использовал это для скругленных угловых таблиц, используя эти стили:

table { border-collapse: separate; }
td { border: solid 1px #000; }
tr:first-child td:first-child { border-top-left-radius: 10px; }
tr:first-child td:last-child { border-top-right-radius: 10px; }
tr:last-child td:first-child { border-bottom-left-radius: 10px; }
tr:last-child td:last-child { border-bottom-right-radius: 10px; }

Обязательно укажите все префиксы поставщика. Здесь пример этого в действии.

Ответ 2

Фактическое расстояние между строками

Это старый поток, но я заметил, что читал комментарии от OP по другим ответам, что исходная цель, по-видимому, имела border-radius в строках и пробелы между строками. Не похоже, что текущие решения именно это делают. Ответ theazureshadow направляется в правильном направлении, но, похоже, немного больше.

Для тех, кто интересуется такими, вот скрипка, которая разделяет строки и применяет радиус для каждой строки. (ПРИМЕЧАНИЕ: В настоящее время Firefox имеет ошибку при отображении/обрезке background-color на радиусах границы.)

Код выглядит следующим образом (и, как отметил theazureshadow, для более ранней поддержки браузера необходимы дополнительные префиксы для border-radius поставщиков).

table { 
    border-collapse: separate; 
    border-spacing: 0 10px; 
    margin-top: -10px; /* correct offset on first border spacing if desired */
}
td {
    border: solid 1px #000;
    border-style: solid none;
    padding: 10px;
    background-color: cyan;
}
td:first-child {
    border-left-style: solid;
    border-top-left-radius: 10px; 
    border-bottom-left-radius: 10px;
}
td:last-child {
    border-right-style: solid;
    border-bottom-right-radius: 10px; 
    border-top-right-radius: 10px; 
}

Ответ 3

Информация о бонусе: border-radius не влияет на таблицы с border-collapse: collapse; и границей на td. И не имеет значения, если border-radius установлен на table, tr или td -it проигнорирован.

http://jsfiddle.net/Exe3g/

Ответ 4

Я думаю, что разрушение ваших границ - это не то, что нужно делать в этом случае. Свертывание их в основном означает, что граница между двумя соседними ячейками становится общей. Это означает, что неясно, в каком направлении он должен кривать с учетом радиуса.

Вместо этого вы можете дать радиус границы двум левым углам первого TD и двум правым углам последнего. Вы можете использовать селектора first-child и last-child, как предложено theazureshadow, но они могут плохо поддерживаться более старыми версиями IE. Может быть проще просто определить классы, такие как .first-column и .last-column для этой цели.

Ответ 5

Согласно Opera, стандарт CSS3 не определяет использование border-radius для TD. Мой опыт в том, что Firefox и Chrome поддерживают его, но Opera не делает (не знаю об IE). Обходной путь состоит в том, чтобы обернуть содержимое td в div и затем применить border-radius к div.

Ответ 6

Элемент tr выполняет почетный радиус. Может использовать чистые html и css, не javascript.

JSFiddle link: http://jsfiddle.net/pflies/zL08hqp1/10/

tr {
    border: 0;
    display: block;
    margin: 5px;
}
.solid {
    border: 2px red solid;
    border-radius: 10px;
}
.dotted {
    border: 2px green dotted;
    border-radius: 10px;
}
.dashed {
    border: 2px blue dashed;
    border-radius: 10px;
}

td {
    padding: 5px;
}
<table>
    <tr>
        <td>01</td>
        <td>02</td>
        <td>03</td>
        <td>04</td>
        <td>05</td>
        <td>06</td>
    </tr>
    <tr class='dotted'>
        <td>07</td>
        <td>08</td>
        <td>09</td>
        <td>10</td>
        <td>11</td>
        <td>12</td>
    </tr>
    <tr class='solid'>
        <td>13</td>
        <td>14</td>
        <td>15</td>
        <td>16</td>
        <td>17</td>
        <td>18</td>
    </tr>
    <tr class='dotted'>
        <td>19</td>
        <td>20</td>
        <td>21</td>
        <td>22</td>
        <td>23</td>
        <td>24</td>
    </tr>
    <tr class='dashed'>
        <td>25</td>
        <td>26</td>
        <td>27</td>
        <td>28</td>
        <td>29</td>
        <td>30</td>
    </tr>
</table>

Ответ 7

Я обнаружил, что добавление граничного радиуса в таблицы, trs и tds не работает на 100% в последних версиях Chrome, FF и IE. Вместо этого я делаю это, я обертываю таблицу div и накладываю на нее граничный радиус.

<div class="tableWrapper">
  <table>
    <tr><td>Content</td></tr>
  <table>
</div>

.tableWrapper {
  border-radius: 4px;
  overflow: hidden;
}

Если ваша таблица не width: 100%, вы можете сделать свою обертку float: left, просто не забудьте очистить ее.

Ответ 8

Не пытаясь получить какие-либо кредиты здесь, все кредиты идут на @theazureshadow для его ответа, но мне лично пришлось адаптировать его для таблицы, для которой есть <th> вместо <td> для ее ячеек первой строки.

Я просто размещаю измененную версию здесь, если некоторые из вас захотят использовать решение @theazureshadow, но, как и я, у меня есть <th> в первом <tr>. Класс "reportTable" должен применяться только к самой таблице.:

table.reportTable {
    border-collapse: separate;
    border-spacing: 0;
}

table.reportTable td {
    border: solid gray 1px;
    border-style: solid none none solid;
    padding: 10px;
}

table.reportTable td:last-child {
    border-right: solid gray 1px;
}

table.reportTable tr:last-child td{
    border-bottom: solid gray 1px;
}

table.reportTable th{
    border: solid gray 1px;
    border-style: solid none none solid;
    padding: 10px;
}

table.reportTable th:last-child{
    border-right: solid gray 1px;
    border-top-right-radius: 10px;
}

table.reportTable th:first-child{
    border-top-left-radius: 10px;
}

table.reportTable tr:last-child td:first-child{
    border-bottom-left-radius: 10px;
}   

table.reportTable tr:last-child td:last-child{
    border-bottom-right-radius: 10px;
}

Не стесняйтесь настраивать прокладки, радиусы и т.д. в соответствии с вашими потребностями. Надеюсь, что это поможет людям!

Ответ 9

Или используйте тень окна, если таблица обрушилась