I have a complicated layout created with real tables and it works fine but now I created a new layout using DIVS and it worked fine until I tested height on cellphones and it looks pretty bad, it just don't want to keep my height 100% tested also set footer to margin bottom 0 and nothing so I will test the follow:
<table style="width:100%;height:100%;border:0;border-spacing:0px;border-collapse:collapse;">
<tr>
<td style="height:21px;">
<DIV style="display: table-cell;"> divvvvv </div></td>
</tr>
<tr>
<td style="height:79px;"">
</td>
</tr>
<tr>
<td style="height:100%;"> </td>
</tr>
<tr>
<td style="height:21px;"> </td>
</tr>
</table>
The question is, can I add those divs inside the table TD element without adding div-display-table and div-display-row before? It seems like the best way to go for me is to mix tables and divs. What would then be the correct way of mixing them? Because TDs in Tables will not respect the height and width neither so I must use both tables and divs seems like ...
Like this:
<div class="container">
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
</div>
Mixing in table elements with divs is eventually going to give you a headache, especially when it comes to responsive design. For this same issue, I use Bootstrap CSS. They have a grid system that is extremely effective in replacing table-style layouts and adapting to mobile devices. Your target HTML is actually really close to the markup that Bootstrap uses, so your head is obviously int he right place!
After downloading the Bootstrap js and css, I would do something like this:
<!-- the container-fluid class creates a full-width container -->
<div class="container-fluid">
<!-- the row class creates a row broken into 12 columns. -->
<div class="row">
<!-- specify how many columns an element should take up out of 12 for each given device. below is the markup for 3 evenly-spaced columns for a medium (desktop) device -->
<div class="col-md-4">Column 1</div>
<div class="col-md-4">Column 2</div>
<div class="col-md-4">Column 3</div>
</div>
<div class="row">
<div class="col-md-4">Column 1</div>
<div class="col-md-4">Column 2</div>
<div class="col-md-4">Column 3</div>
</div>
</div>
I tried to understand what you are wanting but it wasn't very clear...so this is what I assumed you meant.
DEMO
CSS:
.container {
display:table;
height:200px;
border:1px solid red;
}
.column {
display:inline-block;
}
table {
border: 1px solid black;
}
td {
width:150px;
border: 2px solid blue;
}
HTML:
<table style="width:100%;height:100%;border:0;border-spacing:0px;border-collapse:collapse;">
<tr>
<td style="height:21px;">
<div class="container">
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
<div class="row">
<div class="column">Column 1</div>
<div class="column">Column 2</div>
<div class="column">Column 3</div>
</div>
</div>
</td>
</tr>
<tr>
<td style="height:79px;"">
</td>
</tr>
<tr>
<td style="height:100%;"> </td>
</tr>
<tr>
<td style="height:21px;"> </td>
</tr>
</table>
Related
For some reason the cells in my second row in my table are changing the width of the cells in the row above. I have no idea why this is the cause. I don't want the width of the first cell in the first row to be changed. I have reproduced the problem in jsfiddle to make it clear what I mean.
FiddleJS link:
https://jsfiddle.net/bpyrgsvc/1/
HTML:
<div class="table">
<div class="row">
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
</div>
<div class="row">
<div class="cell">this changes the width of the cell above</div>
</div>
</div>
CSS:
.table {
display:table;
}
.row {
display: table-row;
}
.cell {
display: table-cell;
padding: 5px;
border: 1px solid black;
}
With CSS you can build a table using a table element and then style how you want using display: block and inline-block. Though if your need really is as simple as it appears to be then a simple colspan will do the jobs.
<table>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td colspan="4"></td>
</tr>
</table>
Appending table within the cell should clarify your issue. Refer the snippet below
.table {
display:table;
table-layout: fixed;
width: 100%;
border-collapse:collapse
}
.row {
display: table-row;
}
.cell.p0{
padding:0;
border:none
}
.cell {
display: table-cell;
padding: 5px;
border: 1px solid black;
}
.cell-full {
// full width of table
}
<div class="table">
<div class="row">
<div class="cell p0">
<div class="table">
<div class="row">
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="cell cell-full">this changes the width of the cell above</div>
</div>
</div>
I don't see anything wrong with the results. In a div set to be displayed as table and table-row, it is behaving as tables.
To get the result you want, close the first table and start another.
<div class="table">
<div class="row">
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
</div>
</div>
<div class="table">
<div class="row">
<div class="cell cell-full">this changes the width of the cell above</div>
</div>
</div>
https://jsfiddle.net/bpyrgsvc/4/
Flexbox can do that:
.row {
display: flex;
}
.cell {
flex: 1;
padding: 5px;
border: 1px solid black;
}
<div class="table">
<div class="row">
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
<div class="cell">test</div>
</div>
<div class="row">
<div class="cell">this NO LONGER changes the width of the cell above</div>
</div>
</div>
Another way is to set no wrap for whitespaces in css.
<div class="no-wrap-cell">This goes in a single line</div>
.no-wrap-cell{
white-space: nowrap !important;
}
Here is my HTML Code.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<!-- <div class="stack"> -->
<!-- Row 1 -->
<div class="stack">
<div class="row">
<div class="col" align="center">
<span style="font-weight: bold;">States of India</span>
</div>
<div class="col"></div>
<div class="col" align="center">
<span style="font-weight: bold;">United States</span>
</div>
</div> <!-- End of div row class -->
<div class="row">
<div class="col" align="center">Tamil Nadu</div>
<div class="col" align="center">Karnataka</div>
<div class="col" align="center">California</div>
</div> <!-- End of div row class -->
<div class="row">
<div class="col">
<div id="bloc11" class="donutSize">row 1 - column 1</div>
</div>
<div class="col">
<div id="bloc12" class="donutSize">row 1 - column 2</div>
</div>
<div class="col">
<div id="bloc13" class="donutSize">row 1 - column 3</div>
</div>
</div> <!-- End of div row class -->
<div class="row">
<div class="col">
<div id="bloc21">row 2 - column 1</div>
</div>
<div class="col">
<div id="bloc22">row 2 - column 2</div>
</div>
<div class="col">
<div id="bloc23">row 2 - column 3</div>
</div>
</div><!-- End of div row class -->
</div><!-- End of div stack class -->
<!-- </div> -->
<div class="stack2">
<div class="row">
<div class="col">United States & India</div>
</div>
<div class="row">
<div class="col">
<div id="skywalk-module" class="ssSize">United States and India are one of the 2 countries in the world. blah blah b</div>
</div>
</div><!-- End of div row class -->
</div><!-- End of div stack2 class -->
</body>
</html>
Css:
.stack .row,
.stack2 .row {
clear: both
}
.stack .row .col,
.stack2 .row .col {
float: left;
height: auto;
border: 1px groove
}
.stack .row .col {
width: 33%;
align-items: center
}
.stack2 .row .col {
width: 99%;
align-items: center
}
.donutSize {
width: 160px;
height: 160px;
margin: 0 auto
}
Need to align the "States of India" to be entered between "Tamil Nadu" and "Karnataka". Also no need of a border here, align it to centre, something like "colspan =2" when we use html table's.
I want a think line above "States of India", "United States" and "Karnataka".(see image label:need think border line here)
3.I want the last 2 rows , width to be in the same line as the first 4 rows. width is not coming in the same. As you can see last 2 lines are not having same width as first 4 , it has somewhat less width(see image label : align the line straight)
I want to use the DIV tags and don't want to use tables along for my own reason. I am ok with table used along with the div tags. I need div tags for each of my containers e.g.) states of india, united states, tamil nadu, karnataka, etc.
I am not able to solve this. please help.
Here is my code in JSBIN.
http://jsbin.com/fasacu/4/edit?html,css,output
I have followed the suggestion from #Quantastical + some other stack overflow answers.
HTML Code:
<!-- Row 1 -->
<div class="div-table">
<div class="div-table-row">
<div class="div-table-col1" align="center">
<span style="font-weight: bold;">States of India</span>
</div>
<div class="div-table-col" align="center">
<span style="font-weight: bold;">United States</span>
</div>
</div> <!-- End of div row class -->
</div>
<div class="div-table">
<div class="div-table-row">
<div class="div-table-col3" align="center">Tamil Nadu</div>
<div class="div-table-col3" align="center">Karnataka</div>
<div class="div-table-col3" align="center">California</div>
</div> <!-- End of div row class -->
<div class="div-table-row">
<div class="div-table-col3">
<div id="bloc11" class="donutSize">row 1 - column 1</div>
</div>
<div class="div-table-col3">
<div id="bloc12" class="donutSize">row 1 - column 2</div>
</div>
<div class="div-table-col3">
<div id="bloc13" class="donutSize">row 1 - column 3</div>
</div>
</div> <!-- End of div row class -->
<div class="row">
<div class="div-table-col3">
<div id="bloc21">row 2 - column 1</div>
</div>
<div class="div-table-col3">
<div id="bloc22">row 2 - column 2</div>
</div>
<div class="div-table-col3">
<div id="bloc23">row 2 - column 3</div>
</div>
</div><!-- End of div row class -->
</div><!-- End of div table class -->
<!-- </div> -->
<div class="div-table">
<div class="div-table-row">
<div class="div-table-col2">United States & India</div>
</div>
</div>
<div class="div-table">
<div class="div-table-row">
<div class="div-table-col2">
<div id="skywalk-module" class="ssSize">United States and India are one of the 2 countries in the world. blah blah b</div>
</div>
</div><!-- End of div row class -->
</div><!-- End of div table class -->
Css:
.div-table{
display:table;
width:auto;
border:1px solid #666666;
}
.div-table-row{
display:table-row;
width:auto;
clear:both;
}
.div-table-col{
float:left;/*fix for buggy browsers*/
display:table-column;
width:200px;
border:1px solid #666666;
}
.div-table-col3{
float:left;/*fix for buggy browsers*/
display:table-column;
width:200px;
border:1px solid #666666;
}
.div-table-col1{
float:left;/*fix for buggy browsers*/
display:table-column;
width:200px;
width:400px;
text-align:center;
border:1px solid #666666;
}
.div-table-col2{
float:left;/*fix for buggy browsers*/
display:table-column;
width:600px;
border:0px solid #666666;
}
Here is the link:
http://jsbin.com/fasacu/15/edit?html,css,output
i suggest using the table element with the cell elements associated with it instead of div tags.
For example, for your table column headings:
<table>
<tr>
<th colspan="2">India</th>
<!--table header cells by default center text both horizontally and vertically.-->
</tr>
</table>
For the alignment,:
<table>
<tr>
<th>header</th>
<th>header2</th>
<th>header3</th>
</tr>
<tr>
<td colspan="3">text string</td>
</tr>
</table>
For the border, one could style the table using css. you can add cell-spacing, set border styles differently for the cells and the table itself, etc.
Interesting that you are using divs instead of the table element to organize info. the table element keeps it all tidy, and instead of every tag beginning with "div", you can identify which elements affect rows (tr), header cells (th), and the data cells (td).
have a good week.
Im generating a table in php, and would like it in the top left of the screen.
The table varies slightly in width so directly to the right of it should go two blocks of text (text1, text2) and a third text (text3) which floats in the topmost right of the screen.
Below the three texts should be text4.
Requirements:
Text1 needs to always be to the right of the table.
text4 always needs to be below the top 3 texts.
I uploaded an image with the span/div/table/text and have literally been trying to arrange these for about 1.5 hours now. it seems like it should be really simple but im struggling with my requirements and one of them always seems to misalign. (all the 'texts' are just pieces of html text (not <input type=text or <textarea>)
Edit: Thankyou, is it possible without using libraries or bootstrap?
If you don't like using <table> tags for layouts, and don't like an extra large dependency to your project (like bootstrap), one could go for the following option:
<div class="table">
Table
</div>
<div class="text-container">
<div class="text1">
Text1
</div>
<div class="text2">
Text2
</div>
<div class="text3">
Text3
</div>
<div class="text4">
Text4
</div>
</div>
It is crucial that the display type of .table, .text-container and .text{1,2,3} are all display: inline-block;. This will make them inline. However, to force wrapping of .text4, this will still have to be display: block;.
https://jsfiddle.net/nnLofpL1/
Like hjardine uses in his example: it may also be a good idea to look to the clear property.
However it is not the nicest solution, the classic "table in table" does the job:
<table>
<tr>
<td>
<table>
<tr>
<td>PHP generated data</td>
</tr>
</table>
</td>
<td>
<table>
<tr style="height: 60px;">
<td>Text 1</td>
<td style="padding-left: 100px;">Text 2</td>
<td style="width: 200px; text-align: right;">Text 3</td>
</tr>
<tr style="height: 60px;">
<td colspan="3">Text 4</td>
</tr>
</table>
</td>
</tr>
</table>
https://jsfiddle.net/jrrfbqfk/
I can see you don't want to use bootstrap so i have updated an answer so that you don't have to use a table either, exact same output but without the problems of using a table for output.
.div1{float:left;width:40%;border:1px solid #000;min-height:200px;}
.div2{float:right;width:58%;border:1px solid #000;min-height:200px;}
.row1{min-height:100px;}
.sp1{float:left;width:30%;padding:4px;border:1px solid #000;min-height:60px;}
.sp2{float:left;width:30%;padding:4px;border:1px solid #000;min-height:60px;}
.sp3{float:right;width:30%;text-align:right;padding:4px;border:1px solid #000;min-height:60px;}
.divRow{width:100%;border: 1px solid #000;}
<div>
<div class="div1">
<div class="divRow">1</div>
<div class="divRow">2</div>
<div class="divRow">3</div>
<div class="divRow">4</div>
<div class="divRow">5</div>
<div class="divRow">6</div>
</div>
<div class="div2">
<div>
<div class="row1">
<div class="sp1">1</div>
<div class="sp2">2</div>
<div class="sp3">3</div>
<div style="clear:both;"></div>
</div>
<div class="row2" style="border:1px solid #000;min-height:40px;">
sadsadsad
</div>
</div>
</div>
<div style="clear:both;">
</div>
</div>
An easy solution to laying out a page so that things are where you want them is using bootstrap, because of the grid layout in bootstrap you can keep things in the same relative positions no matter what the size of the page is.
For what you want to do i think it would benefit you greatly.
EXAMPLE
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<div class="Container">
<div class="row">
<div class="col-xs-2">
Top left
</div>
<div class="col-xs-2 col-xs-offset-8">
Top right
</div>
</div>
</div>
This is a link to Bootstrap which is well worth learning IMHO!
This behaviour is a little weird, I think.
I have such a structure
<div class="canvas">
<div class="table">
<div class="row">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
</div>
</div>
Where .table, .row, .cell are display:table, table-row and table-cell.
Say a cell has a fixed width of 100px and the canvas has a width of 250px and overflow:hidden, the last cell in the row will break down. The table seems to inherit the width of the canvas. Never defined it anywhere.
Why is table not just simply growing with it cells? I mean it's a table, I don't want rows to break. If I wanted that, I would use divs.
How can I get the table to behave like I expected?
Thanks.
Consider these 3 samples, the first 2 have a surrounding div where the last of those 2 is using "min-width" and the last (3:rd) without any div.
All 3 "groups" have a div with display: table and a normal table element.
As far as I can see, they all behave as they supposed to, so to answer your question(s):
It's correct that there isn't a defined width on the table, but there is one on its parent, which then sets a boundary to which the table try to adapt. There is also a width set to a cell, which it tries to adapt to. This should make (and obviously does) the table's cells to break line.
If one would remove all the width/min-width: *px then it will start to grow, as I guess you expected, but only until it hits the next boundary, which in this case is the body, and when there, it will start break line again.
How do you expect them to behave?
.canvas {
width: 250px;
overflow: hidden;
}
.canvas.min-width {
width: auto;
min-width: 250px;
}
.table {
display: table;
}
.row {
display: table-row;
}
.cell {
display: table-cell;
width: 100px;
vertical-align: top;
}
<div class="canvas">
<div class="table">
<div class="row">
<div class="cell"> Heyyyy </div>
<div class="cell"> Heyyyyy 2 </div>
<div class="cell"> Heyyyyyy 33333333 44444444444 5555555555555555</div>
</div>
</div>
<table>
<tr>
<td class="cell"> Heyyyy </td>
<td class="cell"> Heyyyyy 2 </td>
<td class="cell"> Heyyyyyy 33333333 44444444444 5555555555555555</td>
</tr>
</table>
</div>
<hr />
<div class="canvas min-width">
<div class="table">
<div class="row">
<div class="cell"> Heyyyy </div>
<div class="cell"> Heyyyyy 2 </div>
<div class="cell"> Heyyyyyy 33333333 44444444444 5555555555555555</div>
</div>
</div>
<table>
<tr>
<td class="cell"> Heyyyy </td>
<td class="cell"> Heyyyyy 2 </td>
<td class="cell"> Heyyyyyy 33333333 44444444444 5555555555555555</td>
</tr>
</table>
</div>
<hr />
<div class="table">
<div class="row">
<div class="cell"> Heyyyy </div>
<div class="cell"> Heyyyyy 2 </div>
<div class="cell"> Heyyyyyy 33333333 44444444444 5555555555555555</div>
</div>
</div>
<table>
<tr>
<td class="cell"> Heyyyy </td>
<td class="cell"> Heyyyyy 2 </td>
<td class="cell"> Heyyyyyy 33333333 44444444444 5555555555555555</td>
</tr>
</table>
The task is pretty strange. I have to create html table BUT I'm not allowed to use traditional <table> tag. My table should look like this:
It would be easy to do it like below:
<table>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td colspan="5"></td>
</tr>
...
but, as I said, I'm not allowed to use traditional table tags (table, tr, td, th). Here is JSFIddle of what I have at the moment. How can I get the same result as with <td colspan="5"></td> but using only divs and CSS.
EDITS:
* Table cell's width in one row must not be fixed, it should be dynamic and it should be possible to make them (cells) different width (in one row).
* Table cell's width in different rows of the same column must be equal. Like in traditional table. Only "colspanned" cell's width must be different.
As stated in CSS 2.1 specification in part "17.5 Visual layout of table contents"
Cells may span several rows or columns. (Although CSS 2.1 does not define how the number of spanned rows or columns is determined ...
So the answer is easy! Don't think of CSS tables exactly the same as HTML tables. As there are some differences like what mentioned in "17.2.1 Anonymous table objects":
... the "missing" elements must be assumed in order for the table model to work. Any table element will automatically generate necessary anonymous table objects around itself, consisting of at least three nested objects corresponding to a 'table'/'inline-table' element, a 'table-row' element, and a 'table-cell' element. ...
So you can do it this way (each row as a table and dropped table-row for avoiding unnecessary div block) until they specify a way for defining number of spanned rows or columns:
CSS
.row {
display: table;
width: 100%;
}
.cell {
display: table-cell;
width: 16.67%;
}
.wideCell {
display: table-cell;
}
HTML
<div class="row">
<div class="cell">One</div>
<div class="cell">Two</div>
<div class="cell">Three</div>
<div class="cell">Four</div>
<div class="cell">Five</div>
<div class="wideCell">Six</div>
</div>
<div>One Two Three Four Five Six</div>
<div class="row">
<div class="cell">One</div>
<div class="cell">Two</div>
<div class="cell">Three</div>
<div class="cell">Four</div>
<div class="cell">Five</div>
<div class="wideCell">Six</div>
</div>
You need to use CSS float and width to get the table-like effect you're looking for. What I'm basically doing is I'm placing 5 divs all with a fixed width and class name, and floating them to the left. The wideCell has the same width the .wrapper which just holds them all together in a nice block.
HTML
<div class="wrapper">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
<div class="wideCell"></div>
</div>
CSS
.wrapper {
width:510px;
}
.cell {
width:100px;
height:50px;
background-color:#ff0000;
float:left;
border:1px #000 solid;
}
.wideCell {
width:508px;
height:50px;
background-color:#ff0000;
float:left;
border:1px #000 solid;
}
DEMO
EDIT
CSS
.table{
width: 100%;
}
.table .row{
width: 100%;
height: 25px;
margin: 0px;
padding: 0px;
}
.table .row .cell{
width: 150px;
float: left;
border: solid 1px #CCC;
height: 25px;
}
.table .clear_float{
clear: both;
}
.table .row .cell.rowspan{
width: 759px;
border: solid 1px #CCC;
}
html
<div class="table">
<div class="row">
<div class="cell">One</div>
<div class="cell">Two</div>
<div class="cell">Three</div>
<div class="cell">Four</div>
<div class="cell">Five</div>
</div>
<div class="clear_float" />
<div class="row">
<div class="cell rowspan">
One Two Three Four Five
</div>
</div>
<div class="clear_float" />
<div class="row">
<div class="cell">One</div>
<div class="cell">Two</div>
<div class="cell">Three</div>
<div class="cell">Four</div>
<div class="cell">Five</div>
</div>
<div class="clear_float" />
<div class="row">
<div class="cell rowspan">
One Two Three Four Five
</div>
</div>
<div class="clear_float" />
<div class="row">
<div class="cell">One</div>
<div class="cell">Two</div>
<div class="cell">Three</div>
<div class="cell">Four</div>
<div class="cell">Five</div>
</div>
<div class="clear_float" />
<div class="row">
<div class="cell rowspan">
One Two Three Four Five
</div>
</div>
</div>
I have searched a lot there is nothing like colspan in display:table CSS.
You can try this: CSS display:table
<div style="display:table;">
<div style="display:table-row;">
<span style="display:table-cell;">Name</span>
<span style="display:table-cell;"><input type="text"/></span>
</div>
<div style="display:table-row;">
<span style="display:table-cell;">E-Mail</span>
<span style="display:table-cell;"><input type="text"/></span>
</div>
<div style="display:table-row;">
<span style="display:table-cell;">Password</span>
<span style="display:table-cell;"><input type="text"/></span>
</div>
</div>
<div style="display:table;">
<div style="display:table-row; " >
<span style="display:table-cell;">
<button>Send Message</button>
</span>
</div>
</div>
You can do this ( where data-x has the appropriate display:xxxx set ):
<!-- TH -->
<div data-tr>
<div data-th style="width:25%">TH</div>
<div data-th style="width:50%">
<div data-table style="width:100%">
<div data-tr>
<div data-th style="width:25%">TH</div>
<div data-th style="width:25%">TH</div>
<div data-th style="width:25%">TH</div>
<div data-th style="width:25%">TH</div>
</div>
</div>
</div>
<div data-th style="width:25%">TH</div>
</div>
<!-- TD -->
<div data-tr>
<div data-td style="width:25%">TD</div>
<div data-th style="width:50%">
<div data-table style="width:100%">
<div data-tr>
<div data-td style="width:25%">TD</div>
<div data-td style="width:25%">TD</div>
<div data-td style="width:25%">TD</div>
<div data-td style="width:25%">TD</div>
</div>
<div data-tr>
...
</div>
</div>
</div>
<div data-td style="width:25%">TD</div>
</div>
Check this fiddle out i hope that would suffice what you need
html tables
CSS
div.table {border: 1px solid black; display: table; }
div.tr {border: 1px solid black; display: table-row; }
div.td {border: 1px solid black; display: table-cell; }
Html
<div class="table">
<div class="tr">
<div class="td">Row 1, Cell 1</div>
<div class="td">Row 1, Cell 2</div>
<div class="td">Row 1, Cell 3</div>
</div>
<div class="tr">
<div class="td">Row 2, Cell 1</div>
<div class="td">Row 2, Cell 2</div>
<div class="td">Row 2, Cell 3</div>
</div>