Reputation: 495
I am trying to create a grid image, that shows the path through a maze.
I have everything working except for the grid system doesn't page break.
Example
The desired result would be like this without space between the rows
Here is the source code (Note: this will be auto-generated by the app when I can get the display correct)
.centered {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transform: -webkit-translate(-50%, -50%);
transform: -moz-translate(-50%, -50%);
transform: -ms-translate(-50%, -50%);
}
.block {
float: left;
width: 20px;
height: 20px;
border: 1px solid rgba(0, 0, 0, .2);
}
.red {
background: red;
}
.white {
background: white;
}
.green {
background: green;
}
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="assets/style/form_styles.css">
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
</p>
<p>
<div class="block red"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block red"></div>
</p>
<p>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
</p>
<p>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
</p>
<p>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
</p>
<p>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
</p>
<p>
<div class="block red"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block red"></div>
</p>
<p>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
</p>
</body>
</html>
I have tried removing the
and I get the straight line.
How can I get the rows to actually be rows?
Upvotes: 0
Views: 41
Reputation: 11533
As Alon Eitan pointed out <p>
tags aren't probably the best here. If you have control over the markup output, I would suggest changing the wraps to <div>
or something similar:
<div class="rowwrap">
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
</div>
<div class="rowwrap">
<div class="block red"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block red"></div>
</div>
<div class="rowwrap">
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
</div>
<div class="rowwrap">
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
</div>
<div class="rowwrap">
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
</div>
<div class="rowwrap">
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block red"></div>
</div>
<div class="rowwrap">
<div class="block red"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block white"></div>
<div class="block red"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block green"></div>
<div class="block red"></div>
</div>
<div class="rowwrap">
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
<div class="block red"></div>
</div>
CSS:
.centered {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transform: -webkit-translate(-50%, -50%);
transform: -moz-translate(-50%, -50%);
transform: -ms-translate(-50%, -50%);
}
.rowwrap {
margin: 15px 0;
}
.rowwrap::after {
content: '';
display: block;
clear: both;
}
.block {
float: left;
width: 20px;
height: 20px;
border: 1px solid rgba(0, 0, 0, .2);
}
.red {
background: red;
}
.white {
background: white;
}
.green {
background: green;
}
Because all your blocks float, you'll also need to clear them before the next row. I added a pseudo element to the rowwrap
to do that.
Fiddle with working example: https://jsfiddle.net/zjedzyje/
Upvotes: 2