Sie können den Randradius nur auf td anwenden, nicht auf tr oder table. Ich habe dies für abgerundete Ecktische mithilfe der folgenden Stile umgangen:
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; }
Stellen Sie sicher, dass Sie alle Herstellerpräfixe angeben. Hier ist ein Beispiel dafür in Aktion .
border-collapse: separate;
funktioniert dies nicht.separate
wird für Chrome 44 benötigt.Tatsächlicher Abstand zwischen Zeilen
Dies ist ein alter Thread, aber ich habe bemerkt, dass ich die Kommentare des OP zu anderen Antworten gelesen habe, die das ursprüngliche Ziel anscheinend in
border-radius
den Zeilen und Lücken zwischen den Zeilen hatte. Es scheint nicht, dass die aktuellen Lösungen genau das tun. Die Antwort von theazureshadow geht in die richtige Richtung, scheint aber etwas mehr zu brauchen.Für diejenigen, die daran interessiert sind, ist hier eine Geige, die die Zeilen trennt und den Radius auf jede Zeile anwendet. (HINWEIS: Firefox hat derzeit einen Fehler beim Anzeigen / Ausschneiden
background-color
an den Randradien .)Der Code lautet wie folgt (und wie im folgenden Schatten erwähnt, wurden für die frühere Browserunterstützung die verschiedenen Herstellerpräfixe
border-radius
hinzugefügt , die benötigt werden).quelle
Bonusinfo:
border-radius
hat keine Auswirkung auf Tabellen mitborder-collapse: collapse;
und auf gesetztem Rahmentd
. Und es spielt keine Rolle , wennborder-radius
gesetzt auftable
,tr
odertd
-e ist ignoriert.http://jsfiddle.net/Exe3g/
quelle
Das tr-Element berücksichtigt den Randradius. Kann reines HTML und CSS verwenden, kein Javascript.
JSFiddle-Link: http://jsfiddle.net/pflies/zL08hqp1/10/
quelle
Ich denke, dass es in diesem Fall falsch ist, Ihre Grenzen zu stürzen. Das Reduzieren bedeutet im Grunde, dass die Grenze zwischen zwei benachbarten Zellen geteilt wird. Dies bedeutet, dass unklar ist, in welche Richtung die Kurve bei einem Radius gebogen werden soll.
Stattdessen können Sie den beiden linken Ecken des ersten TD und den beiden rechten Ecken des letzten TD einen Randradius zuweisen. Sie können
first-child
undlast-child
Selektoren verwenden, wie von theazureshadow vorgeschlagen, aber diese werden möglicherweise von älteren Versionen des IE schlecht unterstützt. Es ist möglicherweise einfacher, nur Klassen zu definieren, z. B..first-column
und.last-column
diesem Zweck zu dienen.quelle
Laut Opera definiert der CSS3-Standard nicht die Verwendung von
border-radius
TDs. Ich habe die Erfahrung gemacht, dass Firefox und Chrome dies unterstützen, Opera jedoch nicht (ich weiß nichts über IE). Die Problemumgehung besteht darin, den td-Inhalt in ein div zu verpacken und das dannborder-radius
auf das div anzuwenden .quelle
Da ich hier nicht versuche, Credits aufzunehmen, geht das gesamte Credit an @theazureshadow für seine Antwort, aber ich musste es persönlich für eine Tabelle anpassen, die einige
<th>
anstelle der<td>
Zellen der ersten Zeile enthält.Ich poste nur die modifizierte Version hier, falls einige von Ihnen die Lösung von @ theazureshadow verwenden möchten, aber wie ich einige
<th>
in der ersten haben<tr>
. Die Klasse "reportTable" muss nur auf die Tabelle selbst angewendet werden:Sie können die Polster, Radien usw. jederzeit an Ihre Bedürfnisse anpassen. Hoffe das hilft den Leuten!
quelle
Ich habe festgestellt, dass das Hinzufügen eines Rahmenradius zu Tabellen, trs und tds in den neuesten Versionen von Chrome, FF und IE nicht zu 100% funktioniert. Stattdessen wickle ich die Tabelle mit einem Div ein und setze den Randradius darauf.
Wenn dies nicht der Fall ist
width: 100%
, können Sie Ihren Wrapper erstellenfloat: left
. Denken Sie daran, ihn zu löschen.quelle
Verwenden Sie Border-Collapse: Separat; und Randabstand: 0; Verwenden Sie jedoch nur border-right und border-bottom für die tds, wobei border-top auf th und border-left nur auf tr td: nth-child (1) angewendet werden.
Sie können dann den Randradius auf die Ecke tds anwenden (indem Sie das n-te Kind verwenden, um sie zu finden).
https://jsfiddle.net/j4wm1f29/
quelle
Oder verwenden Sie Box-Shadow, wenn die Tabelle zusammengebrochen ist
quelle
Alle Antworten sind viel zu lang. Der einfachste Weg, einem Tabellenelement, das Rahmen als Eigenschaft akzeptiert, einen Rahmenradius hinzuzufügen, besteht darin, einen Rahmenradius mit Überlauf auszuführen: versteckt.
quelle