Example of slanted row layout.
Two examples are given - the first only works if the width is fixed, the second is responsive.
Example of slanted row layout.
Two examples are given - the first only works if the width is fixed, the second is responsive.
| <html> | |
| <head> | |
| <style> | |
| /** | |
| Assumptions -width = 900px | |
| **/ | |
| .row { | |
| height:200px; | |
| position:relative; | |
| width:900px; | |
| margin:auto; | |
| } | |
| .row p { | |
| width:600px; | |
| } | |
| .row img { | |
| width:300px; | |
| display:block; | |
| float:left; | |
| height:200px; | |
| z-index:-1000; | |
| } | |
| .row::after { | |
| display:block; | |
| content: ""; | |
| clear:both; | |
| float:none; | |
| } | |
| .left img, .left p { | |
| float:left; | |
| } | |
| .right img, .right p { | |
| float:right; | |
| } | |
| .row.dark { | |
| background: rgba( 0,123,182,1); | |
| } | |
| .row.med { | |
| background: rgba( 0,179,220,1); | |
| } | |
| .row.light { | |
| background: #87d3e1; | |
| } | |
| .top, .bottom { | |
| position:absolute; | |
| width:0; | |
| height:0; | |
| } | |
| .top { | |
| top:-20px; | |
| z-index:1000; | |
| border-left: 150px solid transparent; | |
| border-right: 150px solid transparent; | |
| border-top:10px solid transparent; | |
| } | |
| .bottom { | |
| bottom:-20px; | |
| z-index:20; | |
| border-left: 150px solid transparent; | |
| border-right: 150px solid transparent; | |
| border-bottom:10px solid transparent; | |
| } | |
| .left .top{ | |
| left:300px; | |
| border-left:300px solid transparent; | |
| } | |
| .left .bottom { | |
| left:600px; | |
| border-left:150px solid transparent; | |
| } | |
| .right .top{ | |
| right:300px; | |
| border-right:300px solid transparent; | |
| } | |
| .right .bottom { | |
| right:600px; | |
| border-right:150px solid transparent; | |
| } | |
| .dark .top { | |
| border-bottom:10px solid rgba( 0,123,182,1); | |
| } | |
| .dark .bottom { | |
| border-top:10px solid rgba( 0,123,182,1); | |
| } | |
| .med .top { | |
| border-bottom:10px solid rgba( 0,179,220,1); | |
| } | |
| .med .bottom { | |
| border-top:10px solid rgba( 0,179,220,1); | |
| } | |
| .light .top { | |
| border-bottom:10px solid #87d3e1; | |
| } | |
| .light .bottom { | |
| border-top:10px solid #87d3e1; | |
| } | |
| .left.dark .top { | |
| border-right: 300px solid rgba( 0,123,182,1); | |
| } | |
| .left.dark .bottom { | |
| border-right: 150px solid rgba( 0,123,182,1); | |
| } | |
| .right.dark .top { | |
| border-left: 300px solid rgba( 0,123,182,1); | |
| } | |
| .right.dark .bottom { | |
| border-left: 150px solid rgba( 0,123,182,1); | |
| } | |
| .left.med .top { | |
| border-right: 300px solid rgba( 0,179,220,1); | |
| } | |
| .left.med .bottom { | |
| border-right: 150px solid rgba( 0,179,220,1); | |
| } | |
| .right.med .top { | |
| border-left: 300px solid rgba( 0,179,220,1); | |
| } | |
| .med.right .bottom { | |
| border-left: 150px solid rgba( 0,179,220,1); | |
| } | |
| .left.light .top { | |
| border-right: 300px solid #87d3e1; | |
| } | |
| .light.left .bottom { | |
| border-right: 150px solid #87d3e1; | |
| } | |
| .right.light .top { | |
| border-left: 300px solid #87d3e1; | |
| } | |
| .right.light .bottom { | |
| border-left: 150px solid #87d3e1); | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <p> | |
| Some stuff, like a header. <br> | |
| <a href="responsive.html"> Responsive version </a> | |
| </p> | |
| <div class="row left dark"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row right med"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row left light"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row right dark"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row left med"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row right light"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| </body> | |
| </html> |
| <html> | |
| <head> | |
| <style> | |
| .row { position:relative; | |
| width:90%; | |
| margin:auto; | |
| } | |
| .left img, .left p { | |
| float:left; | |
| } | |
| .right img, .right p { | |
| float:right; | |
| } | |
| .row p { | |
| width:60%; | |
| } | |
| .row img { | |
| display:block; | |
| width:30%; | |
| z-index:-1000; | |
| } | |
| .row::after { | |
| display:block; | |
| content: ""; | |
| clear:both; | |
| float:none; | |
| } | |
| .row.dark { | |
| background: rgba( 0,123,182,1); | |
| } | |
| .row.med { | |
| background: rgba( 0,179,220,1); | |
| } | |
| .row.light { | |
| background: #87d3e1; | |
| } | |
| .top, .bottom { | |
| position:absolute; | |
| width:0; | |
| height:0; | |
| z-index:1000; | |
| } | |
| .top:after, .bottom:after { | |
| content: ""; | |
| display: block; | |
| width: 0; | |
| height: 0; | |
| } | |
| /** THE FOLLOWING IS COMPLETELY BASED OFF OF THIS JS FIDDLE | |
| * https://jsfiddle.net/josedvq/3HG6d/ | |
| */ | |
| /*Up-right pointing = Bottom of left floating rows | |
| * For a slope of 1/10, you need to set the ratio of | |
| * padding-left:padding-top = 10 | |
| * margin-left : margin-top = 10 | |
| * border-left : border-top = 10 | |
| * For other slopes set the ratio accordingly | |
| */ | |
| .left .bottom { | |
| padding-left:30%; | |
| padding-top: 3%; | |
| overflow: hidden; | |
| left:70%; | |
| top:100%; | |
| } | |
| .left .bottom:after { | |
| margin-left:-5000px; | |
| margin-top:-500px; | |
| border-left: 5000px solid transparent; | |
| border-top: 500px solid black; | |
| } | |
| /*Down-right pointing = Top of left floating rows | |
| * border-top:margin-top = 1 | |
| * width:padding-top = 10 | |
| * border-right:border-top = 10 | |
| */ | |
| .left .top { | |
| left:30%; | |
| top:-44%; | |
| width: 70%; | |
| padding-top: 10%; | |
| overflow: hidden; | |
| } | |
| .left .top:after { | |
| margin-top:-500px; | |
| border-top: 500px solid transparent; | |
| border-right: 5000px solid black; | |
| } | |
| /*Down-left pointing = top of right aligned rows | |
| * width:padding-bottom = 10 | |
| * border-right:border-bottom = 10 | |
| * Adjust the top accordingly (not sure what the rule should be) | |
| */ | |
| .right .top { | |
| top:-31%; | |
| width: 70%; | |
| padding-bottom: 7%; | |
| overflow: hidden; | |
| } | |
| .right .top:after { | |
| border-right: 5000px solid transparent; | |
| border-bottom: 500px solid black; | |
| } | |
| /*Up-left pointing = Bottom of left aligned rows | |
| * For a slope of 1/10 use the following ratios: | |
| * padding-left:padding-bottom : 10 | |
| * margin-left:border-left : 1 | |
| * margin-left:border-bottom : 10 | |
| * Adjust bottom accordingly (not sure what the rule should be) | |
| */ | |
| .right .bottom { | |
| bottom:-13%; | |
| padding-bottom: 3%; | |
| padding-left: 30%; | |
| overflow: hidden; | |
| } | |
| .right .bottom:after { | |
| margin-left: -5000px; | |
| border-bottom: 500px solid transparent; | |
| border-left: 5000px solid black; | |
| } | |
| /** Fix the triangle colors **/ | |
| .dark.right .bottom:after { | |
| border-left: 5000px solid rgba( 0,123,182,1); | |
| } | |
| .med.right .bottom:after { | |
| border-left: 5000px solid rgba( 0,179,220,1); | |
| } | |
| .light.right .bottom:after { | |
| border-left: 5000px solid #87d3e1; | |
| } | |
| .dark.right .top:after { | |
| border-bottom: 500px solid rgba( 0,123,182,1); | |
| } | |
| .med.right .top:after { | |
| border-bottom: 500px solid rgba( 0,179,220,1); | |
| } | |
| .light.right .top:after { | |
| border-bottom: 500px solid #87d3e1; | |
| } | |
| .dark.left .bottom:after { | |
| border-top: 500px solid rgba( 0,123,182,1); | |
| } | |
| .med.left .bottom:after { | |
| border-top: 500px solid rgba( 0,179,220,1); | |
| } | |
| .light.left .bottom:after { | |
| border-top: 500px solid #87d3e1; | |
| } | |
| .dark.left .top:after { | |
| border-right: 5000px solid rgba( 0,123,182,1); | |
| } | |
| .med.left .top:after { | |
| border-right: 5000px solid rgba( 0,179,220,1); | |
| } | |
| .light.left .top:after { | |
| border-right: 5000px solid #87d3e1; | |
| } | |
| .row:last-child .bottom {display:none;} | |
| .row:first-child .top {display:none;} | |
| </style> | |
| </head> | |
| <body> | |
| <p> | |
| Some stuff, like a header. <br> | |
| <a href="index.html"> Fixed width version </a> | |
| </p> | |
| <div> | |
| <div class="row left dark"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row right med"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| This will break if the content exceeds the height of the row. | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row left light"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row right dark"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row left med"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| <div class="row right light"> | |
| <div class="top"> </div> | |
| <img src="sample.jpg"> | |
| <p> | |
| Lorem ipsum | |
| </p> | |
| <div class="bottom"> </div> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |