2013-11-03 9 views
7

Chciałbym ustawić tło i obramowanie zaokrąglony na <tbody/>, takich jakCzy istnieje czysty sposób na uzyskanie granic na <tbody /> w czystym CSS?

tbody { border-radius: 15px; border: 1px solid black; background: #ccf; } 

Jednak, gdy próbuję to w Codepen, z kolorowym wyświetlaczem obramowania i tła, ale <tbody/> nadal ma kwadratowe narożniki .

jestem w stanie obejść ten problem stosując szereg :last-child i :first-child selektorów zastosować promień do indywidualnych td s na rogach, jak na przykład

tbody tr:first-child td:first-child { border-top-left-radius: 15px; } 

This version does what I want (przynajmniej pod firefox), ale jest także wyjątkowo gadatliwy i hacky - problem, który pogorszy się dopiero po dodaniu prefiksowanych wersji pod kątem zgodności (-moz-, -webkit- itp.) oraz obsługi elementów <th/> oprócz <td/>. Czy istnieje zwięzły, czysty sposób na uzyskanie tego zachowania?

+0

miałem dokładnie ten problem jakiś czas temu iw zasadzie doszedł do tego samego przykładu wykonania, że ​​nie. 'tbody' to rodzaj dziwnej kaczki, jeśli chodzi o CSS. –

Odpowiedz

5

Zakładając, że zwinąłeś brzegi w tabeli, po prostu ustaw display:block na tbody i zastosuj border-radius.

Codepen example

CSS

table { 
    width: 100%; 
    border-collapse: collapse; 
    display: block; 
    width: 600px; 
} 

tbody { 
    background: #ccf; 
    border: 1px solid black; 
    border-radius: 15px; 
    display: block; 
} 

th, td { 
    width: 200px; 
} 

td, th { 
    padding: 5px; 
    text-align: center; 
} 
+2

Wydaje się, że oddzielają one szerokości kolumn od tych w '' – Dan

+2

@ Dan Masz rację - to cecha elementu blokowego. Musiałbyś ustawić określoną szerokość. http://codepen.io/JoshC/pen/emJah –

Powiązane problemy