Related
I have generated html and css that users will be printing. Each <div class="entry">...</div> should effectively be an index card with content. I added these rules to the <body>
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(auto-fill, 120px);
grid-row-gap: 0.5em;
grid-column-gap: 1em;
and the layout looks reasonable except that when printing it will break some of the cards accross pages so I added
#media print {
.entry {
break-inside: avoid;
}
}
This does not work, the print preview still shows the page breaks coming in the middle of the entry divs.
If I remove the grid css then the break-inside: avoid is honored.
Is there any reasonable way to get these two features to work together?
Edit: At Brett's request here is a jsfiddle https://jsfiddle.net/3sxt192h/ with the minimal repro content
If you take that html and css and remove both display:grid and break-inside the print preview shows it breaking inside a div. Adding the break-inside works and it doesn't break mid-div. Add display:grid and you can see that it breaks mid-div again.
I got the same results as you when I tried it.
You could use CSS columns instead of a grid, which seems to work fine in Chrome, but not in Safari. Here is the code I used. I tried it as a snippet, but that changes the printing behaviour :-(
<html>
<head>
<style>
body {
columns: 2;
gap: 1em;
margin: 1em;
}
p {
break-inside: avoid;
padding: 1em;
border: 2px solid black;
background: cyan;
}
</style>
</head>
<body>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin egestas dui eget eros consectetur, vel lacinia erat tempor. Nunc volutpat, ante quis condimentum faucibus, mi augue posuere libero, luctus luctus leo lacus et ex. Donec non vehicula augue. Mauris a imperdiet est, eu mollis risus. Cras ac libero ac nunc posuere porttitor. Phasellus congue magna quis magna blandit, at feugiat lorem consequat. Aliquam est magna, malesuada non enim ut, vehicula accumsan odio. Donec aliquet, ante at vulputate vehicula, mi justo venenatis turpis, pretium laoreet neque augue quis lacus. Maecenas finibus sed velit vel laoreet. Nunc porttitor sit amet turpis vel efficitur.</p>
<p>Duis mollis volutpat enim, non dignissim libero tincidunt at. Nam mauris nunc, fermentum non suscipit quis, ultricies ac augue. Suspendisse bibendum, massa vel tempus tristique, purus dui tristique ligula, et venenatis sem tortor nec nibh. Aliquam eget justo nec ipsum tincidunt congue non quis velit. Morbi fringilla, erat ut gravida eleifend, mauris urna posuere mauris, id porta turpis felis at nisl. Quisque et mi ac urna viverra efficitur eu sed turpis. Phasellus eget pulvinar lectus. In ac felis id sapien gravida convallis in at lorem.</p>
<p>Donec tincidunt ac tortor sit amet sodales. Nam convallis enim sem, id consectetur nisl ultricies sit amet. Aenean maximus, purus commodo luctus pharetra, lectus lectus lobortis eros, at tristique mi velit vel elit. Pellentesque sed justo non tellus blandit elementum. Phasellus arcu ipsum, posuere id venenatis a, faucibus ut nulla. Sed scelerisque sapien a augue efficitur, ac lobortis nulla sollicitudin. Pellentesque vitae neque vitae turpis aliquet tincidunt. Morbi at ex magna. Vestibulum ornare lacinia rutrum. Curabitur luctus, magna eget consequat rhoncus, purus nunc egestas nulla, at sollicitudin dui lacus et massa. Duis sit amet risus sit amet turpis dignissim lacinia. Suspendisse sagittis cursus dui ut rhoncus. Integer eu ex leo. In sit amet nisi mi. Curabitur nec mollis tortor.</p>
<p>Suspendisse potenti. Sed a hendrerit diam. Praesent tincidunt ut sapien sed porttitor. Fusce consectetur volutpat faucibus. Mauris iaculis efficitur risus, at tempus odio tincidunt at. Praesent volutpat nibh ac elit gravida tempor. Integer laoreet ac nisl ut pretium. Suspendisse et magna ut risus congue tincidunt.</p>
<p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed non diam viverra, vestibulum magna et, varius dui. In vitae eros efficitur, scelerisque est vitae, fermentum ipsum. Duis imperdiet in orci ut porttitor. In ultrices sollicitudin elementum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus elementum magna ornare, tincidunt elit ac, aliquam elit. Suspendisse dictum fermentum massa, a vehicula nisi finibus nec. In mattis tincidunt tellus, ac consequat leo aliquet at. Phasellus ultricies, lorem sed placerat porttitor, urna augue hendrerit mauris, at accumsan tortor justo eu felis. Cras id lacus aliquam, malesuada erat nec, malesuada libero.</p>
<p>Curabitur at ipsum vitae lacus fermentum tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Maecenas eu lorem sit amet augue pellentesque pharetra. Praesent semper libero nec efficitur tincidunt. Suspendisse faucibus ultricies porttitor. Duis luctus ut neque tristique condimentum. Aenean ut massa id felis pretium rutrum.</p>
<p>Aenean ultrices, urna a facilisis luctus, diam quam efficitur eros, a posuere leo metus ultrices est. Morbi venenatis dolor ut justo finibus, in semper nisl auctor. Aenean risus ex, viverra vitae neque nec, eleifend laoreet sem. Nam suscipit magna non lectus imperdiet, sit amet venenatis enim molestie. Vestibulum id felis vel dolor hendrerit fringilla nec venenatis odio. Donec dapibus, nunc non pellentesque efficitur, ipsum tortor condimentum tortor, sed laoreet diam ante nec urna. Sed leo massa, eleifend sit amet iaculis at, placerat at elit. Nullam at mollis purus. Quisque faucibus enim hendrerit lacus volutpat, eu dignissim dui venenatis. Nulla accumsan turpis vitae lobortis tincidunt. Morbi maximus arcu sapien, eu tincidunt justo vestibulum eu. Suspendisse luctus tellus dolor, a ornare leo imperdiet sed.</p>
<p>Pellentesque maximus, urna in posuere faucibus, enim sem molestie ante, vel mollis tellus massa vitae odio. Sed elementum at turpis sit amet semper. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent risus ex, commodo sodales iaculis vitae, cursus sit amet nulla. Proin venenatis neque felis, id vulputate arcu cursus et. Quisque venenatis tellus id nisl convallis, id mollis massa condimentum. Vestibulum aliquet tristique lacus vitae viverra. Integer tincidunt eu diam a molestie. Curabitur eleifend urna sit amet aliquet sodales. Suspendisse et felis et metus lobortis faucibus quis eu eros. Nulla a augue dolor. Vestibulum sit amet leo sagittis, interdum mi eget, aliquam sem. Morbi elementum, tellus eu molestie sagittis, diam ipsum euismod nulla, at aliquet sapien tellus non nisi. Donec malesuada tellus lorem, vitae ullamcorper massa sagittis et. Praesent sodales tincidunt eros, eget tempor enim blandit vitae.</p>
<p>Aliquam gravida sagittis imperdiet. Fusce pellentesque metus vitae velit pharetra, eu tempus risus tempus. Maecenas egestas, turpis id euismod tristique, eros dui tempor elit, eu vulputate ipsum eros quis nibh. Nulla facilisi. Aliquam eget dui condimentum, tempor sapien in, dapibus magna. Nam nec velit mauris. Nunc auctor, eros quis bibendum lacinia, elit diam ornare nulla, ut viverra arcu nibh in odio. Quisque nibh ipsum, dictum ullamcorper purus in, condimentum fermentum risus. Nullam eget mollis magna. Phasellus rhoncus dignissim blandit. Sed massa ex, mollis id placerat in, convallis in velit. Sed molestie volutpat justo sit amet eleifend.</p>
<p>Ut dui est, mollis eget efficitur quis, dapibus et quam. Sed est erat, pulvinar et efficitur et, blandit sit amet purus. Nunc congue vitae enim id interdum. In euismod, felis at faucibus euismod, nunc nulla varius nisl, ut viverra nisl lectus a ipsum. Nunc sollicitudin felis eget viverra accumsan. Mauris id sem elit. Praesent ultrices lorem quis est malesuada, congue imperdiet mi sodales. Curabitur laoreet velit nisl, eget viverra ex posuere ac. Nullam pretium est ac semper fringilla. Integer sed egestas elit. Sed eu pharetra felis. Morbi eget enim sit amet tellus rutrum tincidunt. Nullam in efficitur magna. Suspendisse lobortis nisi at lectus blandit, vitae ullamcorper urna placerat. Proin consequat, risus ut condimentum tristique, ex nibh vehicula dolor, non viverra eros odio eu augue.</p>
<p>Donec lectus sem, feugiat sed augue ac, dapibus bibendum leo. Donec pharetra vehicula fermentum. Donec ac urna lacus. Maecenas felis elit, laoreet ut vulputate ut, pretium in nisi. Integer elementum at enim eu pellentesque. Nunc in ornare erat. Donec sed hendrerit massa. Nunc mattis nunc at ex cursus, vel sodales turpis pulvinar.</p>
<p>Suspendisse euismod condimentum scelerisque. Donec finibus justo at erat molestie, venenatis lobortis justo blandit. Fusce id arcu maximus, scelerisque dui eu, blandit dui. Morbi rhoncus pharetra porta. Duis rhoncus dui nec odio rhoncus mollis. Aenean et metus turpis. Duis ut metus mi. Nam eleifend sapien et nisl vehicula iaculis. Praesent tortor tellus, pulvinar at ipsum ac, euismod porta felis. Nullam iaculis, ante vel pulvinar lobortis, mauris eros auctor nisl, consectetur maximus turpis lectus at odio.</p>
<p>Cras sed ex eget nibh fermentum molestie. In hac habitasse platea dictumst. In ac sollicitudin risus, id auctor elit. Fusce lacus orci, mattis ac neque non, malesuada feugiat mi. Morbi vel fringilla odio. In et nisi feugiat, varius ipsum nec, scelerisque massa. Etiam tincidunt rutrum sagittis. Fusce fringilla tincidunt vehicula. Pellentesque nec sem sed dui ultricies scelerisque. In pulvinar lacus sed eros cursus, imperdiet blandit neque fringilla. Nulla tempor molestie mattis. Donec et faucibus nibh. Duis nec turpis felis. Cras tempus eros quis nisi malesuada, non auctor neque porta.</p>
<p>Nullam est sapien, gravida finibus metus in, feugiat viverra nunc. Aenean at ultrices velit. Aenean tellus sapien, convallis eget metus at, elementum aliquet nunc. Vestibulum vestibulum risus quis arcu malesuada, eu feugiat velit elementum. Cras gravida ut massa ac aliquam. Fusce ornare luctus massa nec vestibulum. Sed vitae blandit ante. Nullam sed metus malesuada, bibendum sem sit amet, ullamcorper justo.</p>
<p>Ut sagittis semper molestie. Suspendisse potenti. Quisque eu commodo nisl. Praesent bibendum fermentum erat, vel mattis lacus aliquam eget. Morbi a laoreet risus, a tincidunt lectus. Integer elementum, justo nec commodo tempor, eros libero pretium diam, id feugiat magna risus at neque. In hac habitasse platea dictumst. Integer non dapibus velit. Maecenas fringilla dolor quis rutrum bibendum. Nam tincidunt hendrerit ullamcorper. Praesent tempus lacus et dui consequat dignissim. Vivamus sit amet scelerisque nulla.</p>
<p>Cras et ipsum ut lorem pellentesque vulputate. Vestibulum molestie, lectus pulvinar suscipit suscipit, sem turpis dignissim magna, et ornare mauris purus bibendum metus. Phasellus in scelerisque augue. Vestibulum iaculis non dui sit amet lobortis. Nunc semper massa sed risus placerat, at ultrices libero varius. Nulla metus nunc, vestibulum at vulputate a, ultrices vitae dui. Praesent luctus consectetur felis, eget lobortis purus tristique vel. Donec tincidunt felis eget augue tincidunt dapibus.</p>
</body>
</html>
I wonder if it's possible with css to achieve a fixed position clipping mask that cuts out part of a <div>.
Like the below example, except that the .myMask should really be transparent and reveal the layer underneath .myDiv.
Doesn't have to be a sticky topbar, though that should be the easiest case if it's possible at all. But ideally it could be anywhere, fixed to the viewport.
body{
margin: 0;
}
.myMask{
position: sticky;
top: 0px;
height: 50px;
background: white;
z-index: 2;
border: 1px dashed black;
}
.myDiv{
position: relative;
z-index: 1;
background: lightblue;
padding: 10px
}
<div class="myMask"></div>
<div class="myDiv">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer rutrum, sem nec interdum accumsan, eros magna porttitor augue, eget porta leo lectus non turpis. Pellentesque eu molestie nisl, at efficitur diam. Aliquam erat volutpat. Nunc in urna tristique nisl hendrerit ullamcorper ut varius lectus. Duis nec sapien semper, cursus enim lacinia, eleifend lacus. Praesent in odio eget tortor pretium laoreet. Praesent sit amet ante quis tellus aliquet interdum ut vitae sem. Aliquam viverra, ligula non consequat maximus, metus quam tincidunt tortor, quis finibus ipsum est sit amet magna. Pellentesque egestas lectus vitae felis mollis, eget ornare ipsum aliquam. Nullam non dui mollis, pulvinar velit vitae, tincidunt leo. Nulla facilisi. Praesent ut tellus eros. Mauris tempor turpis ut lorem pellentesque euismod hendrerit ut velit.
Nam mollis sed nibh et congue. Sed in sagittis elit. Quisque placerat augue vel malesuada fringilla. Donec sit amet faucibus lectus. Fusce faucibus dolor neque, porttitor interdum felis pellentesque malesuada. Nulla elementum dictum elementum. Proin semper, tortor sit amet porttitor consectetur, nisl nibh pellentesque elit, posuere vehicula leo eros vel odio.
Sed in massa faucibus urna vehicula facilisis. Quisque rutrum bibendum libero, quis aliquet urna congue ac. Curabitur aliquet porta aliquam. Sed volutpat hendrerit ligula nec efficitur. Mauris ullamcorper lacinia est, sit amet aliquet nunc efficitur sit amet. Nulla lacinia vehicula urna, quis iaculis leo aliquam quis. Sed feugiat suscipit nunc, et lobortis neque placerat eu. Donec interdum tincidunt tincidunt. Sed metus neque, congue non orci eget, pretium pellentesque tortor. Aenean quis pulvinar mi. Nullam eu nulla purus.
Etiam rhoncus tellus sodales tempus accumsan. Morbi sed feugiat sem, in vestibulum risus. Duis pharetra vulputate dolor, ut posuere lectus vestibulum non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse eu placerat neque. Phasellus vel ante eget felis tempus interdum vel ac tortor. Donec et commodo nunc. Nullam maximus elit sed enim dictum, a suscipit ante ultricies. Proin ut mollis lorem, nec sodales eros.
Duis bibendum varius nunc id semper. Cras lacinia elit quis libero dictum accumsan. In hac habitasse platea dictumst. Proin egestas eu leo non hendrerit. Morbi ac ex eu nibh tincidunt pulvinar. Proin sollicitudin dignissim tincidunt. Nullam ultricies metus urna, in varius arcu accumsan sed. Suspendisse elementum urna risus, at tincidunt tortor bibendum sed. Proin dapibus commodo massa, ut eleifend odio hendrerit a. Quisque maximus magna non quam dapibus, in consectetur libero rutrum. Maecenas sed dapibus ante, eu sodales orci. Praesent tincidunt aliquet ligula. Nulla sagittis turpis id dui hendrerit aliquam. Mauris quis erat velit. Vivamus ipsum orci, suscipit in ornare ut, suscipit placerat justo.</div>
One idea is to consider background coloration for the text then we can rely on background-attachment:fixed
Unfortunately the below doesn't work on Firefox due to a known bug
body {
margin: 0;
background:linear-gradient(60deg,red,blue);
}
.myDiv {
background:
linear-gradient(#000,#000), /* color of the text */
linear-gradient(lightblue,lightblue); /* color of the background*/
background-position:0 50px; /* push for background by 50px from the top */
background-repeat:no-repeat; /* don't repeat !!*/
-webkit-background-clip:
text,
padding-box;
background-clip:
text,
padding-box;
background-attachment:fixed; /* make background fixed to scroll */
/* Remove default coloration of text*/
-webkit-text-fill-color: transparent;
color:transparent;
/**/
padding: 60px 10px 10px;
font-size:25px;
}
<div class="myDiv">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer rutrum, sem nec interdum accumsan, eros magna porttitor augue, eget porta leo lectus non turpis. Pellentesque eu molestie nisl, at efficitur diam. Aliquam erat volutpat. Nunc in urna tristique
nisl hendrerit ullamcorper ut varius lectus. Duis nec sapien semper, cursus enim lacinia, eleifend lacus. Praesent in odio eget tortor pretium laoreet. Praesent sit amet ante quis tellus aliquet interdum ut vitae sem. Aliquam viverra, ligula non consequat
maximus, metus quam tincidunt tortor, quis finibus ipsum est sit amet magna. Pellentesque egestas lectus vitae felis mollis, eget ornare ipsum aliquam. Nullam non dui mollis, pulvinar velit vitae, tincidunt leo. Nulla facilisi. Praesent ut tellus eros.
Mauris tempor turpis ut lorem pellentesque euismod hendrerit ut velit. Nam mollis sed nibh et congue. Sed in sagittis elit. Quisque placerat augue vel malesuada fringilla. Donec sit amet faucibus lectus. Fusce faucibus dolor neque, porttitor interdum
felis pellentesque malesuada. Nulla elementum dictum elementum. Proin semper, tortor sit amet porttitor consectetur, nisl nibh pellentesque elit, posuere vehicula leo eros vel odio. Sed in massa faucibus urna vehicula facilisis. Quisque rutrum bibendum
libero, quis aliquet urna congue ac. Curabitur aliquet porta aliquam. Sed volutpat hendrerit ligula nec efficitur. Mauris ullamcorper lacinia est, sit amet aliquet nunc efficitur sit amet. Nulla lacinia vehicula urna, quis iaculis leo aliquam quis.
Sed feugiat suscipit nunc, et lobortis neque placerat eu. Donec interdum tincidunt tincidunt. Sed metus neque, congue non orci eget, pretium pellentesque tortor. Aenean quis pulvinar mi. Nullam eu nulla purus. Etiam rhoncus tellus sodales tempus accumsan.
Morbi sed feugiat sem, in vestibulum risus. Duis pharetra vulputate dolor, ut posuere lectus vestibulum non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse eu placerat neque. Phasellus vel ante
eget felis tempus interdum vel ac tortor. Donec et commodo nunc. Nullam maximus elit sed enim dictum, a suscipit ante ultricies. Proin ut mollis lorem, nec sodales eros. Duis bibendum varius nunc id semper. Cras lacinia elit quis libero dictum accumsan.
In hac habitasse platea dictumst. Proin egestas eu leo non hendrerit. Morbi ac ex eu nibh tincidunt pulvinar. Proin sollicitudin dignissim tincidunt. Nullam ultricies metus urna, in varius arcu accumsan sed. Suspendisse elementum urna risus, at tincidunt
tortor bibendum sed. Proin dapibus commodo massa, ut eleifend odio hendrerit a. Quisque maximus magna non quam dapibus, in consectetur libero rutrum. Maecenas sed dapibus ante, eu sodales orci. Praesent tincidunt aliquet ligula. Nulla sagittis turpis
id dui hendrerit aliquam. Mauris quis erat velit. Vivamus ipsum orci, suscipit in ornare ut, suscipit placerat justo.</div>
For firefox you can consider another wrapper:
body {
margin: 0;
background:linear-gradient(64deg,red,blue);
}
.myDiv {
background:linear-gradient(lightblue,lightblue);
background-position:0 50px;
background-attachment:fixed;
background-repeat:no-repeat;
padding: 60px 10px 10px;
font-size:25px;
}
.myDiv > div {
background:linear-gradient(#000,#000);
-webkit-background-clip:text;
background-clip:text;
-webkit-text-fill-color: transparent;
color:transparent;
background-attachment:inherit;
background-position:inherit;
background-repeat:inherit;
}
<div class="myDiv">
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer rutrum, sem nec interdum accumsan, eros magna porttitor augue, eget porta leo lectus non turpis. Pellentesque eu molestie nisl, at efficitur diam. Aliquam erat volutpat. Nunc in urna tristique
nisl hendrerit ullamcorper ut varius lectus. Duis nec sapien semper, cursus enim lacinia, eleifend lacus. Praesent in odio eget tortor pretium laoreet. Praesent sit amet ante quis tellus aliquet interdum ut vitae sem. Aliquam viverra, ligula non consequat
maximus, metus quam tincidunt tortor, quis finibus ipsum est sit amet magna. Pellentesque egestas lectus vitae felis mollis, eget ornare ipsum aliquam. Nullam non dui mollis, pulvinar velit vitae, tincidunt leo. Nulla facilisi. Praesent ut tellus eros.
Mauris tempor turpis ut lorem pellentesque euismod hendrerit ut velit. Nam mollis sed nibh et congue. Sed in sagittis elit. Quisque placerat augue vel malesuada fringilla. Donec sit amet faucibus lectus. Fusce faucibus dolor neque, porttitor interdum
felis pellentesque malesuada. Nulla elementum dictum elementum. Proin semper, tortor sit amet porttitor consectetur, nisl nibh pellentesque elit, posuere vehicula leo eros vel odio. Sed in massa faucibus urna vehicula facilisis. Quisque rutrum bibendum
libero, quis aliquet urna congue ac. Curabitur aliquet porta aliquam. Sed volutpat hendrerit ligula nec efficitur. Mauris ullamcorper lacinia est, sit amet aliquet nunc efficitur sit amet. Nulla lacinia vehicula urna, quis iaculis leo aliquam quis.
Sed feugiat suscipit nunc, et lobortis neque placerat eu. Donec interdum tincidunt tincidunt. Sed metus neque, congue non orci eget, pretium pellentesque tortor. Aenean quis pulvinar mi. Nullam eu nulla purus. Etiam rhoncus tellus sodales tempus accumsan.
Morbi sed feugiat sem, in vestibulum risus. Duis pharetra vulputate dolor, ut posuere lectus vestibulum non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse eu placerat neque. Phasellus vel ante
eget felis tempus interdum vel ac tortor. Donec et commodo nunc. Nullam maximus elit sed enim dictum, a suscipit ante ultricies. Proin ut mollis lorem, nec sodales eros. Duis bibendum varius nunc id semper. Cras lacinia elit quis libero dictum accumsan.
In hac habitasse platea dictumst. Proin egestas eu leo non hendrerit. Morbi ac ex eu nibh tincidunt pulvinar. Proin sollicitudin dignissim tincidunt. Nullam ultricies metus urna, in varius arcu accumsan sed. Suspendisse elementum urna risus, at tincidunt
tortor bibendum sed. Proin dapibus commodo massa, ut eleifend odio hendrerit a. Quisque maximus magna non quam dapibus, in consectetur libero rutrum. Maecenas sed dapibus ante, eu sodales orci. Praesent tincidunt aliquet ligula. Nulla sagittis turpis
id dui hendrerit aliquam. Mauris quis erat velit. Vivamus ipsum orci, suscipit in ornare ut, suscipit placerat justo.</div></div>
I'm creating an HTML template for DOMPDF need to support multiple pages, but the header and footer doesn't show up on the first page when I have multiple pages.
At the moment;
When I have multiple pages, all pages have Header and Footer correctly except the first (the First page only shows content, page 2,3 and shows content with header and footer).
When I just have one page, the pages shows correctly with header and footer.
<style>
* {
background:transparent;
}
#page {
margin: 0cm 0cm;
background:#000;
margin-top: 190px;
margin-left: 75px;
margin-right: 75px;
margin-bottom: 115px;
position: reletive;
}
header {
position: fixed;
top: -190px;
left: -13px;
z-index:0;
right: 0cm;
}
footer {
position: fixed;
bottom: -115px;
right: 0cm;
left:39px;
z-index:0;
height: 215px;
}
div.content {
float: left;
width: 100%;
}
div {
z-index:10;
background:transparent;
}
</style>
<div class="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean pharetra leo bibendum mi fermentum euismod. Aenean ut augue mauris. Vivamus ultricies euismod malesuada. Praesent mollis eros vel elit ullamcorper, nec viverra justo ultrices. Sed sagittis nisi sit amet convallis placerat. Nam sed dui quis lacus auctor eleifend. Nulla in imperdiet magna, eget dignissim tellus. Quisque placerat nisl a orci tincidunt, sit amet porta nibh dapibus. Vestibulum tortor neque, consequat nec nibh ornare, convallis sagittis ligula. Integer a ex at sapien porttitor volutpat ut in elit.</p>
<p>Fusce nunc orci, posuere sed varius ac, ornare eu orci. Donec consequat pulvinar eleifend. Donec rutrum fringilla dignissim. In consectetur ligula nec pulvinar placerat. Duis interdum accumsan congue. Nulla iaculis magna laoreet dolor tempor, vitae eleifend lectus accumsan. Suspendisse vulputate euismod ante, at blandit tellus auctor a. Sed aliquam lacus eget mi fermentum, vitae maximus elit rhoncus. Nunc vel sagittis orci.v
<p>Quisque fermentum augue in metus laoreet placerat. Nam eget nisi congue, luctus augue quis, ullamcorper est. Nullam eu augue sed dui imperdiet ornare ac interdum lacus. Mauris in viverra lorem. Duis cursus mi quis pellentesque condimentum. Vivamus ut nisl lacus. Phasellus condimentum eros non massa porta rutrum. Proin lacinia ultrices dui ut iaculis. Praesent ut placerat tellus, ac hendrerit mi.</p>
<p>Suspendisse vitae velit maximus, convallis ipsum vel, ornare sem. Curabitur et viverra ligula. Phasellus facilisis neque eu nunc interdum tempor. Mauris tellus lacus, vestibulum sed posuere eu, porttitor non orci. Proin sollicitudin et nisl eget mattis. Donec euismod ipsum quis interdum dictum. Duis facilisis accumsan ultricies. Praesent sollicitudin urna nunc, at auctor odio blandit nec. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean consequat, magna a molestie commodo, mauris lacus congue nisi, quis pellentesque nunc quam in metus. Duis volutpat neque in justo sodales, eget ultricies libero pellentesque.</p>
<p>Curabitur euismod velit turpis, consectetur ornare erat aliquam a. Nulla sagittis commodo varius. Pellentesque tempor, nibh a hendrerit tristique, turpis leo lacinia elit, vitae scelerisque dolor ex ac lectus. Maecenas vulputate dictum erat, quis posuere nisl pellentesque vitae. Nulla auctor volutpat lacus, sed sodales mi porta at. In ut purus augue. Fusce nec nulla non leo finibus pharetra. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras viverra id ante sed porttitor. Nam et dolor congue, malesuada enim facilisis, rutrum justo. Etiam quis lectus a tellus mollis placerat. Maecenas interdum tortor faucibus metus tincidunt euismod. Vestibulum laoreet velit quis lobortis interdum. Duis urna quam, vehicula sed ultricies ut, volutpat accumsan libero.</p>
<p>Morbi pulvinar tristique augue, vel pellentesque nisl porta eget. Quisque eu lacinia leo. Nullam ac lacus pretium, suscipit risus quis, volutpat ligula. Morbi vel nisl orci. Suspendisse pharetra tellus euismod ligula tristique, sit amet lacinia nisl ultrices. Curabitur finibus turpis nec metus tempus, non suscipit leo pulvinar. Pellentesque fringilla faucibus massa. Suspendisse commodo egestas tristique. Phasellus tristique vehicula nisl ut consectetur. Aliquam hendrerit augue eu posuere fermentum. Nulla a neque quis ex finibus congue. Vestibulum id condimentum augue. Nulla pretium imperdiet turpis, sit amet cursus urna maximus quis. Praesent dictum, leo nec ultricies fermentum, eros leo maximus felis, in aliquam lectus ligula at mauris. Etiam non ipsum at dui fringilla ullamcorper. Donec sapien lorem, aliquam in lacus at, lacinia pretium velit.</p>
<p>Nulla ultrices rhoncus massa, eu dignissim purus scelerisque ut. Aenean id odio molestie neque tincidunt porttitor. Vivamus eget ultrices lacus. Etiam vitae sagittis orci. Etiam sed ullamcorper eros. Nulla consequat dignissim pretium. Morbi volutpat, quam nec vehicula venenatis, mauris ipsum egestas lacus, nec gravida augue dolor scelerisque enim. Aenean ac pretium ligula. Sed eget dui mi. Morbi et scelerisque diam, ac laoreet tortor. In lobortis, neque vel interdum convallis, elit mauris porta erat, id vestibulum dui nunc porttitor urna. Nulla elementum varius est, a varius mauris hendrerit non. Praesent malesuada ex nisi, sit amet imperdiet mauris vestibulum vel.</p>
<p>Duis at augue ultricies, cursus felis quis, laoreet odio. Ut eget diam neque. Sed a condimentum ex. Donec quis erat eget sem feugiat iaculis ac id dolor. Morbi sit amet convallis neque, mattis egestas nunc. Vestibulum sed laoreet nunc, id viverra nisl. Sed quis ornare erat, vel malesuada sem. Suspendisse vitae hendrerit erat, non maximus metus. Phasellus eget erat ac ipsum placerat vehicula. Aenean in metus pulvinar, posuere enim vitae, imperdiet enim. Aliquam erat volutpat. Donec luctus sapien in malesuada auctor. Donec ullamcorper leo ac sapien vehicula, non iaculis magna pulvinar. Sed tincidunt porta ex sed euismod. Pellentesque consequat tortor lacus, non blandit ex viverra vel. Nam non libero at libero interdum eleifend.</p>
<p>Phasellus in est at nunc cursus luctus eget at ipsum. Vivamus massa sem, auctor quis velit eget, pellentesque pellentesque sapien. Nulla id maximus mauris. Pellentesque consequat tempor mattis. Fusce nec cursus nulla. Fusce vestibulum mauris in erat porttitor vehicula. Nullam pellentesque metus eget ornare auctor. Fusce facilisis risus vitae arcu accumsan efficitur. Vivamus porttitor augue risus, nec venenatis dui imperdiet quis.</p>
<p>Sed et arcu a tellus vulputate dignissim. Pellentesque egestas arcu vel quam auctor sollicitudin. Vestibulum at lacus eu sapien lacinia consequat. Vivamus sed turpis in eros consequat tempor sit amet non purus. Phasellus elementum lacinia metus vel varius. Morbi ut velit augue. Suspendisse rutrum vehicula metus, id faucibus magna. Curabitur magna metus, tempus consequat ex quis, dignissim sollicitudin nibh.</p>
<p>Nulla ultrices rhoncus massa, eu dignissim purus scelerisque ut. Aenean id odio molestie neque tincidunt porttitor. Vivamus eget ultrices lacus. Etiam vitae sagittis orci. Etiam sed ullamcorper eros. Nulla consequat dignissim pretium. Morbi volutpat, quam nec vehicula venenatis, mauris ipsum egestas lacus, nec gravida augue dolor scelerisque enim. Aenean ac pretium ligula. Sed eget dui mi. Morbi et scelerisque diam, ac laoreet tortor. In lobortis, neque vel interdum convallis, elit mauris porta erat, id vestibulum dui nunc porttitor urna. Nulla elementum varius est, a varius mauris hendrerit non. Praesent malesuada ex nisi, sit amet imperdiet mauris vestibulum vel.</p>
<p>Duis at augue ultricies, cursus felis quis, laoreet odio. Ut eget diam neque. Sed a condimentum ex. Donec quis erat eget sem feugiat iaculis ac id dolor. Morbi sit amet convallis neque, mattis egestas nunc. Vestibulum sed laoreet nunc, id viverra nisl. Sed quis ornare erat, vel malesuada sem. Suspendisse vitae hendrerit erat, non maximus metus. Phasellus eget erat ac ipsum placerat vehicula. Aenean in metus pulvinar, posuere enim vitae, imperdiet enim. Aliquam erat volutpat. Donec luctus sapien in malesuada auctor. Donec ullamcorper leo ac sapien vehicula, non iaculis magna pulvinar. Sed tincidunt porta ex sed euismod. Pellentesque consequat tortor lacus, non blandit ex viverra vel. Nam non libero at libero interdum eleifend.</p>
<p>Phasellus in est at nunc cursus luctus eget at ipsum. Vivamus massa sem, auctor quis velit eget, pellentesque pellentesque sapien. Nulla id maximus mauris. Pellentesque consequat tempor mattis. Fusce nec cursus nulla. Fusce vestibulum mauris in erat porttitor vehicula. Nullam pellentesque metus eget ornare auctor. Fusce facilisis risus vitae arcu accumsan efficitur. Vivamus porttitor augue risus, nec venenatis dui imperdiet quis.</p>
<p>Sed et arcu a tellus vulputate dignissim. Pellentesque egestas arcu vel quam auctor sollicitudin. Vestibulum at lacus eu sapien lacinia consequat. Vivamus sed turpis in eros consequat tempor sit amet non purus. Phasellus elementum lacinia metus vel varius. Morbi ut velit augue. Suspendisse rutrum vehicula metus, id faucibus magna. Curabitur magna metus, tempus consequat ex quis, dignissim sollicitudin nibh.</p>
<p>Nulla ultrices rhoncus massa, eu dignissim purus scelerisque ut. Aenean id odio molestie neque tincidunt porttitor. Vivamus eget ultrices lacus. Etiam vitae sagittis orci. Etiam sed ullamcorper eros. Nulla consequat dignissim pretium. Morbi volutpat, quam nec vehicula venenatis, mauris ipsum egestas lacus, nec gravida augue dolor scelerisque enim. Aenean ac pretium ligula. Sed eget dui mi. Morbi et scelerisque diam, ac laoreet tortor. In lobortis, neque vel interdum convallis, elit mauris porta erat, id vestibulum dui nunc porttitor urna. Nulla elementum varius est, a varius mauris hendrerit non. Praesent malesuada ex nisi, sit amet imperdiet mauris vestibulum vel.</p>
<p>Duis at augue ultricies, cursus felis quis, laoreet odio. Ut eget diam neque. Sed a condimentum ex. Donec quis erat eget sem feugiat iaculis ac id dolor. Morbi sit amet convallis neque, mattis egestas nunc. Vestibulum sed laoreet nunc, id viverra nisl. Sed quis ornare erat, vel malesuada sem. Suspendisse vitae hendrerit erat, non maximus metus. Phasellus eget erat ac ipsum placerat vehicula. Aenean in metus pulvinar, posuere enim vitae, imperdiet enim. Aliquam erat volutpat. Donec luctus sapien in malesuada auctor. Donec ullamcorper leo ac sapien vehicula, non iaculis magna pulvinar. Sed tincidunt porta ex sed euismod. Pellentesque consequat tortor lacus, non blandit ex viverra vel. Nam non libero at libero interdum eleifend.</p>
<p>Phasellus in est at nunc cursus luctus eget at ipsum. Vivamus massa sem, auctor quis velit eget, pellentesque pellentesque sapien. Nulla id maximus mauris. Pellentesque consequat tempor mattis. Fusce nec cursus nulla. Fusce vestibulum mauris in erat porttitor vehicula. Nullam pellentesque metus eget ornare auctor. Fusce facilisis risus vitae arcu accumsan efficitur. Vivamus porttitor augue risus, nec venenatis dui imperdiet quis.</p>
<p>Sed et arcu a tellus vulputate dignissim. Pellentesque egestas arcu vel quam auctor sollicitudin. Vestibulum at lacus eu sapien lacinia consequat. Vivamus sed turpis in eros consequat tempor sit amet non purus. Phasellus elementum lacinia metus vel varius. Morbi ut velit augue. Suspendisse rutrum vehicula metus, id faucibus magna. Curabitur magna metus, tempus consequat ex quis, dignissim sollicitudin nibh.</p>
</div>
<footer>
<img src="'.__DIR__.'/bottom.png" alt="" style="width:680px;"/>
</footer>
<header>
<img src="'.__DIR__.'/top.png" alt="" style="margin: 0px 0px 0px 0px; width:732px;"/>
</header>
In dompdf (up to and including version 0.8.3, latest release as of this post) elements are (generally speaking) rendered starting with the page on which they first appear. Because of this you'll want to put any header/footer content at the top of your document.
There is an issue related to this quirk here: https://github.com/dompdf/dompdf/issues/491
I have a fixed div at the bottom of my page, but it is covering up another div that is behind it. How can I make it where the markup behind the fixed div can be scrolled? My end goal is to have the buttons fixed at the very bottom but if the content is behind the buttons then allow the scrollbar to show. I tried adding an over-flow:auto, but it didn't change. My assumption why that didn't work is because the viewport does think that the div behind the button is viewable...But the fixed position div just has a higher z value so it's just going to cover it anyways. I don't want to add any padding to accommodate the empty space.
Parent Container
.page-container {
padding: 10px;
position: relative;
.page-title {
margin-bottom: 15px;
}
.page-title-fixed {
position: fixed;
left: 0;
right: 0;
margin-top: -15px;
padding: 15px;
margin-bottom: 0;
padding-bottom: 0;
background: $bgGray;
z-index: 999;
.page-title { margin-bottom: 0; }
}
}
Fixed Buttons styling
style={{
position: 'fixed',
bottom: 0,
left: 0,
height: 60,
width: '100%',
display: 'flex',
justifyContent: 'space-between',
alignItems: 'center',
backgroundColor: '#f6f6f6',
borderTop: '1px solid #e0e0e0'
}}
If I understand what you're asking, you want to have a fixed element, but you need to be able to scroll down through body content without the fixed element obscuring the body content?
If so, the simplest way is to add padding to the bottom of the body content equivalent to (or higher) than the fixed element. This will ensure that as you scroll all the way down you won't have text fall behind the fixed element.
(If I misunderstood please clarify and I'll try to help further)
.content {
width: 100%;
height:90%;
padding: 20px;
font-family: sans-serif;
/* This doesn't let the text fall behind the fixed element */
padding-bottom: 90px;
}
.fixed {
position: fixed;
bottom: 0;
width: 100%;
height: auto;
background: #007ccc;
color: #fff;
font-family: sans-serif;
padding: 30px 0;
text-align: center;
}
<div class="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin commodo tristique orci id tincidunt. Aliquam erat volutpat. Aliquam erat volutpat. Etiam hendrerit, nisi non pharetra laoreet, mauris odio ultricies ligula, id convallis dolor augue vitae velit. Praesent condimentum metus at turpis consequat, sed posuere orci euismod. Suspendisse in quam facilisis, imperdiet dolor at, dignissim risus. Mauris ut libero ante. Donec porttitor nibh sit amet massa tristique efficitur. Aenean commodo vel nisi ac lacinia. Etiam in faucibus enim, eget vehicula sem. Etiam justo nunc, bibendum id ligula nec, ultrices accumsan lorem. Mauris imperdiet augue vitae vulputate efficitur. Donec id sapien dui. Nam lacus nibh, cursus sed laoreet a, feugiat id arcu. Cras sed ultricies nibh, pretium placerat augue.
Maecenas mattis arcu augue, interdum rhoncus mauris condimentum at. Donec pharetra eleifend tincidunt. Sed iaculis orci id ex dapibus scelerisque. Aenean euismod felis sit amet enim dictum, sed pellentesque nisi rutrum. Pellentesque iaculis massa non massa aliquam volutpat. Praesent interdum varius orci, in ullamcorper turpis eleifend at. Phasellus in cursus lacus, at ultricies mauris. Pellentesque tristique tellus non pharetra vulputate. Proin sodales felis est, sit amet ornare turpis blandit eu.
Nulla finibus purus vel elit vehicula, ut tincidunt diam suscipit. Nullam sed congue nisi, eget venenatis felis. Integer hendrerit est sit amet elementum tempor. Duis molestie mi id consequat semper. Donec rutrum sed lectus et pellentesque. Vestibulum sit amet ligula elit. Donec et felis at mi volutpat finibus. Suspendisse vitae libero gravida, gravida erat non, mattis turpis. Cras facilisis porta diam, vel molestie libero hendrerit sed. Proin imperdiet commodo metus non pulvinar. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean tristique elit eu blandit imperdiet. Suspendisse tincidunt turpis at orci tincidunt molestie. Vestibulum dapibus maximus augue, ut cursus ante convallis non.
Nulla id feugiat nulla, at placerat ipsum. Sed id turpis quis mauris vehicula eleifend vel at risus. Vestibulum dictum orci in augue finibus, a lacinia nisi rutrum. Cras vehicula sodales enim sit amet maximus. Donec in justo porta, volutpat mi eget, feugiat elit. Nunc bibendum bibendum quam sit amet pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nam ipsum tellus, tincidunt nec laoreet sit amet, semper in lorem. Donec suscipit risus quis pellentesque porta. Duis ac felis lobortis, blandit purus eu, dapibus arcu. Nullam semper varius felis nec gravida. Nullam feugiat convallis porta.
Praesent mollis urna ex, a luctus dui tristique et. Nulla bibendum tristique erat, ac consequat ligula suscipit ut. Morbi turpis nulla, facilisis et maximus eu, pretium et magna. Integer egestas est id neque dictum ullamcorper. Etiam consequat dolor at nulla maximus, id dictum dui laoreet. Sed mattis ex in tortor malesuada sagittis. Nulla facilisi. Maecenas sapien erat, pretium ac dignissim nec, tincidunt ut nisi. Quisque tincidunt volutpat dui, ut vulputate nunc lobortis a. Mauris felis nisl, imperdiet varius iaculis sit amet, tempor ac erat. Proin sodales elementum finibus. Fusce ut ultricies nisl, sed venenatis justo. Pellentesque diam urna, semper et risus at, placerat finibus risus.
Sed sagittis mattis lorem, vitae dictum nunc egestas a. Sed pretium orci vitae ipsum pretium posuere. Sed commodo dui eget dignissim luctus. Nullam ullamcorper libero cursus libero lobortis, nec tempus eros varius. Fusce massa ligula, lacinia in quam sit amet, placerat ullamcorper tellus. Donec convallis justo non sem viverra hendrerit. Sed ac vestibulum ipsum, ac euismod augue. Donec tempus dignissim arcu in bibendum. Donec placerat vitae nunc consequat laoreet. Vivamus sagittis interdum arcu et interdum. Aliquam ullamcorper fringilla ultrices. Nulla tempus risus at interdum sagittis. Praesent ultrices, ex at viverra ultricies, lectus augue tempus justo, id luctus leo augue sed urna. Quisque nec mi et risus blandit volutpat. Nulla at purus in nunc tincidunt lacinia et eu libero.
Donec velit nibh, fringilla eu condimentum vitae, dapibus sed nibh. Nunc urna tellus, iaculis non congue id, posuere sit amet neque. Curabitur vehicula finibus orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed facilisis tortor sed mauris vehicula, vel commodo nisi faucibus. Duis sit amet euismod nisi. Duis efficitur, dolor ut ultrices accumsan, purus purus cursus felis, ac sodales libero justo efficitur magna. Morbi tellus tortor, tempor in mauris at, dapibus iaculis diam. Suspendisse condimentum magna nec libero dignissim, eu fermentum justo lobortis. Mauris ut dapibus lacus. Nullam ligula ipsum, posuere id lacus et, ultricies blandit sapien. Integer enim nisl, euismod eu venenatis a, consectetur sit amet ante. Aenean eu porta ipsum.
Aenean a lobortis massa, id efficitur tellus. Maecenas bibendum orci non imperdiet accumsan. Ut luctus magna id mi lacinia, in feugiat justo porta. Phasellus efficitur elementum tellus, in porttitor enim semper non. Interdum et malesuada fames ac ante ipsum primis in faucibus. Etiam cursus justo non aliquam posuere. Nunc tempor eget dui quis rhoncus. Nulla facilisi. Curabitur nec maximus nunc, condimentum accumsan massa.
Fusce justo leo, laoreet quis consectetur sed, cursus sed purus. Sed eget tincidunt velit. Donec id lectus a urna volutpat dictum. Aliquam commodo tincidunt lectus, a viverra enim. Nulla nec ante porttitor nunc sagittis tempus. Praesent volutpat porttitor est nec aliquet. Praesent aliquam aliquam leo laoreet ultricies. Mauris cursus leo at tortor ornare, et dictum libero fringilla. Ut massa est, fringilla eget nisi non, iaculis semper ligula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut congue pellentesque arcu ac laoreet. Nam eu malesuada justo.
Ut egestas ornare tellus nec iaculis. Sed sit amet purus eu diam interdum tempus. Integer bibendum dignissim justo. Suspendisse sed arcu faucibus ex aliquet feugiat. Nulla vestibulum, felis sed ultrices varius, tellus purus rutrum diam, vitae molestie enim nulla non dui. Duis ultricies mi tortor, sed molestie sem rhoncus vel. Quisque tincidunt viverra sapien, sed tristique justo volutpat sed. Nunc tempor sit amet nulla vel tincidunt. Suspendisse pellentesque facilisis sapien id faucibus. Donec sodales finibus augue, ut volutpat est auctor sit amet. Sed rutrum, lacus at rhoncus condimentum, tortor lectus porta eros, et blandit nibh elit in diam. Pellentesque semper et metus eget posuere. Integer at velit elit. Praesent non malesuada nisl.
Duis ut lacus tellus. Vivamus aliquam magna eu sem suscipit, non bibendum mauris lobortis. Donec placerat purus eget tortor blandit, at iaculis nibh pretium. Cras quis sollicitudin erat. Ut finibus mollis sem et vehicula. Mauris rutrum gravida blandit. Sed velit mi, congue vel arcu sit amet, mollis laoreet mauris. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce a hendrerit nunc. Pellentesque aliquam dictum arcu, eu mattis nunc consectetur nec. Fusce a malesuada turpis, in venenatis mi.
Maecenas nisl lorem, hendrerit vel dignissim id, efficitur et ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum molestie neque ut imperdiet vestibulum. Ut a felis et ligula scelerisque venenatis. Donec fermentum ex risus, ac eleifend eros tempor non. Maecenas consectetur purus eu dapibus efficitur. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Pellentesque vestibulum magna quis mollis commodo. Proin sed ex mollis, rhoncus turpis cursus, laoreet augue. Maecenas non enim diam. Fusce ultricies malesuada orci. Sed dictum cursus fermentum. Nunc vehicula felis non ex congue, eget fringilla lectus fringilla. Nulla aliquam nec arcu et dictum.
Nulla tincidunt purus sapien, in semper lectus viverra sed. In vulputate ante sit amet elit placerat semper. Duis lorem tellus, tempus in leo tincidunt, iaculis commodo risus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque vitae vestibulum elit. Ut facilisis lectus sed arcu dapibus facilisis id sed sapien. Nullam varius quam at enim vehicula ullamcorper. Proin nec mauris fringilla, mattis purus ac, efficitur felis. Mauris fringilla tellus non ligula ornare mollis. Aliquam pulvinar condimentum consequat. Nam sed libero non dui placerat ultricies.
Quisque pulvinar eros quis lacus dapibus vestibulum. Morbi quis orci ut nisl auctor auctor quis et dui. Fusce ex quam, aliquam at libero scelerisque, tincidunt euismod nulla. Integer vulputate dui sit amet sodales convallis. Duis porttitor nibh risus, a iaculis elit mattis suscipit. In hendrerit nibh erat, et aliquet magna cursus sit amet. Nullam libero leo, semper quis nulla id, pharetra euismod erat. Nulla vel est at lacus dictum pulvinar. Praesent pretium ante dolor, vel facilisis sapien porttitor sed. Nunc in aliquam ante. Proin consequat consectetur urna, eu pellentesque ipsum pharetra ut. Donec ultrices nisl vitae lorem suscipit consectetur. Phasellus vitae lorem et libero dapibus ullamcorper et eu mi.
Sed sagittis, tellus id congue egestas, felis magna tempor risus, nec dictum felis libero eget nunc. Maecenas id eleifend turpis. Nunc placerat odio dui, ut hendrerit tellus suscipit vitae. Morbi nunc lectus, lacinia scelerisque tortor ut, tincidunt fringilla lorem. Nullam dignissim eros eget ipsum rhoncus efficitur. Donec ac quam sodales, tempus risus vitae, aliquet lectus. Aenean non finibus risus. Mauris maximus egestas metus ut malesuada. Morbi egestas tempor tincidunt. Integer sagittis mi vitae elit sodales vestibulum. Curabitur varius dui a massa hendrerit fringilla. Pellentesque imperdiet ipsum in metus ornare sagittis. Nam eget posuere ante, id hendrerit est. Vestibulum vehicula aliquet odio et ornare. Curabitur augue diam, scelerisque vel dapibus eget, facilisis sed turpis. Morbi auctor faucibus lacus sed accumsan.
Integer consectetur dui nibh, varius ullamcorper lectus feugiat id. Vestibulum massa leo, egestas vestibulum sollicitudin in, convallis sit amet justo. Sed mauris justo, faucibus volutpat facilisis ac, volutpat non leo. Vestibulum convallis magna a massa rhoncus accumsan. Quisque et semper dui. Suspendisse euismod erat vel magna fringilla fermentum. Fusce pellentesque egestas tellus, mattis maximus metus rutrum quis. Nulla pharetra vitae turpis ut venenatis. Aliquam maximus urna nunc, sit amet posuere tellus fringilla nec.
Pellentesque viverra orci vel eros rhoncus, in feugiat elit laoreet. Donec sed nulla lorem. Donec sed ipsum eros. Vivamus metus dolor, tristique at ex sit amet, semper condimentum tortor. Vivamus et elementum libero. Phasellus laoreet lectus turpis, ac vestibulum urna finibus a. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer nec rhoncus enim, et congue orci. Nam rutrum non mi id vulputate. Sed sit amet nisi varius, mollis turpis ut, suscipit nunc. Maecenas varius nibh ac volutpat venenatis.
Vivamus vitae scelerisque sem, id elementum ligula. Mauris tristique vitae metus et tincidunt. Integer at porta neque, eget tincidunt nunc. Donec non lobortis lacus. Aenean ac rhoncus mauris, quis congue leo. In vel condimentum risus, eget tincidunt nibh. In sollicitudin lacinia dui, quis tempus lorem faucibus ut. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam erat volutpat. Cras eu est vitae metus maximus tempus ut gravida odio.
Etiam ut faucibus arcu. Praesent ac congue urna. Integer suscipit erat at elit vulputate dignissim. Praesent ornare quis nisl eu efficitur. Morbi iaculis turpis nisl, non mattis dolor molestie nec. Nullam in erat quam. Quisque eros nunc, placerat sed enim a, vestibulum ultricies diam. Vestibulum tempus volutpat ullamcorper. Morbi semper purus ultricies diam molestie faucibus. Aliquam ullamcorper viverra purus vel vehicula. Pellentesque fermentum congue libero, laoreet lobortis dui commodo sit amet. Donec vel orci id lorem faucibus convallis nec in ipsum.
Morbi nec ipsum pulvinar, interdum justo eu, vestibulum nisl. Fusce tristique blandit lacus, a lacinia lacus consectetur nec. Sed hendrerit ornare urna tincidunt euismod. Sed venenatis felis ipsum, vitae euismod nisi iaculis eu. Quisque placerat id ipsum ut scelerisque. Quisque dignissim magna dignissim magna aliquam consectetur. Integer efficitur convallis arcu, et mollis magna eleifend id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis eleifend luctus fermentum. Cras id nisl nec urna suscipit eleifend. LAST LINE OF TEXT.</div>
<div class="fixed">FIXED CONTENT HERE</div>
Hello i'm trying to find the best way of keeping my skewed elements in place whist resizing page.
I want to be able to extend the content area (green area) and keep that the same shape but also have the white corners the same shape as well.
Sorry for my lack of knowledge in this area, i'm currently still learning this
I will accept JavaScript or JQuery solutions.
Here is an example what I have so far:
/* Latest compiled and minified CSS included as External Resource*/
.container-fluid{
background: green;
padding: 0px;
color: black;
position: relative;
}
.container{
padding: 50px;
}
.overlay-top-right {
position: absolute;
right: 0;
top: 0;
height: 300px;
width: 30%;
background: #ffffff;
transform-origin: top right;
-ms-transform: skew(45deg,0deg);
-webkit-transform: skew(45deg,0deg);
transform: skew(45deg,0deg);
}
.overlay-bottom-left {
position: absolute;
left: 0;
bottom: 0;
height: 300px;
width: 40%;
background: #ffffff;
transform-origin: bottom left;
-ms-transform: skew(45deg,0deg);
-webkit-transform: skew(45deg,0deg);
transform: skew(45deg,0deg);
}
/* Optional theme */
#import url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css');
<div class="container-fluid">
<div class="overlay-top-right"></div>
<div class="overlay-bottom-left"></div>
<div class="container">
<div class="row">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis tempus arcu a nisl bibendum interdum sed in velit. Etiam semper sem ac nisl rhoncus, at molestie lectus laoreet. Phasellus pulvinar libero mi, a aliquet felis condimentum ut. Morbi massa libero, finibus vitae pellentesque vitae, dignissim sed purus. Ut volutpat consequat commodo. Praesent consequat eget mauris sed viverra. Etiam ac dui vel turpis rutrum tincidunt eu vitae orci. Nunc rhoncus molestie eros nec aliquet. Vestibulum et blandit orci, vitae molestie massa. Morbi hendrerit orci ac interdum tincidunt. Nulla facilisi. Nulla blandit purus eget mattis eleifend. Etiam blandit, enim vel porttitor mollis, diam massa suscipit metus, ut ornare tellus arcu nec orci.
Pellentesque bibendum dignissim tincidunt. Morbi vel sem lacus. Cras vitae laoreet eros. Aenean hendrerit ante semper, auctor ligula et, interdum sapien. Duis placerat urna at velit tincidunt commodo. Fusce condimentum mauris ut ornare euismod. Duis iaculis, augue in varius pretium, justo ligula volutpat est, et ornare dui nibh a sem. Quisque sit amet ultricies tortor.
Praesent egestas tincidunt massa convallis elementum. Fusce ac nisl sed arcu placerat commodo ut a lacus. Donec eget blandit lacus. Vivamus ac efficitur nunc. Nulla facilisi. Phasellus vel ipsum tempus, imperdiet dolor quis, rhoncus magna. Duis lobortis, nisl non lobortis faucibus, risus metus ullamcorper mauris, a ultricies quam nibh vitae sapien. Nulla facilisi. Donec luctus in libero vel pharetra. Maecenas mollis quam libero, eget pellentesque risus convallis at. Morbi laoreet vitae urna id accumsan. Etiam eu porttitor dolor. Curabitur eu sagittis augue. Phasellus at laoreet lacus. Donec interdum aliquet consectetur.
Etiam vestibulum sapien in metus iaculis bibendum. Fusce aliquet sodales leo, et interdum nisl gravida non. Quisque eget lobortis metus, ac euismod ipsum. Cras ac gravida purus. Integer erat orci, feugiat eget tortor sit amet, semper fringilla tortor. Duis luctus at magna sodales efficitur. Donec enim nulla, tempor vel dictum nec, porta vel dolor. Vivamus semper dui tortor. Curabitur turpis mi, mollis a sodales sodales, feugiat eu nisi. Pellentesque non fringilla nisl. Donec at dapibus libero, sed tempor arcu. Pellentesque velit ante, interdum in orci at, feugiat viverra orci. Quisque egestas a tortor et ullamcorper. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam ut nunc tempor, dictum orci eu, pharetra enim.
Sed accumsan sem ipsum. Integer id dolor quis massa tempor congue ac ut nisi. Pellentesque nulla lectus, efficitur non sagittis quis, ornare vel nisl. Proin tempor ullamcorper turpis, et hendrerit est fermentum rutrum. Ut ligula nisi, varius quis sodales at, euismod et diam. Mauris vel sem a mi eleifend fringilla. Suspendisse magna magna, lacinia sit amet nisl eu, laoreet ultricies erat. Suspendisse non orci ante. Aliquam interdum ac lacus eget ornare. Vestibulum dictum felis vitae hendrerit interdum. Duis quis tempus urna.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis tempus arcu a nisl bibendum interdum sed in velit. Etiam semper sem ac nisl rhoncus, at molestie lectus laoreet. Phasellus pulvinar libero mi, a aliquet felis condimentum ut. Morbi massa libero, finibus vitae pellentesque vitae, dignissim sed purus. Ut volutpat consequat commodo. Praesent consequat eget mauris sed viverra. Etiam ac dui vel turpis rutrum tincidunt eu vitae orci. Nunc rhoncus molestie eros nec aliquet. Vestibulum et blandit orci, vitae molestie massa. Morbi hendrerit orci ac interdum tincidunt. Nulla facilisi. Nulla blandit purus eget mattis eleifend. Etiam blandit, enim vel porttitor mollis, diam massa suscipit metus, ut ornare tellus arcu nec orci.
Pellentesque bibendum dignissim tincidunt. Morbi vel sem lacus. Cras vitae laoreet eros. Aenean hendrerit ante semper, auctor ligula et, interdum sapien. Duis placerat urna at velit tincidunt commodo. Fusce condimentum mauris ut ornare euismod. Duis iaculis, augue in varius pretium, justo ligula volutpat est, et ornare dui nibh a sem. Quisque sit amet ultricies tortor.
Praesent egestas tincidunt massa convallis elementum. Fusce ac nisl sed arcu placerat commodo ut a lacus. Donec eget blandit lacus. Vivamus ac efficitur nunc. Nulla facilisi. Phasellus vel ipsum tempus, imperdiet dolor quis, rhoncus magna. Duis lobortis, nisl non lobortis faucibus, risus metus ullamcorper mauris, a ultricies quam nibh vitae sapien. Nulla facilisi. Donec luctus in libero vel pharetra. Maecenas mollis quam libero, eget pellentesque risus convallis at. Morbi laoreet vitae urna id accumsan. Etiam eu porttitor dolor. Curabitur eu sagittis augue. Phasellus at laoreet lacus. Donec interdum aliquet consectetur.
Etiam vestibulum sapien in metus iaculis bibendum. Fusce aliquet sodales leo, et interdum nisl gravida non. Quisque eget lobortis metus, ac euismod ipsum. Cras ac gravida purus. Integer erat orci, feugiat eget tortor sit amet, semper fringilla tortor. Duis luctus at magna sodales efficitur. Donec enim nulla, tempor vel dictum nec, porta vel dolor. Vivamus semper dui tortor. Curabitur turpis mi, mollis a sodales sodales, feugiat eu nisi. Pellentesque non fringilla nisl. Donec at dapibus libero, sed tempor arcu. Pellentesque velit ante, interdum in orci at, feugiat viverra orci. Quisque egestas a tortor et ullamcorper. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam ut nunc tempor, dictum orci eu, pharetra enim.
Sed accumsan sem ipsum. Integer id dolor quis massa tempor congue ac ut nisi. Pellentesque nulla lectus, efficitur non sagittis quis, ornare vel nisl. Proin tempor ullamcorper turpis, et hendrerit est fermentum rutrum. Ut ligula nisi, varius quis sodales at, euismod et diam. Mauris vel sem a mi eleifend fringilla. Suspendisse magna magna, lacinia sit amet nisl eu, laoreet ultricies erat. Suspendisse non orci ante. Aliquam interdum ac lacus eget ornare. Vestibulum dictum felis vitae hendrerit interdum. Duis quis tempus urna.
</div>
</div>
</div>
You may replace your elements by :before and :after on the text area and use floating like this:
/* Latest compiled and minified CSS included as External Resource*/
.container-fluid{
background: green;
padding: 0px;
color: black;
position: relative;
}
.container{
padding: 50px;
overflow:hidden;
}
.overlay {
position:relative;
}
.overlay:before {
content:" ";
float:right;
margin-right: -50px;
margin-top: -50px;
height: 150px;
width: 150px;
background: #ffffff;
transform-origin: top right;
-ms-transform: skew(45deg,0deg);
-webkit-transform: skew(45deg,0deg);
transform: skew(45deg,0deg);
}
.overlay:after {
content:" ";
float:left;
position:relative;
margin-left: -50px;
margin-bottom: -50px;
height: 100px;
width: 100px;
background: #ffffff;
transform-origin: bottom left;
-ms-transform: skew(45deg,0deg);
-webkit-transform: skew(45deg,0deg);
transform: skew(45deg,0deg);
}
/* Optional theme */
<div class="container-fluid">
<div class="container">
<div class="row overlay">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis tempus arcu a nisl bibendum interdum sed in velit. Etiam semper sem ac nisl rhoncus, at molestie lectus laoreet. Phasellus pulvinar libero mi, a aliquet felis condimentum ut. Morbi massa libero, finibus vitae pellentesque vitae, dignissim sed purus. Ut volutpat consequat commodo. Praesent consequat eget mauris sed viverra. Etiam ac dui vel turpis rutrum tincidunt eu vitae orci. Nunc rhoncus molestie eros nec aliquet. Vestibulum et blandit orci, vitae molestie massa. Morbi hendrerit orci ac interdum tincidunt. Nulla facilisi. Nulla blandit purus eget mattis eleifend. Etiam blandit, enim vel porttitor mollis, diam massa suscipit metus, ut ornare tellus arcu nec orci.
Pellentesque bibendum dignissim tincidunt. Morbi vel sem lacus. Cras vitae laoreet eros. Aenean hendrerit ante semper, auctor ligula et, interdum sapien. Duis placerat urna at velit tincidunt commodo. Fusce condimentum mauris ut ornare euismod. Duis iaculis, augue in varius pretium, justo ligula volutpat est, et ornare dui nibh a sem. Quisque sit amet ultricies tortor.
Praesent egestas tincidunt massa convallis elementum. Fusce ac nisl sed arcu placerat commodo ut a lacus. Donec eget blandit lacus. Vivamus ac efficitur nunc. Nulla facilisi. Phasellus vel ipsum tempus, imperdiet dolor quis, rhoncus magna. Duis lobortis, nisl non lobortis faucibus, risus metus ullamcorper mauris, a ultricies quam nibh vitae sapien. Nulla facilisi. Donec luctus in libero vel pharetra. Maecenas mollis quam libero, eget pellentesque risus convallis at. Morbi laoreet vitae urna id accumsan. Etiam eu porttitor dolor. Curabitur eu sagittis augue. Phasellus at laoreet lacus. Donec interdum aliquet consectetur.
Etiam vestibulum sapien in metus iaculis bibendum. Fusce aliquet sodales leo, et interdum nisl gravida non. Quisque eget lobortis metus, ac euismod ipsum. Cras ac gravida purus. Integer erat orci, feugiat eget tortor sit amet, semper fringilla tortor. Duis luctus at magna sodales efficitur. Donec enim nulla, tempor vel dictum nec, porta vel dolor. Vivamus semper dui tortor. Curabitur turpis mi, mollis a sodales sodales, feugiat eu nisi. Pellentesque non fringilla nisl. Donec at dapibus libero, sed tempor arcu. Pellentesque velit ante, interdum in orci at, feugiat viverra orci. Quisque egestas a tortor et ullamcorper. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam ut nunc tempor, dictum orci eu, pharetra enim.
Sed accumsan sem ipsum. Integer id dolor quis massa tempor congue ac ut nisi. Pellentesque nulla lectus, efficitur non sagittis quis, ornare vel nisl. Proin tempor ullamcorper turpis, et hendrerit est fermentum rutrum. Ut ligula nisi, varius quis sodales at, euismod et diam. Mauris vel sem a mi eleifend fringilla. Suspendisse magna magna, lacinia sit amet nisl eu, laoreet ultricies erat. Suspendisse non orci ante. Aliquam interdum ac lacus eget ornare. Vestibulum dictum felis vitae hendrerit interdum. Duis quis tempus urna.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis tempus arcu a nisl bibendum interdum sed in velit. Etiam semper sem ac nisl rhoncus, at molestie lectus laoreet. Phasellus pulvinar libero mi, a aliquet felis condimentum ut. Morbi massa libero, finibus vitae pellentesque vitae, dignissim sed purus. Ut volutpat consequat commodo. Praesent consequat eget mauris sed viverra. Etiam ac dui vel turpis rutrum tincidunt eu vitae orci. Nunc rhoncus molestie eros nec aliquet. Vestibulum et blandit orci, vitae molestie massa. Morbi hendrerit orci ac interdum tincidunt. Nulla facilisi. Nulla blandit purus eget mattis eleifend. Etiam blandit, enim vel porttitor mollis, diam massa suscipit metus, ut ornare tellus arcu nec orci.
Pellentesque bibendum dignissim tincidunt. Morbi vel sem lacus. Cras vitae laoreet eros. Aenean hendrerit ante semper, auctor ligula et, interdum sapien. Duis placerat urna at velit tincidunt commodo. Fusce condimentum mauris ut ornare euismod. Duis iaculis, augue in varius pretium, justo ligula volutpat est, et ornare dui nibh a sem. Quisque sit amet ultricies tortor.
Praesent egestas tincidunt massa convallis elementum. Fusce ac nisl sed arcu placerat commodo ut a lacus. Donec eget blandit lacus. Vivamus ac efficitur nunc. Nulla facilisi. Phasellus vel ipsum tempus, imperdiet dolor quis, rhoncus magna. Duis lobortis, nisl non lobortis faucibus, risus metus ullamcorper mauris, a ultricies quam nibh vitae sapien. Nulla facilisi. Donec luctus in libero vel pharetra. Maecenas mollis quam libero, eget pellentesque risus convallis at. Morbi laoreet vitae urna id accumsan. Etiam eu porttitor dolor. Curabitur eu sagittis augue. Phasellus at laoreet lacus. Donec interdum aliquet consectetur.
Etiam vestibulum sapien in metus iaculis bibendum. Fusce aliquet sodales leo, et interdum nisl gravida non. Quisque eget lobortis metus, ac euismod ipsum. Cras ac gravida purus. Integer erat orci, feugiat eget tortor sit amet, semper fringilla tortor. Duis luctus at magna sodales efficitur. Donec enim nulla, tempor vel dictum nec, porta vel dolor. Vivamus semper dui tortor. Curabitur turpis mi, mollis a sodales sodales, feugiat eu nisi. Pellentesque non fringilla nisl. Donec at dapibus libero, sed tempor arcu. Pellentesque velit ante, interdum in orci at, feugiat viverra orci. Quisque egestas a tortor et ullamcorper. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam ut nunc tempor, dictum orci eu, pharetra enim.
Sed accumsan sem ipsum. Integer id dolor quis massa tempor congue ac ut nisi. Pellentesque nulla lectus, efficitur non sagittis quis, ornare vel nisl. Proin tempor ullamcorper turpis, et hendrerit est fermentum rutrum. Ut ligula nisi, varius quis sodales at, euismod et diam. Mauris vel sem a mi eleifend fringilla. Suspendisse magna magna, lacinia sit amet nisl eu, laoreet ultricies erat. Suspendisse non orci ante. Aliquam interdum ac lacus eget ornare. Vestibulum dictum felis vitae hendrerit interdum. Duis quis tempus urna.
</div>
</div>
</div>