Ich habe gesucht und gesucht, konnte aber keine Lösung für meine Anforderung finden.
Ich habe eine einfache alte HTML-Tabelle. Ich möchte runde Ecken dafür, ohne Bilder oder JS zu verwenden, dh nur reines CSS . So was:
Abgerundete Ecken für Eckzellen und 1px
dicker Rand für die Zellen.
Bisher habe ich Folgendes:
table {
-moz-border-radius: 5px !important;
border-collapse: collapse !important;
border: none !important;
}
table th,
table td {
border: none !important
}
table th:first-child {
-moz-border-radius: 5px 0 0 0 !important;
}
table th:last-child {
-moz-border-radius: 0 5px 0 0 !important;
}
table tr:last-child td:first-child {
-moz-border-radius: 0 0 0 5px !important;
}
table tr:last-child td:last-child {
-moz-border-radius: 0 0 5px 0 !important;
}
table tr:hover td {
background-color: #ddd !important
}
Aber das lässt mich ohne Grenzen für die Zellen. Wenn ich Rahmen hinzufüge, werden diese nicht gerundet!
Irgendwelche Lösungen?
html
css
html-table
rounded-corners
Vishal Shah
quelle
quelle
Antworten:
Scheint in FF und Chrome (haben keine anderen getestet) mit separaten Rahmen gut zu funktionieren: http://jsfiddle.net/7veZQ/3/
Bearbeiten: Hier ist eine relativ saubere Implementierung Ihrer Skizze:
http://jsfiddle.net/MuZzz/3577/
quelle
first-child
undlast-child
funktionieren Sie nicht in IE6 / 7/8, aber weniger ein Problem für Sie, da dies auch nicht der Fall istborder-radius
. Es bedeutet jedoch, dass Sie CSS3Pie nicht verwenden können, um es im IE zu reparieren - es wird den Randradius korrigieren, aber nicht das erste / letzte Kind.border-collapse: separate;
zur Zurb Ink-Vorlage hat es für mich gelöst.Für mich sieht die Twitter Bootstrap Solution gut aus. Es schließt IE <9 aus (keine runden Ecken in IE 8 und niedriger), aber das ist in Ordnung, denke ich, wenn Sie potenzielle Web-Apps entwickeln.
CSS / HTML:
Damit kannst du hier spielen (auf jsFiddle)
quelle
Erstens benötigen Sie mehr als nur,
-moz-border-radius
wenn Sie alle Browser unterstützen möchten. Sie sollten alle Varianten, einschließlich Plainborder-radius
, wie folgt angeben :Zweitens wird zur direkten Beantwortung Ihrer Frage
border-radius
kein Rand angezeigt. Es wird nur festgelegt, wie die Ecken des Randes aussehen, falls vorhanden.Um den Rand einzuschalten und so Ihre abgerundeten Ecken zu erhalten, benötigen Sie auch das
border
Attribut für Ihretd
undth
Elemente.Sie werden auch die abgerundeten Ecken sehen, wenn Sie eine Hintergrundfarbe (oder Grafik) haben, obwohl es natürlich eine andere Hintergrundfarbe als das umgebende Element geben müsste, damit die abgerundeten Ecken ohne Rand sichtbar sind.
Es ist erwähnenswert, dass einige ältere Browser nicht gerne
border-radius
Tabellen / Tabellenzellen anlegen. Es kann sich lohnen,<div>
in jede Zelle eine zu setzen und diese stattdessen zu stylen. Dies sollte jedoch keine Auswirkungen auf aktuelle Versionen von Browsern haben (außer IE, das abgerundete Ecken überhaupt nicht unterstützt - siehe unten).Schließlich nicht, dass IE überhaupt nicht unterstützt
border-radius
(IE9 Beta, aber die meisten IE-Benutzer werden auf IE8 oder weniger sein). Wenn Sie den IE hacken möchten, um den Randradius zu unterstützen, besuchen Sie http://css3pie.com/[BEARBEITEN]
Okay, das hat mich nervt, also habe ich einige Tests durchgeführt.
Hier ist ein JSFiddle-Beispiel, mit dem ich gespielt habe
Es scheint, als ob das Kritische, das Sie vermisst haben,
border-collapse:separate;
im Tabellenelement war. Dies verhindert, dass die Zellen ihre Ränder miteinander verbinden, wodurch sie den Randradius erfassen können.Hoffentlich hilft das.
quelle
border-collapse:separate;
Die ausgewählte Antwort ist schrecklich. Ich würde dies implementieren, indem ich auf die Eckentabellenzellen ziele und den entsprechenden Randradius anwende.
Um die oberen Ecken zu erhalten, legen Sie den Randradius für das erste und letzte vom Typ des th- Elements fest. Stellen Sie zum Abschluss den Randradius für das letzte und das erste vom Typ td am letzten vom Typ tr ein , um die unteren Ecken zu erhalten.
quelle
th
Elementen oben und links in der Tabelle und das funktioniert dafür nicht. Wie gehe ich vor, um die Ecken dieser Art von Tisch abzurunden?Die beste Lösung, die ich für abgerundete Ecken und anderes CSS3-Verhalten für IE <9 gefunden habe, finden Sie hier: http://css3pie.com/
Laden Sie das Plug-In herunter und kopieren Sie es in ein Verzeichnis in Ihrer Lösungsstruktur. Stellen Sie dann in Ihrem Stylesheet sicher, dass das Behaviour-Tag vorhanden ist, damit das Plug-In eingezogen wird.
Einfaches Beispiel aus meinem Projekt, das mir abgerundete Ecken, Farbverlauf und Kastenschatten für meine Tabelle gibt:
Machen Sie sich keine Sorgen, wenn Ihr Visual Studio CSS Intellisense Ihnen die grüne Unterstreichung für unbekannte Eigenschaften gibt. Es funktioniert immer noch, wenn Sie es ausführen. Einige der Elemente sind nicht sehr klar dokumentiert, aber die Beispiele sind ziemlich gut, insbesondere auf der Titelseite.
quelle
Durch persönliche expeirence habe ich festgestellt , dass es zu runde Ecken einer HTML - Tabelle nicht möglich Zelle mit reinem CSS. Das Abrunden des äußersten Randes eines Tisches ist möglich.
Sie müssen auf die Verwendung von Bildern wie in diesem Tutorial oder ähnlichem zurückgreifen :)
quelle
<div>
. ^^,Es ist etwas rau, aber hier ist etwas, das ich zusammengestellt habe und das ausschließlich aus CSS und HTML besteht.
In diesem Beispiel wird auch die
:hover
Pseudoklasse für jede Datenzelle verwendet<td>
. Elemente können einfach aktualisiert werden, um Ihren Anforderungen zu entsprechen, und der Hover kann schnell deaktiviert werden.(Ich habe es jedoch noch nicht geschafft
:hover
, ordnungsgemäß für vollständige Zeilen zu arbeiten<tr>
. Die letzte schwebende Zeile wird nicht mit abgerundeten Ecken am unteren Rand angezeigt. Ich bin sicher, dass etwas Einfaches übersehen wird.)quelle
Fügen Sie einen
<div>
Wrapper um die Tabelle hinzu und wenden Sie das folgende CSS anzu diesem Wrapper.
quelle
Um die brillante Antwort von @luke flournoy anzupassen - und wenn Sie sie nicht
th
in Ihrer Tabelle verwenden, finden Sie hier das gesamte CSS, das Sie zum Erstellen einer abgerundeten Tabelle benötigen:quelle
Verwenden Sie diese Option für eine umrandete und scrollbare Tabelle (Variablen ersetzen,
$
Texte starten)Wenn Sie verwenden
thead
,tfoot
oderth
, ersetzen Sie einfachtr:first-child
undtr-last-child
undtd
mit ihnen.HTML:
quelle
Sie können dies versuchen, wenn Sie die abgerundeten Ecken auf jeder Seite der Tabelle möchten, ohne die Zellen zu berühren: http://jsfiddle.net/7veZQ/3983/
quelle
Beispiel-HTML
SCSS, einfach in CSS konvertiert, verwenden Sie sassmeister.com
http://jsfiddle.net/MuTLY/xqrgo466/
quelle
Folgendes habe ich verwendet, das für mich in allen Browsern funktioniert hat, und ich hoffe, es hilft jemandem in der Zukunft:
Natürlich kann der
#contentblock
Teil nach Bedarf ersetzt / bearbeitet werden, und Sie können dieborder-radius.htc
Datei finden, indem Sie eine Suche in Google oder Ihrem bevorzugten Webbrowser durchführen.quelle
Dies bedeutet
css3
, dass dies nur von aktuellen Nicht-IE <9-Browsern unterstützt wird.Schauen Sie hier nach , es leitet die runde Eigenschaft für alle verfügbaren Browser ab
quelle
Zwischen
<head>
Tags hinzufügen:und im Körper:
Die Zellenfarbe, der Inhalt und die Formatierung sind natürlich zum Beispiel;
Es geht darum, farbgefüllte Zellen innerhalb eines Divs zu beabstanden. Dabei sind die schwarzen Zellenränder / Tabellenränder tatsächlich die div-Hintergrundfarbe.
Beachten Sie, dass Sie den Div-Rand-Radius um etwa 2 Werte größer als die Radien der separaten Zelleneckränder festlegen müssen, um einen glatten Effekt für abgerundete Ecken zu erzielen.
quelle
Lektion in Tabellengrenzen ...
HINWEIS: Der folgende HTML / CSS-Code sollte nur im IE angezeigt werden. Der Code wird in Chrome nicht korrekt gerendert!
Wir müssen uns daran erinnern:
Eine Tabelle hat einen Rand: ihre äußere Grenze (die auch einen Randradius haben kann).
Die Zellen selbst haben AUCH Ränder (die auch einen Randradius haben können).
Die Tabellen- und Zellenränder können sich gegenseitig stören:
Der Zellenrand kann den Tabellenrand durchdringen (dh: Tabellengrenze).
Um diesen Effekt zu sehen, ändern Sie die CSS-Stilregeln im folgenden Code wie folgt:
i. Tabelle {Border-Collapse: Separat;}
ii. Löschen Sie die Stilregeln, die die Eckzellen der Tabelle abrunden.
iii. Spielen Sie dann mit dem Randabstand, damit Sie die Interferenz sehen können.
Der Tabellenrand und die Zellenränder können jedoch KOLLAPSIERT werden (unter Verwendung von: border-Collapse: Collapse;).
Wenn sie reduziert werden, stören die Zellen- und Tabellenränder auf andere Weise:
ich. Wenn der Tabellenrand abgerundet ist, die Zellenränder jedoch quadratisch bleiben, hat die Form der Zelle Vorrang und die Tabelle verliert ihre gekrümmten Ecken.
ii. Wenn umgekehrt die Eckzellen gekrümmt sind, die Tabellengrenze jedoch quadratisch ist, sehen Sie eine hässliche quadratische Ecke, die an die Krümmung der Eckzellen grenzt.
Da das Attribut der Zelle Vorrang hat, können Sie die vier Ecken des Tisches dann wie folgt abrunden:
ich. Reduzieren von Rändern in der Tabelle (mit: border-Collapse: Collapse;).
ii. Stellen Sie die gewünschte Krümmung in den Eckzellen der Tabelle ein.
iii. Es spielt keine Rolle, ob die Ecken des Tisches abgerundet sind (dh sein Randradius kann Null sein).
quelle
CSS:
quelle