เพิ่มเส้นขอบด้านล่างลงในแถวตาราง <tr>


385

ฉันมีตารางขนาด 3 คูณ 3 ฉันต้องการวิธีเพิ่มเส้นขอบที่ด้านล่างของทุกแถวtrและให้สีเฉพาะ

ก่อนอื่นฉันลองวิธีที่ตรงคือ:

<tr style="border-bottom:1pt solid black;">

แต่นั่นไม่ได้ผล ดังนั้นฉันจึงเพิ่ม CSS เช่นนี้:

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

ยังไม่ได้ผล

ฉันต้องการใช้ CSS เพราะฉันไม่ต้องการเพิ่มstyleคุณสมบัติให้กับทุกแถว ฉันยังไม่ได้เพิ่มแอตทริบิวต์ไปborder <table>ฉันหวังว่านั่นจะไม่ส่งผลกระทบต่อ CSS ของฉัน


ในฐานะที่เป็นหมายเหตุด้านข้างหากการจัดรูปแบบอินไลน์ (ตัวอย่างแรกในคำถามของคุณ) ไม่ทำงานก็ไม่น่าเป็นไปได้ที่สไตล์การฝังตัว (ตัวอย่างที่สอง) จะใช้งานได้ คุณควรศึกษาความพร้อมใช้งานของแอตทริบิวต์สำหรับองค์ประกอบที่คุณพยายามจัดรูปแบบ: w3.org/TR/html-markup/tr.html
Tass

หากคุณต้องการมีจุดต่ำสุดของขอบของตารางคุณสามารถติดตามjsfiddle.net/7awN4
AllenC

6
เพียงแค่ทราบเพื่อส่งเสริมให้ผู้ค้นหาในอนาคตเลื่อนลงไปที่คำตอบของ @Nathan Manousos ด้านล่าง - อาจเป็นคำตอบที่คุณกำลังมองหา
henry

คำตอบ:


400

ฉันมีปัญหาแบบนี้มาก่อน ฉันไม่คิดว่าtrจะสามารถจัดแต่งทรงผมที่ขอบได้โดยตรง วิธีแก้ปัญหาของฉันคือการจัดรูปแบบtdแถวใน:

<tr class="border_bottom">

CSS:

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

27
โปรดทราบว่าการใช้โซลูชันนี้คุณมักจะมีช่องว่างระหว่างเส้นขอบของ td คำตอบของ simoncereskaดูแลนี้ แต่ทราบว่ามันอาจจะไม่ดูดีกับชนิดชายแดนจุดหรือประ (เพราะพวกเขาไม่ได้ต่อเนื่อง)
Griddo

24
คุณสามารถแก้ไขได้โดยเพิ่มcellspacing="0"เป็นแอตทริบิวต์ให้<table>(ดูคำถามนี้ ) แต่ไม่รู้ว่าสิ่งนี้จะมีลักษณะเป็นเส้นประหรือเส้นประอย่างไร
Stefan van den Akker

5
trสามารถใช้การใส่สไตล์ในแบบจำลองเส้นขอบที่ยุบได้ @ Sangram พิจารณาคำตอบที่คำนึงถึงสิ่งนั้นแทนที่จะคำนึงถึงสิ่งนี้ใช่ไหม?
Robert Siemer

สิ่งนี้จะไม่ทำงานหากมีช่องว่างภายในระหว่างเซลล์ตาราง หากมีช่องว่างภายในขอบจะถูกแยกชิ้น int เห็นได้ชัด
Timothy Gonzalez

และตารางของคุณต้องการสไตล์นี้ <table style = "เส้นขอบยุบ: ยุบ">
Oguz

510

เพิ่มborder-collapse:collapseในตารางกฎของคุณ:

table { 
    border-collapse: collapse; 
}

ลิงค์


2
สิ่งนี้ไม่ทำงานด้วยตัวเอง คุณยังไม่สามารถจัดสไตล์แถวได้ แต่คุณสามารถจัดรูปแบบเซลล์ได้
Renan

49
คุณผิด @Renan แบบจำลองเส้นขอบที่ยุบตัวเป็นสิ่งที่ทำให้เส้นขอบของแถวคงที่ ตามCSS sectoin 17.6 : ในโมเดลเส้นขอบแยก“ Rows, [... ] ไม่สามารถมีเส้นขอบ (เช่น, ตัวแทนผู้ใช้จะต้องละเว้นคุณสมบัติเส้นขอบสำหรับองค์ประกอบเหล่านั้น)” “ ในรูปแบบการยุบขอบมันเป็นไปได้ที่จะระบุเส้นขอบที่ล้อมรอบทั้งหมดหรือบางส่วนของเซลล์แถว [และ] กลุ่มแถว [... ]” และโดยวิธี: มันทำงานในเบราว์เซอร์ของฉัน (Chromium 37)
Robert Siemer

12
ฉันคิดว่าบางคนอาจจะสับสน (เหมือนฉัน) และไม่ได้สังเกตว่าสไตล์การยุบตัวของเส้นขอบต้องถูกวางไว้บนโต๊ะไม่ใช่แถว
Porlune

ดูเหมือนว่า Chrome ไม่มีคุณสมบัตินี้แม้ว่าจะรองรับคุณสมบัติอื่น ๆ ของการยุบตัว
Liqun Sun

72

ใช้border-collapse:collapseบนโต๊ะและborder-bottom: 1pt solid black;บน tr


6
การตั้งค่าเส้นขอบบน tr ไม่มีประโยชน์แม้เมื่อเส้นขอบถูกยุบ คุณต้องวางมันบน tds ของ tr
Radu Simionescu

9
@RaduSimionescu ผิดมันทำงานได้ดีอย่างสมบูรณ์trกับขอบที่ยุบ
Styphon

ไม่มีผลใน FF 45.0.1
imrek

41

ใช้

border-collapse:collapse ในฐานะที่นาธานเขียนและคุณต้องตั้งค่า

td { border-bottom: 1px solid #000; }


นั่นเป็นวิธีที่ฉันจะทำเช่นกัน! เพิ่มเส้นขอบบน td และใช้การยุบตัวของเส้นขอบบนโต๊ะ
Sayan

30

มีคำตอบที่ไม่สมบูรณ์จำนวนมากที่นี่ เนื่องจากคุณไม่สามารถใช้เส้นขอบกับtrแท็กคุณจึงต้องใช้มันกับtdหรือthแท็กดังนี้:

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

การทำเช่นนี้จะทำให้มีช่องว่างเล็ก ๆ ระหว่างแต่ละtdอันซึ่งไม่น่าจะเป็นที่ต้องการหากคุณต้องการให้เส้นขอบปรากฏขึ้นราวกับเป็นtrแท็ก ในการที่จะ "เติมช่องว่าง" เพื่อพูดคุณจำเป็นต้องใช้border-collapseคุณสมบัติในtableองค์ประกอบและตั้งค่าเป็นcollapseดังนี้:

table {
  border-collapse: collapse;
}


7

แสดงแถวเป็นบล็อก

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

และเพื่อแสดงสีอื่น ๆ เพียง:

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

11
ไม่ได้ความคิดที่ดีที่จะตั้งค่าdisplay: blockสำหรับtr's ใช้tr td { border-bottom: ... }โฆษณาtr.oddrow td { border-bottom: ... }แทน
vladr

4
บล็อกการแสดงผลอาจทำลายรูปแบบตารางการยุบ - ยุบ: การยุบตัวบนโต๊ะนั้นเป็นทางออกที่ดีที่สุดแน่นอน
N4ppeL

7

คุณสามารถใช้box-shadowคุณสมบัตินี้เพื่อปลอมเส้นขอบของtrองค์ประกอบ ปรับตำแหน่ง Y ของbox-shadow(ด้านล่างแทนด้วย 2px) เพื่อปรับความหนา

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);
}

6

ฉันพยายามเพิ่ม

    table {
      border-collapse: collapse;
    }   

ข้างๆ

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

จากนั้นแสดงความคิดเห็นเกี่ยวกับการยุบเขตแดน เพียงแค่ให้ตัวเลือก tr กับคุณสมบัติด้านล่างใช้งานได้สำหรับฉัน!

ไม่มี CSS ชายแดน

ไม่มี CSS ชายแดน

ไม่มีภาพถ่ายเส้นขอบ

ไม่มีภาพถ่ายเส้นขอบ

CSS ชายแดนเช่น

CSS ชายแดนเช่น

ตารางถ่ายภาพแนวชายแดนสด

ตารางถ่ายภาพแนวชายแดนสด


2

ฉันพบเมื่อใช้วิธีนี้ว่าช่องว่างระหว่างองค์ประกอบ td ทำให้เกิดช่องว่างในแบบฟอร์มชายแดน แต่ไม่ต้องกลัว ...

วิธีหนึ่งในการนี้:

<tr>
    <td>
        Example of normal table data
    </td>

    <td class="end" colspan="/* total number of columns in entire table*/">
        /* insert nothing in here */ 
    </td>
</tr>

ด้วย CSS:

td.end{
    border:2px solid black;
}

2

<td style="border-bottom-style: solid; border-bottom: thick dotted #ff0000; ">

คุณสามารถทำเช่นเดียวกันกับทั้งแถวได้เช่นกัน

นอกจากนี้border-bottom-style, border-top-style, ,border-left-style border-right-styleหรือเพียงแค่border-styleนำไปใช้กับทั้งสี่ชายแดนในครั้งเดียว

คุณสามารถดู (และทดลองด้วยตัวเองทางออนไลน์) รายละเอียดเพิ่มเติมได้ที่นี่


2

คำตอบที่น่าสนใจหลายประการ เนื่องจากคุณต้องการเส้นขอบด้านล่าง (หรือด้านบน) ที่นี่มีอีกสอง สมมติว่าคุณต้องการเส้นขอบสีน้ำเงินหนา 3px ในส่วนสไตล์ที่คุณสามารถเพิ่ม

.blueB {background-color:blue; height:3px} or
hr {background-color:blue; color:blue height:3px}

ในรหัสตารางอย่างใดอย่างหนึ่ง

<tr><td colspan='3' class='blueB></td></tr> or
<tr><td colspan='3'><hr></td></tr>



0

คุณไม่สามารถใส่เส้นขอบบนองค์ประกอบ tr ได้ สิ่งนี้ใช้ได้กับฉันใน firefox และ IE 11:

<td style='border-bottom:1pt solid black'>

คุณไม่สามารถวางขอบบน TR แก้ไขคำตอบเพื่อชี้แจงนี้
Decko

นั่นเป็นคำตอบที่ง่ายและแม่นยำที่สุด
JamesC

-3

HTML

<tr class="bottom-border">
</tr>

CSS

tr.bottom-border {
  border-bottom: 1px solid #222;
}

2
ไร้ประโยชน์โดยไม่มีการยุบ - ชายแดน: ยุบ;
m1crdy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.