Open In App

How to apply border inside a table ?

Improve
Improve
Like Article
Like
Save
Share
Report

There are two ways to apply border inside the table in HTML. 

  • Only using HTML
  • Using HTML and CSS

Only Using HTML: In this case, we will use rules attribute of table. Rules is the attribute in HTML table which allows user to display only inside borders of the table which can be chosen among only rows, cols or all. 

Example: 

HTML




<!-- Table contains border from
        inside only -->
<!DOCTYPE html>
<html>
<head>
    <title>Table In HTML</title>
</head>
 
<body>
    <h2>Table having rules="rows":</h2>
    <table rules="rows">
         
        <!--table containing only
            border of rows-->
        <tr>
            <th>Roll Number</th>
            <th>Name Of Geek</th>
            <th>Marks</th>
        </tr>
        <tr>
            <td>01</td>
            <td>Geek 01</td>
            <td>100</td>
        </tr>
        <tr>
            <td>02</td>
            <td>Geek 02</td>
            <td>95</td>
        </tr>
        <tr>
            <td>03</td>
            <td>Geek 03</td>
            <td>90</td>
        </tr>
    </table>
     
    <br>
    <hr><hr>
    <br>
     
    <h2>Table having rules="cols":</h2>
     
    <!--table containing only
        border of columns-->
    <table rules="cols">
        <tr>
            <th>Roll Number</th>
            <th>Name Of Geek</th>
            <th>Marks</th>
        </tr>
        <tr>
            <td>01</td>
            <td>Geek 01</td>
            <td>100</td>
        </tr>
        <tr>
            <td>02</td>
            <td>Geek 02</td>
            <td>95</td>
        </tr>
        <tr>
            <td>03</td>
            <td>Geek 03</td>
            <td>90</td>
        </tr>
    </table>
     
    <br>
    <hr><hr>
    <br>
     
    <h2>Table having rules="all":</h2>
     
    <!--table containing borders of
        both row and column-->
    <table rules="all">
        <tr>
            <th>Roll Number</th>
            <th>Name Of Geek</th>
            <th>Marks</th>
        </tr>
        <tr>
            <td>01</td>
            <td>Geek 01</td>
            <td>100</td>
        </tr>
        <tr>
            <td>02</td>
            <td>Geek 02</td>
            <td>95</td>
        </tr>
        <tr>
            <td>03</td>
            <td>Geek 03</td>
            <td>90</td>
        </tr>
    </table>
</body>
 
</html>


Output: 

Using HTML and CSS: 

  • Example 1: The border-style in CSS is another way of displaying borders inside table. This property helps user to manipulate the outside borders of the table. 

HTML




<!-- Using border-style in CSS -->
<!DOCTYPE html>
<html>
     
<head>
    <title>Table In HTML</title>
     
    <style media="screen">
        table {
            margin: 0 auto;
            border-collapse: collapse;
            border-style: hidden;
            /*Remove all the outside
            borders of the existing table*/
        }
        table td {
            padding: 0.5rem;
            border: 5px solid orange;
        }
        table th {
            padding: 0.5rem;
            border: 5px solid ForestGreen;
        }
    </style>
</head>
 
<body>
    <table>
        <tr>
            <th>Roll Number</th>
            <th>Name Of Geek</th>
            <th>Marks</th>
        </tr>
        <tr>
            <td>01</td>
            <td>Geek 01</td>
            <td>100</td>
        </tr>
        <tr>
            <td>02</td>
            <td>Geek 02</td>
            <td>95</td>
        </tr>
        <tr>
            <td>03</td>
            <td>Geek 03</td>
            <td>90</td>
        </tr>
    </table>
</body>
 
</html>


Output: 

  • Example 2: Using child concept in CSS is another way of getting a table with the inside border is by removing all the unwanted borders in the table. It can be achieved by using first-child and last-child in CSS. Here, we select the first column and remove its left-hand side border, then select the first row and remove its top border, then we go for the last column and remove its right-hand side border and at last select the last row and remove its bottom border. In this way, we remove all the outside borders of the table and we are left with inside one.

HTML




<!DOCTYPE html>
<html>
 
<head>
    <title>Table In HTML</title>
 
    <style media="screen">
        table {
            margin: 0 auto;
            border-collapse: collapse;
        }
        table td {
            padding: 0.5rem;
            border: 5px solid DodgerBlue;
        }
        table th {
            padding: 0.5rem;
            border: 5px solid Tomato;
        }
         
        /* Removing all unwanted border
        from left hand side by calling
        all the elements in the first
        column and removing their left
        border*/
        table tr td:first-child, th:first-child{
            border-left: none;
        }
         
        /* Removing all unwanted border
        from top of the table by calling
        all the elements in first row and
        removing their top border*/
        table tr:first-child th{
            border-top: none;
        }
         
        /* Removing all unwanted border
        from right hand side by calling
        all the elements in last row and
        removing their right border*/
        table tr td:last-child, th:last-child{
            border-right: none;
        }
         
        /* Removing all unwanted border
        from bottom of the table by
        calling all the elements in
        last column and removing their
        bottom border*/
        table tr:last-child td{
            border-bottom: none;
        }
    </style>
</head>
 
<body>
    <table>
        <tr>
            <th>Roll Number</th>
            <th>Name Of Geek</th>
            <th>Marks</th>
        </tr>
        <tr>
            <td>01</td>
            <td>Geek 01</td>
            <td>100</td>
        </tr>
        <tr>
            <td>02</td>
            <td>Geek 02</td>
            <td>95</td>
        </tr>
        <tr>
            <td>03</td>
            <td>Geek 03</td>
            <td>90</td>
        </tr>
    </table>
</body>
 
</html>


Output: 

 



Last Updated : 11 Sep, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads