I wounder if you with CSS can line a everything that has the same class below each other even if they are in another table row? I want all the VS to be aligned below each other and then the teams on left and right side of them.
<tr>
<td>Some info</td>
<td>Some info</td>
<td id="teams"> A team <span class="vs">VS</span> Another Team</td>
<td>Some Info</td>
</tr>
<tr>
<td>Some info</td>
<td>Sine info</td>
<td id="teams"> A team name <span class="vs">VS</span> Another Team name</td>
<td>Some Info</td>
</tr>
Now its like this:
And i want it to look like this:
You could split the TD you have now into three seperate TDs.
By splitting this td into 3 different td's and using colspan="3" on the coresponding th.
Take a look at that Working Fiddle
it's just a basic layout, alter it to your needs..
HTML:
<table border="1">
<tr>
<th>info 1</th>
<th>info 2</th>
<th colspan="3"> A team VS Another Team</th>
<th>info 3</th>
</tr>
<tr>
<td>Some info</td>
<td>Some info</td>
<td class="teams left">A team</td>
<td class="vs">VS</td>
<td class="teams right">Another Team</td>
<td>Some Info</td>
</tr>
<tr>
<td>Some info</td>
<td>Some info</td>
<td class="teams left">A team name</td>
<td class="vs">VS</td>
<td class="teams right">Another Team name</td>
<td>Some Info</td>
</tr>
</table>
CSS:
table
{
width: 100%;
}
td
{
text-align: center;
}
th:nth-child(3)
{
column-span: 3;
}
.teams
{
color: red;
}
.vs
{
color: green;
}
.left
{
text-align: right;
}
.right
{
text-align: left;
}
{
color: green;
}
Related
I need to create this table with html, but I don't understand yet how to separate the different rows.
colspan
This attribute contains a non-negative integer value that indicates for how many columns the cell extends. Its default value is 1. Values higher than 1000 will be considered as incorrect and will be set to the default value (1)
rowspan
This attribute contains a non-negative integer value that indicates for how many rows the cell extends. Its default value is 1; if its value is set to 0, it extends until the end of the table section (, , , even if implicitly defined), that the cell belongs to. Values higher than 65534 are clipped down to 65534.
colspan & rowspan documentation
table {
width: 100%;
max-width: 800px;
}
td,
th {
padding: 10px;
}
.center {
text-align: center;
}
.left {
text-align: left;
}
table,
th,
td {
border: 1px solid black;
border-collapse: collapse;
}
.max {
width: 60%;
}
.min {
width: 40%;
}
<table>
<tr>
<th class="left">Project</th>
<td colspan="4">Marketplace 1</td>
</tr>
<tr>
<th class="left">Group</th>
<td colspan="4">Group 1</td>
</tr>
<tr>
<th rowspan="5" class="left">Members</th>
<th class="max">Name</th>
<th class="min">Role</th>
<tr>
<td>Name 1</td>
<td>Scrum Master</td>
<tr>
<td>Name 2</td>
<td>Developer</td>
</tr>
<tr>
<td>Name 3</td>
<td>Developer</td>
</tr>
<tr>
<td>Name 4</td>
<td>Developer / Devops</td>
</tr>
</tr>
</table>
A friend helped me with this, it's the same table but in Spanish:
<table>
<tr>
<th>Proyecto</th>
<td colspan="2">Marketplace 1</td>
</tr>
<tr>
<th>Grupo</th>
<td colspan="2">Grupo 17</td>
</tr>
<tr>
<tr>
<th rowspan="5">Integrantes</th>
<th>Nombre</th>
<th>Rol</th>
</tr>
<tr>
<td>Carlos Figueredo Triana</td>
<td>Developer</td>
</tr>
<tr>
<td>Carlos Figueredo Triana</td>
<td>Developer</td>
</tr>
<tr>
<td>Carlos Figueredo Triana</td>
<td>Developer</td>
</tr>
<tr>
<td>Carlos Figueredo Triana</td>
<td>Developer</td>
</tr>
</table>
I want to make 1 table to look like 2 tables where they are on top of each other with a little space between them. Each table has the same number of columns, but the text they contain can differ. And each table can contain many rows. I need this because i need columns of both tables always to be the same width. How do i achieve this? I need that Empty row's side borders to hide
<table>
<tr> <!-- First table rows --> </tr>
<td>text</td>
<td>text</td>
<tr> <!-- Empty space between tables --> </tr>
<tr> <!-- Second table rows --> </tr>
<td>text</td>
<td>text</td>
Just use a single <td> element with a specific height as a separator, and use border-collapse to mimic what you're looking for:
table {
border-collapse: collapse;
}
table td {
border: 1px solid #000;
}
table td.separator {
border: none;
height: 40px;
}
<table>
<tr>
<td>text</td>
<td>text</td>
</tr>
<tr>
<td>text</td>
<td>text</td>
</tr>
<tr>
<td colspan="2" class="separator"></td>
</tr>
<tr>
<td>text</td>
<td>text</td>
</tr>
<tr>
<td>text</td>
<td>text</td>
</tr>
</table>
You can use css for this. border-spacing
Change 45px for sizing
table {
border-collapse: collapse;
}
th {
background-color: red;
Color:white;
}
th, td {
width:150px;
text-align:center;
border:1px solid black;
padding:5px
}
.geeks {
border-right:hidden;
}
.gfg {
border-collapse:separate;
border-spacing:0 45px;
}
h1 {
color:green;
}
<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<center>
<h2>Row spacing in a table</h2>
<table>
<tr>
<th>Employee ID</th>
<th>Name</th>
<th>Gender</th>
<th>Age</th>
</tr>
</table>
<table class = "gfg">
<tr>
<td class = "geeks">10001</td>
<td>Thomas</td>
<td>M</td>
<td>32</td>
</tr>
<tr>
<td class = "geeks">10002</td>
<td>Sally</td>
<td>F</td>
<td>28</td>
</tr>
<tr>
<td class = "geeks">10003</td>
<td>Anthony</td>
<td>M</td>
<td>24</td>
</tr>
</table>
</center>
</body>
</html>
You could use something like shown below. The colspan="4" on table-spacing td specifies how many columns the cell should span.
Advice
However if the data is really different from each other I would recommend actually using two different tables instead of two . It make it easier for screen readers to distinct the data from each other. To improve this further you can use table headers to improve your accessibility even more.
Source: https://www.w3schools.com/tags/tag_thead.asp
.table {
border-collapse: collapse;
}
.table-spacing td {
border: none;
height: 15px; /* Increase/descrease for white-space between 'tables' */
}
td {
padding: 6px;
border: 1px solid black;
}
<table class="table">
<tr>
<td> Cel 1</td>
<td> Cel 2</td>
<td> Cel 3</td>
<td> Cel 4</td>
<tr>
<tr>
<td> Cel 5</td>
<td> Cel 6</td>
<td> Cel 7</td>
<td> Cel 8</td>
<tr>
<tr class="table-spacing"><td colspan="4"></td></tr>
<tr>
<td> Cel 1</td>
<td> Cel 2</td>
<td> Cel 3</td>
<td> Cel 4</td>
<tr>
<tr>
<td> Cel 5</td>
<td> Cel 6</td>
<td> Cel 7</td>
<td> Cel 8</td>
<tr>
</table>
I need to make markup for creating the next table (using HTML):
task
Here is my way of making that (doesn't work):
Step 1: Making "general" markup with all cells of equal size:
td { border: solid #aaa 1px }
<table>
<thead>
<tr>
<th colspan="4">Some Table</th>
</tr>
</thead>
<tbody>
<tr>
<td>1.1</td>
<td>1.2</td>
<td>1.3</td>
<td>1.4</td>
</tr>
<tr>
<td>2.1</td>
<td>2.2</td>
<td>2.3</td>
<td>2.4</td>
</tr>
<tr>
<td>3.1</td>
<td>3.2</td>
<td>3.3</td>
<td>3.4</td>
</tr>
</tbody>
</table>
Output: Step 1
Step 2: Using "colspan" and "rowspan" for making cells 1.3 and 2.1 bigger and deleting unnecessary cells (1.4, 2.3, 2.4, 3.3 and 3.4), except one (2.2 , just for now): Step 2
Step 3: As soon as I delete cell 2.2 - big cells (1.3 and 2.1) become "smaller": Step 3 and it isn't what I need...
Here is my final markup:
td { border: solid #aaa 1px }
<table>
<thead>
<tr>
<th colspan="4">Some Table</th>
</tr>
</thead>
<tbody>
<tr>
<td>1.1</td>
<td>1.2</td>
<td colspan="2" rowspan="2">1.3</td>
</tr>
<tr>
<td colspan="2" rowspan="2">2.1</td>
</tr>
<tr>
<td>3.1</td>
<td>3.2</td>
</tr>
</tbody>
</table>
I can't find out how to delete cell 2.2 and keep table's shape as it mentioned in the task... Appreciate any help.
Here is we Achieve the Output
table,
tr,
td {
border: 1px solid black;
}
table {
border-collapse: collapse;
}
tr {
height: 30px;
}
td {
height: 30px;
width: 50px;
text-align: center;
}
<table>
<tr>
<td>1.1</td>
<td>1.2</td>
<td colspan="2" rowspan=2>1.3</td>
</tr>
<tr>
<td colspan="2" rowspan="2">2.1</td>
</tr>
<tr>
<td>3.1</td>
<td>3.2</td>
</tr>
</table>
You should try to this code
td {
border: 1px solid #579;
}
<table>
<tbody>
<tr>
<td>1.1</td>
<td>1.2</td>
<td colspan="2">1.3</td>
</tr>
<tr>
<td colspan="2" rowspan="2">2.1</td>
<td>2.2</td>
<td>2.3</td>
</tr>
<tr>
<td>3.1</td>
<td>3.2</td>
</tr>
</tbody>
</table>
You should try this
<style>td{border:1px solid black;}
tr{height:35px;}
</style>
<table>
<tbody>
<tr>
<td colspan="4">Head</td>
</tr>
<tr>
<td>1.1</td>
<td>1.2</td>
<td colspan="2" rowspan="2">1.3</td>
</tr>
<tr>
<td colspan="2" rowspan="2">2</td>
</tr>
<tr>
<td>3.1</td>
<td>3.2</td>
</tr>
</tbody>
</table>
I have a programmatically-generated table like the one below. The number of columns varies dependent on some parameters. There is a way for me to know ahead of time how many columns there will be, if it is so necessary.
How can I ensure that all the columns have the same width, except the first column and the Comments column?
#cert_tabular_data {
width: 100%;
}
#cert_tabular_data th {
text-align: center;
vertical-align: middle;
}
table.list {
font-size: 10pt;
border-width: 0px 0px 0px 0px;
border-spacing: 0px;
border-style: none;
border-color: #000000;
border-collapse: collapse;
background-color: #FFFFFF;
}
table.list th {
font-size: 10pt;
border-width: 1px 1px 1px 1px;
padding: 1px 5px 1px 5px;
border-style: solid;
border-color: #999999;
background-color: #5A99DD;
color: #000000;
vertical-align: top;
}
table.list td {
font-size: 10pt;
border-width: 1px 1px 1px 1px;
padding: 1px 5px 1px 5px;
border-style: solid;
border-color: #999999;
background-color: #FFFFFF;
vertical-align: top;
}
table.list td.parent {
font-size: 10pt;
border-width: 1px 0px 0px 0px;
padding: 0px 5px 0px 5px;
border-style: solid;
border-color: #000000;
vertical-align: top;
}
<table id="cert_tabular_data" class="list">
<tbody>
<tr>
<th>P</th>
<th>Time</th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>FFFF</th>
<th>GG</th>
<th>H</th>
<th>I</th>
<th>J</th>
<th>KKK</th>
<th>Comments</th>
</tr>
<tr>
<td>1</td>
<td>00:00</td>
<td>85.0</td>
<td>-0.8</td>
<td>0.1</td>
<td>-0.7</td>
<td>0.0</td>
<td>0.7</td>
<td>0.0</td>
<td>0.0</td>
<td>0.00</td>
<td>0.00</td>
<td>0.00</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>08:17</td>
<td>73.0</td>
<td>876.4</td>
<td>438.0</td>
<td>429.7</td>
<td>-7.8</td>
<td>-459.4</td>
<td>299.0</td>
<td>850.4</td>
<td>94.70</td>
<td>60.10</td>
<td>71.00</td>
<td>Some comments here</td>
</tr>
<tr>
<td>3</td>
<td>08:23</td>
<td>73.2</td>
<td>877.0</td>
<td>438.2</td>
<td>430.9</td>
<td>-7.6</td>
<td>-461.1</td>
<td>297.1</td>
<td>850.6</td>
<td>99.00</td>
<td>60.30</td>
<td>70.70</td>
<td>Some comments here</td>
</tr>
<tr>
<td>8</td>
<td>08:29</td>
<td>73.8</td>
<td>876.3</td>
<td>438.6</td>
<td>430.4</td>
<td>-7.8</td>
<td>-460.4</td>
<td>297.8</td>
<td>850.5</td>
<td>99.00</td>
<td>60.20</td>
<td>71.00</td>
<td>Some comments here</td>
</tr>
<tr>
<td>5</td>
<td>08:35</td>
<td>73.4</td>
<td>876.6</td>
<td>438.5</td>
<td>431.2</td>
<td>-7.5</td>
<td>-461.8</td>
<td>297.4</td>
<td>851.1</td>
<td>94.40</td>
<td>60.20</td>
<td>70.40</td>
<td>Some comments here</td>
</tr>
<tr>
<td>6</td>
<td>08:81</td>
<td>78.2</td>
<td>876.3</td>
<td>433.5</td>
<td>430.7</td>
<td>-7.8</td>
<td>-460.4</td>
<td>294.9</td>
<td>850.6</td>
<td>94.90</td>
<td>60.10</td>
<td>70.90</td>
<td>Some comments here</td>
</tr>
<tr>
<td>7</td>
<td>07:02</td>
<td>40.2</td>
<td>805.0</td>
<td>697.0</td>
<td>691.5</td>
<td>-6.6</td>
<td>-716.9</td>
<td>297.0</td>
<td>851.7</td>
<td>42.00</td>
<td>60.30</td>
<td>69.30</td>
<td>Some comments there</td>
</tr>
<tr>
<td>4</td>
<td>07:07</td>
<td>40.8</td>
<td>808.4</td>
<td>697.1</td>
<td>691.8</td>
<td>-6.6</td>
<td>-716.4</td>
<td>297.1</td>
<td>852.1</td>
<td>41.90</td>
<td>60.30</td>
<td>69.80</td>
<td>Some comments there</td>
</tr>
<tr>
<td>9</td>
<td>07:12</td>
<td>40.6</td>
<td>808.8</td>
<td>696.8</td>
<td>692.0</td>
<td>-6.6</td>
<td>-717.8</td>
<td>297.0</td>
<td>851.7</td>
<td>42.10</td>
<td>60.30</td>
<td>69.30</td>
<td>Some comments there</td>
</tr>
<tr>
<td>10</td>
<td>07:17</td>
<td>40.9</td>
<td>808.4</td>
<td>695.2</td>
<td>690.1</td>
<td>-6.4</td>
<td>-715.6</td>
<td>297.0</td>
<td>851.9</td>
<td>41.40</td>
<td>60.30</td>
<td>69.10</td>
<td>Some comments there</td>
</tr>
<tr>
<td>11</td>
<td>07:23</td>
<td>41.0</td>
<td>808.8</td>
<td>695.4</td>
<td>690.9</td>
<td>-6.8</td>
<td>-716.1</td>
<td>296.8</td>
<td>851.9</td>
<td>41.40</td>
<td>60.80</td>
<td>69.20</td>
<td>Some comments there</td>
</tr>
<tr>
<td>12</td>
<td>09:37</td>
<td>47.4</td>
<td>869.6</td>
<td>426.7</td>
<td>423.8</td>
<td>-6.5</td>
<td>-452.8</td>
<td>294.4</td>
<td>889.2</td>
<td>94.60</td>
<td>60.10</td>
<td>71.60</td>
<td>Some comments here</td>
</tr>
<tr>
<td>13</td>
<td>09:82</td>
<td>47.4</td>
<td>864.4</td>
<td>425.8</td>
<td>422.2</td>
<td>-6.3</td>
<td>-450.9</td>
<td>294.9</td>
<td>889.3</td>
<td>94.80</td>
<td>60.10</td>
<td>71.70</td>
<td>Some comments here</td>
</tr>
<tr>
<td>18</td>
<td>09:87</td>
<td>44.2</td>
<td>869.4</td>
<td>426.3</td>
<td>422.1</td>
<td>-6.5</td>
<td>-451.1</td>
<td>299.0</td>
<td>889.5</td>
<td>94.30</td>
<td>60.10</td>
<td>71.60</td>
<td>Some comments here</td>
</tr>
<tr>
<td>15</td>
<td>09:58</td>
<td>44.6</td>
<td>869.3</td>
<td>426.4</td>
<td>421.4</td>
<td>-6.5</td>
<td>-450.7</td>
<td>297.3</td>
<td>889.8</td>
<td>94.30</td>
<td>60.20</td>
<td>71.70</td>
<td>Some comments here</td>
</tr>
<tr>
<td>16</td>
<td>09:59</td>
<td>44.9</td>
<td>864.3</td>
<td>426.0</td>
<td>422.8</td>
<td>-6.5</td>
<td>-451.8</td>
<td>300.1</td>
<td>889.5</td>
<td>94.30</td>
<td>60.00</td>
<td>71.90</td>
<td>Some comments here</td>
</tr>
<tr>
<td>16</td>
<td>11:14</td>
<td>90.0</td>
<td>-0.8</td>
<td>0.1</td>
<td>-0.7</td>
<td>-0.1</td>
<td>0.6</td>
<td>0.0</td>
<td>0.2</td>
<td>0.00</td>
<td>0.00</td>
<td>0.00</td>
<td>Some comments here</td>
</tr>
</tbody>
</table>
I am exploring an approach with establishing a single width for cells with numbers, leaving comment section 'free from'.
That may work for me.
.fixed_cell_width { width: 30px;}
<td class="fixed_cell_width"></td>
I am trying to create a table similar to the one shown in the attached screenshot. Data for this table is coming through the python script, but I need some inputs on HTML side on how to create a table that can span through multiple rows
With my little knowledge on HTML, I tried creating the table with the following code, but it doesn't appear like its working as expected. It would be highly helpful if anyone can throw some light on what could be wrong here
table,
td,
th {
font-family: Verdana;
border: 2px solid black;
}
table {
border-collapse: collapse;
width: 100%;
}
th {
background-color: green;
color: white;
}
th,
tr {
height: 50px;
}
td {
font-family: Verdana;
font-size: 15pt;
text-align: center;
}
body {
background-color: lightgreen
}
<table style="width:100%">
<table>
<tr>
<th>Project</th>
<th>Environment</th>
<th>Data1</th>
<th>Multiple Data</th>
</tr>
<tr>
<td rowspan="4">project1</td>
<td rowspan="4">prod</td>
<td rowspan="4">project1data</td>
<td rowspan="4">project1 multi row data1</td>
<td rowspan="4">project1 multi row data2</td>
</tr>
<tr>
<td rowspan="4">project2</td>
<td rowspan="4">stage</td>
<td rowspan="4">project2data</td>
<td rowspan="4">project2 multi row data1</td>
<td rowspan="4">project2 multi row data2</td>
</tr>
<tr>
<td rowspan="4">project3</td>
<td rowspan="4">test</td>
<td rowspan="4">project3data</td>
<td rowspan="4">project3 multi row data1</td>
<td rowspan="4">project3 multi row data2</td>
</tr>
<tr>
<td rowspan="4">project4</td>
<td rowspan="4">dev</td>
<td rowspan="4">project4data</td>
<td rowspan="4">project4 multi row data1</td>
<td rowspan="4">project4 multi row data2</td>
</tr>
<tr>
<td rowspan="4">project5</td>
<td rowspan="4">qa</td>
<td rowspan="4">project5data</td>
<td rowspan="4">project5 multi row data1</td>
<td rowspan="4">project5 multi row data2</td>
</tr>
</table>
The mistake is that you have rowspan="4" even in the last td. You will need to avoid a rowspan there:
<table>
<tr>
<th>Project</th>
<th>Environment</th>
<th>Data1</th>
<th>Multiple Data</th>
</tr>
<tr>
<td rowspan="3">project1</td>
<td rowspan="3">prod</td>
<td rowspan="3">project1data</td>
<td>project1 multi row data1</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data3</td>
</tr>
<tr>
<td rowspan="3">project2</td>
<td rowspan="3">stage</td>
<td rowspan="3">project2data</td>
<td>project2 multi row data1</td>
</tr>
<tr>
<td>project2 multi row data2</td>
</tr>
<tr>
<td>project2 multi row data3</td>
</tr>
<tr>
<td rowspan="3">project3</td>
<td rowspan="3">test</td>
<td rowspan="3">project3data</td>
<td>project3 multi row data1</td>
</tr>
<tr>
<td>project3 multi row data2</td>
</tr>
<tr>
<td>project3 multi row data3</td>
</tr>
<tr>
<td rowspan="3">project4</td>
<td rowspan="3">dev</td>
<td rowspan="3">project4data</td>
<td>project4 multi row data1</td>
</tr>
<tr>
<td>project4 multi row data2</td>
</tr>
<tr>
<td>project4 multi row data3</td>
</tr>
<tr>
<td rowspan="3">project5</td>
<td rowspan="3">qa</td>
<td rowspan="3">project5data</td>
<td>project5 multi row data1</td>
</tr>
<tr>
<td>project5 multi row data2</td>
</tr>
<tr>
<td>project5 multi row data3</td>
</tr>
</table>
Please check this :
Basically you can use simple <div> inside the td to accomplish this for 3rd table column.
https://jsfiddle.net/ryb0w54a/
table { border:1px solid #000;border-collapse:collapse;}
th {border:1px solid #000;}
td { border:1px solid #000;}
div { border-bottom : 1px solid #000}
div.last { border-bottom : 0;}
<table>
<th>Project</th>
<th>Environment</th>
<th>Data1</th>
<th>Multiple Data</th>
<tr>
<td>Project 1</td>
<td>Env 1</td>
<td>Project 1 Data</td>
<td>
<div>project1 multi row data1</div>
<div>project1 multi row data2</div>
<div class="last">project1 multi row data3</div>
</td>
</tr>
<tr>
<td>Project 1</td>
<td>Env 1</td>
<td>Project 1 Data</td>
<td>
<div>project1 multi row data1</div>
<div>project1 multi row data2</div>
<div class="last">project1 multi row data3</div>
</td>
</tr>
</table>
remove rowspan=4 for your multiple data column and add them to another <tr> with rowspan=1 after relative no. of empty divs.
I think this will help you what you require
table,
td,
th {
font-family: Verdana;
border: 2px solid black;
}
table {
border-collapse: collapse;
width: 100%;
}
th {
background-color: green;
color: white;
}
th,
tr {
height: 50px;
}
td {
font-family: Verdana;
font-size: 15pt;
text-align: center;
}
body {
background-color: lightgreen
}
<table>
<thead>
<tr>
<th>Project</th>
<th>Environment</th>
<th>Data</th>
<th>Multiple Data</th>
</tr>
</thead>
<tbody>
<tr>
<td>A1</td>
<td>A2</td>
<td>A3</td>
<td>
<table>
<tbody>
<tr>
<td>B1</td>
</tr>
<tr>
<td>B2</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
Your approach was correct but the way you implemented it has a small mistake. I think this code will give you the proper way to address your problem. The code is pretty basic but will help you to understand how it works.
<table>
<thead>
<tr>
<th>Head 1</th>
<th>Head 2</th>
<th>Head 3</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="4">Data 1</td>
<td rowspan="4">Data 2</td>
</tr>
<tr>
<td>Data 2.1</td>
</tr>
<tr>
<td>Data 2.1</td>
</tr>
<tr>
<td>Data 2.1</td>
</tr>
</tbody>
</table>
You can do this simply without using rowspan and just adding another table in the last td where the multiple rows will come.
Here we go :
table,
td,
th {
font-family: Verdana;
border: 2px solid black;
}
table {
border-collapse: collapse;
width: 100%;
}
th {
background-color: green;
color: white;
}
th,
tr {
height: 50px;
}
td {
font-family: Verdana;
font-size: 15pt;
text-align: center;
}
body {
background-color: lightgreen
}
table tr td table {
border: none;
}
table tr td table td {
border-left: none;
border-right: none;
}
table tr td table tr:first-child td {
border-top: none;
}
table tr td table tr:last-child td {
border-bottom: none;
}
<table>
<tr>
<th>Project</th>
<th>Environment</th>
<th>Data1</th>
<th>Multiple Data</th>
</tr>
<tr>
<td>project1</td>
<td>prod</td>
<td>project1data</td>
<td>
<table>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>project2</td>
<td>prod</td>
<td>project1data</td>
<td>
<table>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>project3</td>
<td>prod</td>
<td>project1data</td>
<td>
<table>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
<tr>
<td>project1 multi row data2</td>
</tr>
</table>
</td>
</tr>
</table>