539 Stimmen

Füge dem Tabellenzeilen-Element <tr> einen unteren Rand hinzu.

Ich habe eine Tabelle von 3 mal 3. Ich brauche eine Möglichkeit, einen Rand für den unteren Teil jeder Zeile tr hinzuzufügen und ihm eine spezifische Farbe zu geben.

Zuerst habe ich den direkten Weg ausprobiert, d.h.:

Aber das hat nicht funktioniert. Also habe ich CSS hinzugefügt wie folgt:

tr {
border-bottom: 1pt solid black;
}

Aber das hat immer noch nicht funktioniert.

Ich würde es vorziehen, CSS zu verwenden, denn dann muss ich nicht jedem Zeile ein style Attribut hinzufügen. Ich habe kein border Attribut zur`

hinzugefügt. Ich hoffe, dass das meine CSS nicht beeinflusst.`

0 Stimmen

Als zusätzliche Anmerkung, wenn das Inline-Styling (erstes Beispiel in Ihrer Frage) nicht funktioniert, ist es unwahrscheinlich, dass das eingebettete Styling (zweites Beispiel) funktioniert. Sie sollten auch die Verfügbarkeit von Attributen für das Element recherchieren, das Sie zu stylen versuchen: w3.org/TR/html-markup/tr.html

1 Stimmen

Wenn Sie am unteren Rand der Tabelle eine untere Grenze haben möchten, können Sie sich an dieses jsfiddle.net/7awN4 halten.

12 Stimmen

Nur eine Notiz, um zukünftige Suchende dazu zu ermutigen, nach unten zu scrollen zu @Nathan Manousos's Antwort, unten - es ist wahrscheinlich die Lösung, nach der Sie suchen.

17voto

Ian Bruce Punkte 171

Sie können die box-shadow-Eigenschaft verwenden, um einen Rand eines tr-Elements zu simulieren. Passen Sie die Y-Position des box-shadow (hier als 2px dargestellt) an, um die Dicke anzupassen.

tr {
  -webkit-box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.99);
  -moz-box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.99);
  box-shadow: 0px 2px 0px 0px rgba(0,0,0,0.99);
}

11voto

MUFN Punkte 111

Ich habe versucht hinzuzufügen

    table {
      border-collapse: collapse;
    }   

zusammen mit dem

    tr {
      bottom-border: 2pt solid #color;
    }

und dann border-collapse auskommentiert, um zu sehen, was funktioniert. Für mich hat es gereicht, nur den tr-Selektor mit der bottom-border-Eigenschaft zu haben!

Kein Rahmen CSS Bsp.

Kein Rahmen CSS Bsp.

Kein Rahmen Foto live

Kein Rahmen Foto live

CSS Rahmen Bsp.

CSS Rahmen Bsp.

Tabelle mit Rahmen Foto live

Tabelle mit Rahmen Foto live

1 Stimmen

bottom-border ist keine gültige CSS-Eigenschaft. Ich habe dasselbe Experiment durchgeführt, indem ich die border-collapse-Eigenschaft in Chrome 84.0.4147.135 unter Windows umgeschaltet habe. Der Rand wird nur angezeigt, wenn die Eigenschaft existiert und auf collapse gesetzt ist.

8voto

Jesse Punkte 81

Verwenden

tabelle{border-collapse:collapse}
zeile{border-top:dünn fest}

Ersetzen Sie "dünn fest" durch CSS-Eigenschaften.

6voto

Jeremey Punkte 152

Die Zeile als Block anzeigen.

tr {
    display: block;
    border-bottom: 1px solid #000;
}

Und um abwechselnde Farben anzuzeigen einfach:

tr.oddrow {
    display: block;
    border-bottom: 1px solid #F00;
}

12 Stimmen

Nicht eine gute Idee display: block für tr zu setzen. Verwenden Sie stattdessen tr td { border-bottom: ... } und tr.oddrow td { border-bottom: ... }

4 Stimmen

Display block könnte das Tabellenlayout zerstören. border-collapse:collapse auf der Tabelle selbst ist definitiv die beste Lösung.

5voto

thiout_p Punkte 667

Wenn Sie nicht möchten, dass

  • das Zusammenfallen der Rahmen in der Tabelle erzwungen wird
  • die TD-Elemente-Stilierung verwendet werden

Sie können den ::after Selektor verwenden, um Rahmen zu TR hinzuzufügen:

table tbody tr {
    position : relative; #um das ::after-Element innerhalb der Tabellen-Zeile zu enthalten
}

table tbody tr td {
    position : relative; #nötig, um einen z-Index anzuwenden
    z-Index : 2; #muss höher sein als der z-Index des tr::after-Elements
}

table tbody tr::after {
    content : '';
    position : absolute;
    z-Index : 1; #Fügen Sie einen z-Index unter dem z-Index von TD hinzu, damit Sie immer noch Daten aus Ihren Tabellenzeilen auswählen können :)
    top : 0px;
    left : 0px;
    width : 100%;
    height : 100%;
    border : 1px solid green; #Stilisieren Sie Ihren Rahmen hier, wählen Sie, ob Sie einen Rahmen unten, oben, links usw. wünschen ...
}

Es ist ein einfacher Trick, den ich in einem Szenario verwendet habe, in dem ich Abstände zwischen Tabellenzeilen setzen musste, sodass ich keinen Rahmenzusammenbruch in der Tabelle hinzufügen konnte, das Endergebnis:

Geben Sie hier eine Bildbeschreibung ein

Hoffe, es hilft :)

1 Stimmen

Das ist die beste Antwort, alle anderen Lösungen erfordern border-collapse: collapse;, was meiner Meinung nach eine große Einschränkung ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X