Designing Table using CSS

M2-R5.1 ┬╖ Chapter 4: CSS ┬╖ 2 min read

ЁЯУЭ Designing Tables Through CSS

HTML рдореЗрдВ <table> рдХрд╛ рдЙрдкрдпреЛрдЧ data рдХреЛ rows рдФрд░ columns рдХреЗ form рдореЗрдВ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ HTML table рдмрдирд╛рдиреЗ рд╕реЗ table рдмрд╣реБрдд simple рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреА рд╣реИред CSS рдХреА рдорджрдж рд╕реЗ рд╣рдо table рдХреЛ:

  • Attractive рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
  • Readable рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
  • Borders add рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • Alternate rows рдореЗрдВ different colors рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
  • Mouse hover рдХрд░рдиреЗ рдкрд░ row рдХреЛ highlight рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реА process рдХреЛ Designing/Styling Tables through CSS рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред


ЁЯФ╣ 1. Adding Border to Table

Table рдореЗрдВ border рд▓рдЧрд╛рдиреЗ рд╕реЗ рдЙрд╕рдХреА rows рдФрд░ cells clearly рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред

рдЗрд╕рдХреЗ рд▓рд┐рдП border property рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Syntax:

table, th, tr, td {
border: 1px solid black;
}

рдпрд╣рд╛рдБ:

  • table тЖТ рдкреВрд░реА table
  • th тЖТ Table Header
  • tr тЖТ Table Row
  • td тЖТ Table Data/Cell
  • 1px тЖТ Border рдХреА thickness
  • solid тЖТ Border рдХрд╛ style
  • black тЖТ Border рдХрд╛ color

рдЗрд╕рд╕реЗ table рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ parts рдкрд░ border рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред


ЁЯФ╣ 2. border-collapse Property

рдЬрдм рд╣рдо table рдФрд░ рдЙрд╕рдХреЗ cells рджреЛрдиреЛрдВ рдкрд░ border рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рддреЛ cells рдХреЗ рдмреАрдЪ double borders рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

Example:

тФМтФАтФАтФАтФАтФАтФАтФмтФАтФАтФАтФАтФАтФАтФР
тФВ Name тФВ Age тФВ
тФЬтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФд
тФВ Ram тФВ 20 тФВ
тФФтФАтФАтФАтФАтФАтФАтФ┤тФАтФАтФАтФАтФАтФАтФШ

рдЗрди borders рдХреЛ рдПрдХ single border рдореЗрдВ merge рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП border-collapse property рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Syntax:

table {
border-collapse: collapse;
}

рдЗрд╕рдХреЗ рдореБрдЦреНрдп values:

collapse

Adjacent borders рдХреЛ combine рдХрд░рдХреЗ single border рдмрдирд╛ рджреЗрддрд╛ рд╣реИред

table {
border-collapse: collapse;
}

рдпрд╣ table рдХреЛ рдЬреНрдпрд╛рджрд╛ clean рдФрд░ professional appearance рджреЗрддрд╛ рд╣реИред

separate

рдпрд╣ default value рд╣реИред

рдЗрд╕рдореЗрдВ cells рдХреЗ borders рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ spacing/double-border рдЬреИрд╕рд╛ effect рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИред

table {
border-collapse: separate;
}

рдпрд╛рдж рд░рдЦреЗрдВ:

collapse тЖТ Single/merged border

separate тЖТ Separate borders


ЁЯФ╣ 3. Making a Striped Table

рдПрдХ striped table рдореЗрдВ alternate rows рдХреЗ background colors рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВред

рдЗрд╕рд╕реЗ рдЬреНрдпрд╛рджрд╛ rows рд╡рд╛рд▓реА table рдХреЛ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ row рдХреЛ рджреВрд╕рд░реА row рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП :nth-child() pseudo-class рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Example:

tr:nth-child(even) {
background-color: lightgray;
}

рдпрд╣рд╛рдБ:

  • tr тЖТ рд╕рднреА table rows рдХреЛ target рдХрд░рддрд╛ рд╣реИред
  • :nth-child(even) тЖТ Even-numbered rows рдХреЛ target рдХрд░рддрд╛ рд╣реИред
  • background-color тЖТ Row рдХрд╛ background color change рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рд╕реЗ:

Row 1 тЖТ Normal
Row 2 тЖТ Gray
Row 3 тЖТ Normal
Row 4 тЖТ Gray
Row 5 тЖТ Normal
Row 6 тЖТ Gray

Odd Rows

рдЕрдЧрд░ odd-numbered rows рдХреЛ target рдХрд░рдирд╛ рд╣реЛ:

tr:nth-child(odd) {
background-color: lightgray;
}

рдпрд╛рдж рд░рдЦреЗрдВ:

even тЖТ 2, 4, 6, 8...

odd тЖТ 1, 3, 5, 7...


ЁЯФ╣ 4. Making a Hoverable Table

Table рдХреЛ interactive рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо :hover selector рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрдм user mouse рдХреЛ рдХрд┐рд╕реА row рдХреЗ рдКрдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕ row рдХрд╛ background color change рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

Syntax:

tr:hover {
background-color: #ddd;
}

рдпрд╣рд╛рдБ :hover рддрдм apply рд╣реЛрддрд╛ рд╣реИ рдЬрдм mouse pointer element рдХреЗ рдКрдкрд░ рд╣реЛрддрд╛ рд╣реИред

Example:

Before Hover:

Name Age
----------------
Rahul 20
Aman 22
Riya 21


After Hover on Aman:

Name Age
----------------
Rahul 20
Aman 22 тЖР Highlighted
Riya 21

рдЗрд╕рд╕реЗ table рдЬреНрдпрд╛рджрд╛ interactive рдФрд░ user-friendly рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред


тнР Question: Make a Good Looking Table Using Above Properties

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП example рдореЗрдВ рд╣рдордиреЗ рдКрдкрд░ рд╕реАрдЦреА рдЧрдИ рд╕рднреА properties рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ:

<!DOCTYPE html>
<html>
<head>
<style>

table {
width: 70%;
border-collapse: collapse;
margin: 20px auto;
font-family: Arial, sans-serif;
}

th, td {
border: 1px solid black;
padding: 12px;
text-align: center;
}

th {
background-color: #333;
color: white;
}

tr:nth-child(even) {
background-color: #f2f2f2;
}

tr:hover {
background-color: #ddd;
}

</style>
</head>

<body>

<table>

<tr>
<th>Name</th>
<th>Age</th>
<th>Course</th>
</tr>

<tr>
<td>Rahul</td>
<td>20</td>
<td>BCA</td>
</tr>

<tr>
<td>Aman</td>
<td>21</td>
<td>B.Tech</td>
</tr>

<tr>
<td>Riya</td>
<td>20</td>
<td>BCA</td>
</tr>

<tr>
<td>Priya</td>
<td>22</td>
<td>MCA</td>
</tr>

</table>

</body>
</html>

ЁЯФН Code рдХреА Important Properties

width: 70%;

Table рдХреА width screen/container рдХреА рд▓рдЧрднрдЧ 70% рд╣реЛрдЧреАред

border-collapse: collapse;

Cells рдХреЗ adjacent borders рдХреЛ single border рдореЗрдВ combine рдХрд░реЗрдЧрд╛ред

border: 1px solid black;

Table cells рдореЗрдВ 1px рдХрд╛ black solid border рд▓рдЧрд╛рдПрдЧрд╛ред

padding: 12px;

Cell рдХреЗ рдЕрдВрджрд░ content рдФрд░ border рдХреЗ рдмреАрдЪ 12px рдХреА space рджреЗрдЧрд╛ред

text-align: center;

Cell рдХреЗ рдЕрдВрджрд░ text рдХреЛ center рдореЗрдВ рд░рдЦреЗрдЧрд╛ред

tr:nth-child(even)

Even rows рдХреЛ рдЕрд▓рдЧ background color рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ striped effect рдмрдиреЗрдЧрд╛ред

tr:hover

Mouse рдХреЛ рдХрд┐рд╕реА row рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рдЙрд╕рдХрд╛ background color change рдХрд░реЗрдЧрд╛ред

th

Table header рдХреЛ рдЕрд▓рдЧ color рдФрд░ white text рджреЗрдХрд░ рдЬреНрдпрд╛рджрд╛ prominent рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


ЁЯза Quick Revision

Property/SelectorрдХрд╛рдо
borderTable/cells рдкрд░ border рд▓рдЧрд╛рддрд╛ рд╣реИ
border-collapseBorders рдХреЛ merge рдпрд╛ separate рдХрд░рддрд╛ рд╣реИ
:nth-child(even)Even rows рдХреЛ select рдХрд░рддрд╛ рд╣реИ
:nth-child(odd)Odd rows рдХреЛ select рдХрд░рддрд╛ рд╣реИ
:hoverMouse hover рд╣реЛрдиреЗ рдкрд░ style change рдХрд░рддрд╛ рд╣реИ
paddingCell рдХреЗ рдЕрдВрджрд░ space рджреЗрддрд╛ рд╣реИ
text-alignText рдХреА alignment set рдХрд░рддрд╛ рд╣реИ

рд╕рдмрд╕реЗ important рдпрд╛рдж рд░рдЦреЗрдВ:

Border тЖТ Structure рджрд┐рдЦрд╛рддрд╛ рд╣реИ

Border-collapse тЖТ Double border рдХреЛ single рдХрд░рддрд╛ рд╣реИ

nth-child тЖТ Alternate rows рдХреЛ style рдХрд░рддрд╛ рд╣реИ

hover тЖТ Mouse рдЖрдиреЗ рдкрд░ row highlight рдХрд░рддрд╛ рд╣реИ