I am trying to make a website that looks like a giant ticket, so no matter how much content there is on the page, it should always look like a ticket.
Requirements:
Ticket should always cover entire page;
Bottom part should support overflowing content;
Scrollbar should be on ticket/page and not on part of the ticket;
Here is what I have so far:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
html,
body {
/* height: 100%; */
margin: 0;
}
body {
background-color: white;
}
#container {
overflow-y: auto;
}
#ticket {
position: fixed;
top: 0;
left: 0;
padding: 5px;
height: 100%;
width: 100%;
filter: drop-shadow(-1px 6px 3px rgba(50, 50, 0, 0.5));
}
#topPart {
clip-path: polygon(
0% 0%,
100% 0%,
100% 67px,
calc(100% - 25px) 77px,
25px 77px,
0% 67px
);
background-color: tomato;
height: 75px;
width: 100%;
border-bottom: 2px dashed white;
}
#bottomPart {
background-color: tomato;
clip-path: polygon(
25px -2px,
calc(100% - 25px) -2px,
100% 8px,
100% 100%,
0% 100%,
0% 8px
);
height: calc(100% - 75px - 5px);
border-top: 2px dashed white;
padding: 5px;
overflow-y: auto;
}
#content {
height: 300vh;
}
</style>
</head>
<body>
<div id="container">
<div id="ticket">
<div id="topPart"></div>
<div id="bottomPart">
<div id="content">content</div>
</div>
</div>
</div>
</body>
</html>
As you can see, the scrollbar is currently on the bottom part of the ticket, which is undesirable.
So I tried moving the scrollbar up to it's parent element, like this:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
html,
body {
/* height: 100%; */
margin: 0;
}
body {
background-color: white;
}
#container {
overflow-y: auto;
}
#ticket {
position: fixed;
top: 0;
left: 0;
padding: 5px;
height: 100%;
width: 100%;
filter: drop-shadow(-1px 6px 3px rgba(50, 50, 0, 0.5));
overflow-y: auto;
}
#topPart {
clip-path: polygon(
0% 0%,
100% 0%,
100% 67px,
calc(100% - 25px) 77px,
25px 77px,
0% 67px
);
background-color: tomato;
height: 75px;
width: 100%;
border-bottom: 2px dashed white;
}
#bottomPart {
background-color: tomato;
clip-path: polygon(
25px -2px,
calc(100% - 25px) -2px,
100% 8px,
100% 100%,
0% 100%,
0% 8px
);
height: calc(100% - 75px - 5px);
border-top: 2px dashed white;
padding: 5px;
}
#content {
height: 300vh;
}
</style>
</head>
<body>
<div id="container">
<div id="ticket">
<div id="topPart"></div>
<div id="bottomPart">
<div id="content">content</div>
</div>
</div>
</div>
</body>
</html>
But as you can see, this makes the fixed ticket longer than the actual page and allows you to scroll past the ticket, which is undesirable.
I have also tried solutions from this thread:
CSS Stretch content container height if empty overflow if too big
But unfortunately none of them worked for me.
This solution might be (admittedly) very hacky, but solves your requirements. Placing the content outside of the fixed elements and using z-index values on fixed elements can allow you to hide (or show) what is visible (see snippet). I added filler content to demonstrate the results.
I moved the #content ID out of the #ticket element to separate it from its former parents and allow it to scroll and not be fixed in position. I added a few other position, z-index and other position and style values on the ticket elements to keep the appearance you are looking for.
I am assuming you want the scrollbar outside of the ticket and want the scrollbar track to be the height of the ticket/page. I added some other elements (#filler and #dash) to cover up the overflow text on top with the same color as the ticket and recreate the top/bottom border between the top and bottom parts. If you need content in the top part of the ticket, it can be added below the "ticket" (outside the #container #ticket IDs). If you want to adjust the height of the top area a variable can be set and used to replace some of the heights in the CSS, with some additional adjustments.
Again, I would stress this is an imperfect solution, but your requirements are not part of the typical functionality of standard HTML and CSS. If anyone has another approach in HTML and CSS I encourage them to share, and if you would like to use JavaScript there are other options with that, as well.
Techniques can be reviewed in the MDN Web docs for z-index and MDN Web docs for position. Disclaimer: I have not done cross-browser checking for the solution to your question.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
html,
body {
/* height: 100%; */
margin: 0;
}
body {
background-color: white;
}
#container {
overflow-y: auto;
}
#ticket {
position: fixed;
top: 0;
left: 0;
padding: 5px;
height: 100%;
width: 100%;
filter: drop-shadow(-1px 6px 3px rgba(50, 50, 0, 0.5));
}
#topPart {
position: fixed;
top: 5px;
left: 5px;
clip-path: polygon(0% 0%, 100% 0%, 100% 67px, calc(100% - 25px) 77px, 25px 77px, 0% 67px);
background-color: tomato;
height: 75px;
width: calc(100% - 10px);
z-index: 4;
}
#bottomPart {
position: fixed;
top: 80px;
left: 5px;
background-color: tomato;
clip-path: polygon(25px -2px, calc(100% - 25px) -2px, 100% 8px, 100% 100%, 0% 100%, 0% 8px);
height: calc(100% - 75px - 10px);
width: calc(100% - 10px);
border-top: 2px dashed white;
padding: 5px;
z-index: -1;
}
#content {
position: absolute;
top: 6px;
left: 25px;
height: calc(100vh - 12px);
width: calc(100% - 25px);
padding-right: 25px;
padding-top: 80px;
overflow-y: auto;
z-index: 1;
}
#filler {
position: fixed;
top: 5px;
left: 25px;
height: 80px;
width: calc(100% - 50px);
background-color: tomato;
z-index: 2;
}
#dash {
position: fixed;
top: 80px;
left: 25px;
height: 4px;
width: calc(100% - 50px);
background-color: tomato;
border-top: 2px dashed white;
border-bottom: 2px dashed white;
z-index: 3;
}
</style>
</head>
<body>
<div id="container">
<div id="ticket">
<div id="topPart"></div>
<div id="bottomPart"></div>
</div>
<!-- filler and dash border -->
<div id="filler"></div>
<div id="dash"></div>
<!-- text content, with more added for demonstration -->
<div id="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tincidunt nisi suscipit sem dignissim bibendum. Etiam a vehicula nisl. Maecenas dignissim, urna non facilisis hendrerit, metus urna interdum tellus, quis rutrum justo mauris vitae
massa. Nunc eu ultrices sapien. Morbi ultrices gravida maximus. Sed sit amet lectus leo. Donec vulputate arcu vitae orci facilisis elementum a a lorem. In accumsan, erat ac commodo molestie, ligula tellus consectetur odio, non congue ante urna
eu erat. Morbi nec iaculis mauris. Vivamus suscipit rhoncus metus, eu rhoncus ipsum bibendum sed. Curabitur maximus pellentesque tincidunt. Nulla nunc dolor, sagittis a metus at, hendrerit elementum leo. Aliquam congue nibh diam, nec ornare odio
feugiat ac. Maecenas mollis dui ac libero consectetur, vel hendrerit felis hendrerit. Aenean felis sapien, condimentum non ante at, luctus suscipit augue. Aenean faucibus ullamcorper urna, a tempor augue ultrices ut. </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tincidunt nisi suscipit sem dignissim bibendum. Etiam a vehicula nisl. Maecenas dignissim, urna non facilisis hendrerit, metus urna interdum tellus, quis rutrum justo mauris vitae
massa. Nunc eu ultrices sapien. Morbi ultrices gravida maximus. Sed sit amet lectus leo. Donec vulputate arcu vitae orci facilisis elementum a a lorem. In accumsan, erat ac commodo molestie, ligula tellus consectetur odio, non congue ante urna
eu erat. Morbi nec iaculis mauris. Vivamus suscipit rhoncus metus, eu rhoncus ipsum bibendum sed. Curabitur maximus pellentesque tincidunt. Nulla nunc dolor, sagittis a metus at, hendrerit elementum leo. Aliquam congue nibh diam, nec ornare odio
feugiat ac. Maecenas mollis dui ac libero consectetur, vel hendrerit felis hendrerit. Aenean felis sapien, condimentum non ante at, luctus suscipit augue. Aenean faucibus ullamcorper urna, a tempor augue ultrices ut. </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tincidunt nisi suscipit sem dignissim bibendum. Etiam a vehicula nisl. Maecenas dignissim, urna non facilisis hendrerit, metus urna interdum tellus, quis rutrum justo mauris vitae
massa. Nunc eu ultrices sapien. Morbi ultrices gravida maximus. Sed sit amet lectus leo. Donec vulputate arcu vitae orci facilisis elementum a a lorem. In accumsan, erat ac commodo molestie, ligula tellus consectetur odio, non congue ante urna
eu erat. Morbi nec iaculis mauris. Vivamus suscipit rhoncus metus, eu rhoncus ipsum bibendum sed. Curabitur maximus pellentesque tincidunt. Nulla nunc dolor, sagittis a metus at, hendrerit elementum leo. Aliquam congue nibh diam, nec ornare odio
feugiat ac. Maecenas mollis dui ac libero consectetur, vel hendrerit felis hendrerit. Aenean felis sapien, condimentum non ante at, luctus suscipit augue. Aenean faucibus ullamcorper urna, a tempor augue ultrices ut. </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tincidunt nisi suscipit sem dignissim bibendum. Etiam a vehicula nisl. Maecenas dignissim, urna non facilisis hendrerit, metus urna interdum tellus, quis rutrum justo mauris vitae
massa. Nunc eu ultrices sapien. Morbi ultrices gravida maximus. Sed sit amet lectus leo. Donec vulputate arcu vitae orci facilisis elementum a a lorem. In accumsan, erat ac commodo molestie, ligula tellus consectetur odio, non congue ante urna
eu erat. Morbi nec iaculis mauris. Vivamus suscipit rhoncus metus, eu rhoncus ipsum bibendum sed. Curabitur maximus pellentesque tincidunt. Nulla nunc dolor, sagittis a metus at, hendrerit elementum leo. Aliquam congue nibh diam, nec ornare odio
feugiat ac. Maecenas mollis dui ac libero consectetur, vel hendrerit felis hendrerit. Aenean felis sapien, condimentum non ante at, luctus suscipit augue. Aenean faucibus ullamcorper urna, a tempor augue ultrices ut. </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tincidunt nisi suscipit sem dignissim bibendum. Etiam a vehicula nisl. Maecenas dignissim, urna non facilisis hendrerit, metus urna interdum tellus, quis rutrum justo mauris vitae
massa. Nunc eu ultrices sapien. Morbi ultrices gravida maximus. Sed sit amet lectus leo. Donec vulputate arcu vitae orci facilisis elementum a a lorem. In accumsan, erat ac commodo molestie, ligula tellus consectetur odio, non congue ante urna
eu erat. Morbi nec iaculis mauris. Vivamus suscipit rhoncus metus, eu rhoncus ipsum bibendum sed. Curabitur maximus pellentesque tincidunt. Nulla nunc dolor, sagittis a metus at, hendrerit elementum leo. Aliquam congue nibh diam, nec ornare odio
feugiat ac. Maecenas mollis dui ac libero consectetur, vel hendrerit felis hendrerit. Aenean felis sapien, condimentum non ante at, luctus suscipit augue. Aenean faucibus ullamcorper urna, a tempor augue ultrices ut. </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tincidunt nisi suscipit sem dignissim bibendum. Etiam a vehicula nisl. Maecenas dignissim, urna non facilisis hendrerit, metus urna interdum tellus, quis rutrum justo mauris vitae
massa. Nunc eu ultrices sapien. Morbi ultrices gravida maximus. Sed sit amet lectus leo. Donec vulputate arcu vitae orci facilisis elementum a a lorem. In accumsan, erat ac commodo molestie, ligula tellus consectetur odio, non congue ante urna
eu erat. Morbi nec iaculis mauris. Vivamus suscipit rhoncus metus, eu rhoncus ipsum bibendum sed. Curabitur maximus pellentesque tincidunt. Nulla nunc dolor, sagittis a metus at, hendrerit elementum leo. Aliquam congue nibh diam, nec ornare odio
feugiat ac. Maecenas mollis dui ac libero consectetur, vel hendrerit felis hendrerit. Aenean felis sapien, condimentum non ante at, luctus suscipit augue. Aenean faucibus ullamcorper urna, a tempor augue ultrices ut. </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tincidunt nisi suscipit sem dignissim bibendum. Etiam a vehicula nisl. Maecenas dignissim, urna non facilisis hendrerit, metus urna interdum tellus, quis rutrum justo mauris vitae
massa. Nunc eu ultrices sapien. Morbi ultrices gravida maximus. Sed sit amet lectus leo. Donec vulputate arcu vitae orci facilisis elementum a a lorem. In accumsan, erat ac commodo molestie, ligula tellus consectetur odio, non congue ante urna
eu erat. Morbi nec iaculis mauris. Vivamus suscipit rhoncus metus, eu rhoncus ipsum bibendum sed. Curabitur maximus pellentesque tincidunt. Nulla nunc dolor, sagittis a metus at, hendrerit elementum leo. Aliquam congue nibh diam, nec ornare odio
feugiat ac. Maecenas mollis dui ac libero consectetur, vel hendrerit felis hendrerit. Aenean felis sapien, condimentum non ante at, luctus suscipit augue. Aenean faucibus ullamcorper urna, a tempor augue ultrices ut. </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tincidunt nisi suscipit sem dignissim bibendum. Etiam a vehicula nisl. Maecenas dignissim, urna non facilisis hendrerit, metus urna interdum tellus, quis rutrum justo mauris vitae
massa. Nunc eu ultrices sapien. Morbi ultrices gravida maximus. Sed sit amet lectus leo. Donec vulputate arcu vitae orci facilisis elementum a a lorem. In accumsan, erat ac commodo molestie, ligula tellus consectetur odio, non congue ante urna
eu erat. Morbi nec iaculis mauris. Vivamus suscipit rhoncus metus, eu rhoncus ipsum bibendum sed. Curabitur maximus pellentesque tincidunt. Nulla nunc dolor, sagittis a metus at, hendrerit elementum leo. Aliquam congue nibh diam, nec ornare odio
feugiat ac. Maecenas mollis dui ac libero consectetur, vel hendrerit felis hendrerit. Aenean felis sapien, condimentum non ante at, luctus suscipit augue. Aenean faucibus ullamcorper urna, a tempor augue ultrices ut. </p>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
html,
body {
/* height: 100%; */
margin: 0;
}
body {
background-color: white;
}
#container {
width:100%;
height:100vh;
}
#ticket {
position: fixed;
top: 0;
left: 0;
padding: 5px;
height: 100%;
width: 100%;
filter: drop-shadow(-1px 6px 3px rgba(50, 50, 0, 0.5));
}
#topPart {
clip-path: polygon(
0% 0%,
100% 0%,
100% 67px,
calc(100% - 25px) 77px,
25px 77px,
0% 67px
);
background-color: tomato;
height: 75px;
width: 100%;
border-bottom: 2px dashed white;
}
#bottomPart {
overflow-y: auto;
background-color: tomato;
clip-path: polygon(
25px -2px,
calc(100% - 25px) -2px,
100% 8px,
100% 100%,
0% 100%,
0% 8px
);
height: calc(100% - 75px - 5px);
border-top: 2px dashed white;
padding: 5px;
}
</style>
</head>
<body>
<div id="container">
<div id="ticket">
<div id="topPart"></div>
<div id="bottomPart">
<div id="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ullamcorper ligula in metus faucibus varius. Vivamus dignissim justo sit amet nibh varius, vel eleifend dolor finibus. Sed vestibulum dui sit amet laoreet mollis. Duis at aliquam nibh. Nullam nec volutpat orci. Vivamus vel leo eros. Nam commodo condimentum laoreet. Vivamus vulputate et mauris a bibendum. Sed bibendum mi vel massa tempor porttitor. Cras sed lectus ac lorem imperdiet suscipit ut sed dolor. Fusce convallis dolor sit amet risus vestibulum, a dictum orci bibendum.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ullamcorper ligula in metus faucibus varius. Vivamus dignissim justo sit amet nibh varius, vel eleifend dolor finibus. Sed vestibulum dui sit amet laoreet mollis. Duis at aliquam nibh. Nullam nec volutpat orci. Vivamus vel leo eros. Nam commodo condimentum laoreet. Vivamus vulputate et mauris a bibendum. Sed bibendum mi vel massa tempor porttitor. Cras sed lectus ac lorem imperdiet suscipit ut sed dolor. Fusce convallis dolor sit amet risus vestibulum, a dictum orci bibendum.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ullamcorper ligula in metus faucibus varius. Vivamus dignissim justo sit amet nibh varius, vel eleifend dolor finibus. Sed vestibulum dui sit amet laoreet mollis. Duis at aliquam nibh. Nullam nec volutpat orci. Vivamus vel leo eros. Nam commodo condimentum laoreet. Vivamus vulputate et mauris a bibendum. Sed bibendum mi vel massa tempor porttitor. Cras sed lectus ac lorem imperdiet suscipit ut sed dolor. Fusce convallis dolor sit amet risus vestibulum, a dictum orci bibendum.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ullamcorper ligula in metus faucibus varius. Vivamus dignissim justo sit amet nibh varius, vel eleifend dolor finibus. Sed vestibulum dui sit amet laoreet mollis. Duis at aliquam nibh. Nullam nec volutpat orci. Vivamus vel leo eros. Nam commodo condimentum laoreet. Vivamus vulputate et mauris a bibendum. Sed bibendum mi vel massa tempor porttitor. Cras sed lectus ac lorem imperdiet suscipit ut sed dolor. Fusce convallis dolor sit amet risus vestibulum, a dictum orci bibendum.</div>
</div>
</div>
</div>
</body>
</html>
Inspired by the answer of Katie, I tried playing around with lots of fixed elements and clip-paths. After a couple of failed attempts I found a workable solution:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
/* Usefull links:
https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
https://stackoverflow.com/questions/34570944/css-stretch-content-container-height-if-empty-overflow-if-too-big
https://stackoverflow.com/questions/58283119/create-a-transparent-window-in-a-div-background-with-css-and-javascript
*/
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
html,
body {
/* height: 100%; */
margin: 0;
}
body {
background-color: white;
}
#BottomContent {
margin: 10px;
margin-top: 83px;
width: calc(100% - 10px - 10px);
background-color: purple;
}
#fixedTicket {
width: 100%;
height: 100%;
}
#background {
position: fixed;
top: 0;
bottom: 0;
background-color: white;
clip-path: polygon(
0% 0%,
0% 100%,
5px 100%,
5px calc(100% - 5px),
/* Linker inham begin*/ 5px 87px,
25px 77px,
5px 67px /* Linker inham eind */,
5px 5px,
calc(100% - 5px) 5px,
/* Rechter inham begin */ calc(100% - 5px) 67px,
calc(100% - 25px) 77px,
calc(100% - 5px) 87px /* Rechter inham eind */,
calc(100% - 5px) calc(100% - 5px),
5px calc(100% - 5px),
5px 100%,
100% 100%,
100% 0%
);
width: 100%;
height: 100%;
}
/* TOP */
#bottomTop {
background-color: tomato;
clip-path: polygon(
5px 67px,
24px 77px,
calc(100% - 24px) 77px,
calc(100% - 5px) 67px,
calc(100% - 5px - 5px) 64px,
calc(100% - 23px) 70px,
23px 70px,
10px 64px
);
width: 100%;
height: 77px;
position: fixed;
top: 0px;
left: 0px;
border-bottom: 2px dashed white;
}
#leftTop {
left: 5px;
top: 5px;
background-color: tomato;
position: fixed;
width: 5px;
height: 62px;
}
#rightTop {
right: 5px;
top: 5px;
background-color: tomato;
position: fixed;
width: 5px;
height: 62px;
}
#topTop {
top: 5px;
left: 5px;
background-color: tomato;
position: fixed;
height: 5px;
width: calc(100% - 5px - 5px);
}
/* Top CONTENT */
#topContent {
background-color: tomato;
position: fixed;
left: 10px;
top: 10px;
width: calc(100% - 10px - 10px);
height: 62px;
clip-path: polygon(
0 0,
100% 0,
100% 55px,
calc(100% - 12px) 61px,
12px 61px,
0 55px
);
}
/* BOTTOM */
#topBottom {
background-color: tomato;
clip-path: polygon(
5px 10px,
24px 0px,
calc(100% - 24px) 0px,
calc(100% - 5px) 10px,
calc(100% - 5px - 5px) 12px,
calc(100% - 22px) 6px,
22px 6px,
10px 12px
);
width: 100%;
height: 13px;
position: fixed;
top: 77px;
left: 0px;
border-top: 2px dashed white;
}
#leftBottom {
background-color: tomato;
position: fixed;
left: 5px;
bottom: 5px;
height: calc(100% - 77px - 10px - 5px);
width: 5px;
box-shadow: -3px 2px 3px rgba(0, 0, 0, 0.2);
}
#rightBottom {
background-color: tomato;
position: fixed;
right: 5px;
bottom: 5px;
height: calc(100% - 77px - 10px - 5px);
width: 5px;
box-shadow: 3px 2px 2px rgba(50, 50, 0, 0.2);
}
#bottomBottom {
background-color: tomato;
position: fixed;
left: 5px;
bottom: 5px;
height: 5px;
width: calc(100% - 5px - 5px);
box-shadow: 0px 3px 3px rgba(50, 50, 0, 0.2);
}
</style>
</head>
<body>
<div id="ticket">
<div id="bottomContent">
<div style="height: 100vh; background-color: purple"></div>
<div style="height: 100vh; background-color: orange"></div>
<div style="height: 100vh; background-color: tomato"></div>
</div>
<div id="fixedTicket">
<!-- White background -->
<div id="background"></div>
<!-- Actual ticket shapes -->
<div id="top">
<div id="topTop"></div>
<div id="bottomTop"></div>
<div id="leftTop"></div>
<div id="rightTop"></div>
</div>
<div id="topContent"></div>
<div id="bottom">
<div id="topBottom"></div>
<div id="leftBottom"></div>
<div id="rightBottom"></div>
<div id="bottomBottom"></div>
</div>
</div>
</div>
</body>
</html>
This solution can be simplified even more by using larger clip-paths, but I decided for more separate fixed elements, since it's easier to control shadows that way (which I will need later on).
If you want to go the clip-path way, make sure to take a look at this:
Create a transparent window in a div background with css and javascript
I made HTML page, with left side navbar(vertical), position fixed , so it will not move when i scroll down the other div(the guide with text),
after that div with text.
I am trying to make it responsive, but since it is fixed position it won't help.
Is there any trick to fix this?
example (not extacly as mine, since its very long code above 200 lines with css and everything)
but still it is the same idea.
notice because the navbar is fixed position it will hide the guide div when screen pixels go down
.sidenav {
height: 100%;
width: 260px;
position: fixed;
z-index: 1;
top: 140px;
left: 135px;
background: #eee;
overflow-x: hidden;
padding: 8px 0;
border-radius: 5px;
}
.sidenav a {
padding: 6px 8px 6px 16px;
text-decoration: none;
font-size: 22px;
color: #2b8bc6;
display: block;
}
.sidenav h3 {
padding: 6px 8px 6px 16px;
text-decoration: none;
font-size: 22px;
color: black;
display: block;
}
.box22 {
background-color: #fff;
max-width: 1000px;
margin: auto;
margin-top: 20px;
border-radius: 8px;
}
<body>
<div class="sidenav">
HTML 1 editors
HTML 2 editors
HTML 3 editors
</div>
<div class="box22">
<h1>HTML part 1 intro</h1>
<p>text</p>
</div>
</body>
Use a relative CSS Unit like vw, which is equivalent to 1% of the total viewport.
Right now, you've got it set to an absolute size, 260px. Change that to something like 10vw.
For more info on CSS units, including a list of relative units, check out this W3 page.
.sidenav {
height: 100%;
width: 10vw;
position: fixed;
z-index: 1;
top: 140px;
left: -6px;
background: #eee;
overflow-x: hidden;
padding: 8px 0;
border-radius: 5px;
}
.sidenav a {
padding: 6px 8px 6px 16px;
text-decoration: none;
font-size: 22px;
color: #2b8bc6;
display: block;
}
.sidenav h3 {
padding: 6px 8px 6px 16px;
text-decoration: none;
font-size: 22px;
color: black;
display: block;
}
.box22 {
background-color: #fff;
max-width: 1000px;
margin: auto;
margin-top: 20px;
margin-left: 11vw;
border-radius: 8px;
}
<body>
<div class="sidenav">
HTML 1 editors
HTML 2 editors
HTML 3 editors
</div>
<div class="box22">
<h1>HTML part 1 intro</h1>
<p>text</p>
</div>
</body>
Could you do something with a bit of jQuery and more traditional nav layout for smaller responsive designs? Here's an idea: (fiddle: https://jsfiddle.net/moqb29cr/)
HTML:
HTML 1 editors
HTML 2 editors
HTML 3 editors
<h1>HTML part 1 intro</h1>
<div id="responsive_nav">
☰
</div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eu maximus turpis. Cras non leo et felis consectetur tristique. Fusce rutrum erat non facilisis suscipit. Quisque id mi dictum, vestibulum massa sit amet, pharetra justo. Sed rutrum, ligula iaculis mattis sagittis, nisi urna commodo diam, eu auctor mi nunc eu odio. Quisque vel odio viverra, imperdiet augue at, rhoncus orci. Nullam fringilla id tortor vel rutrum. Morbi interdum egestas luctus. Suspendisse nec lacus lacinia, mollis massa auctor, consectetur nisi. Quisque interdum iaculis turpis vitae posuere. Aenean sollicitudin blandit interdum. Nulla vel bibendum nibh, at semper ex.Sed ornare dolor dui, sit amet efficitur lacus varius eget. Nunc ut urna at risus tristique cursus. Nulla rutrum rhoncus odio, vel volutpat nibh hendrerit sed. Nulla tempus id erat nec dictum. Phasellus laoreet pretium posuere. Etiam fringilla ipsum ut porttitor euismod. Mauris auctor nisi vitae sapien lacinia, porta tempor est consequat. Phasellus auctor bibendum varius. Duis convallis justo vitae nibh finibus, et vestibulum enim congue. Sed id nulla quam. Quisque sed cursus eros. Integer ut telVestibulum malesuada elementum diam non tincidunt. Integer et pharetra mi, nec tempus erat. Integer tempor dictum feugiat. Duis vel elit tellus. Etiam ornare consequat accumsan. Fusce sit amet sapien vitae mauris vestibulum mattis a sit amet odio. Maecenas volutpat orci tincidunt ante suscipit eleifend. Sed tempor faucibus ligula, vitae vulputate tortor viverra id. Phasellus ultricies, erat et fermentum tincidunt, augue nisl cursus nulla, id facilisis nunc ante commodo quam.Praesent euismod varius eros non euismod. Fusce posuere nisl lacus, a condimentum nunc efficitur eu. Ut et molestie tortor. Nunc vitae magna at felis rutrum blandit vel ut est. Aenean condimentum ipsum nec lorem condimentum convallis. Donec nec diam vel enim dapibus pretium eu at tortor. Maecenas vulputate sed diam ac aliquam. Aenean pharetra ullamcorper nisi, at egestas justo. Interdum et malesuada fames ac ante ipsum primis in faucibus.Morbi malesuada dui vitae ex pretium, eget congue nisi viverra. Donec hendrerit lorem non augue aliquet dictum. Vivamus molestie in justo in pharetra. Nunc finibus, velit sit amet malesuada bibendum, turpis elit maximus tortor, et vehicula ex tellus non lectus. Donec rhoncus erat placerat, pulvinar est eu, tincidunt neque. Donec ligula enim, bibendum non est non, porta blandit risus. In et facilisis lorem, ut commodo ipsum. Nulla feugiat felis vel rhoncus ultrices. Vivamus vitae orci tincidunt, mattis risus a, mattis dui. Curabitur congue enim at lorem lobortis, nec venenatis leo interdum. Quisque id euismod felis, ut congue nunc.</p>
jQuery:
$("#responsive_nav").click(function(){
$(".sidenav").toggle();
});
And CSS:
p {
position:relative;
display:block;
width:75%;
left:28%;
}
.sidenav {
height: 100%;
width: 25%;
position: fixed;
z-index: 1;
top: 85px;
left;0px;
background: #eee;
overflow-x: hidden;
padding: 8px 0;
border-radius: 5px;
}
.sidenav a {
padding: 6px 8px 6px 16px;
text-decoration: none;
font-size: 22px;
color: #2b8bc6;
display: block;
}
.sidenav h3 {
padding: 6px 8px 6px 16px;
text-decoration: none;
font-size: 22px;
color: black;
display: block;
}
.box22 {
background-color: #fff;
max-width: 1000px;
margin: auto;
margin-top: 20px;
border-radius: 8px;
}
#responsive_nav {
display:none;
}
#media only screen and (max-width: 600px) {
.sidenav {
display:none;
}
#responsive_nav {
display:block;
position:fixed;
top:15px;
left:80%;
cursor:pointer;
border-radius:6px;
border:thin solid #ccc;
padding:10px;
}
#responsive_nav:hover {
background-color:#ccc;
border-radius:6px;
padding:10px;
}
p {
width:90%;
left:0%;
}
}
I was wondering if its possible to create this shape using css. (or svg?)
The feed is dynamicly created so the news feeds need to scroll inside this contianer.
I got stuck after create a container with scrolling:
.container {
width: 300px;
height: 500px;
background-color: blue;
border-radius: 15px;
overflow-x: scroll;
}
.container a {
display: inline-block;
width: 100%;
height: 60px;
border-bottom: 5px solid rgba(255, 255, 255, 0.5);
}
.container .icon {
display: inline-block;
width: 50px;
height: 100%;
text-indent: 25px;
color: white;
font-weight: bold;
line-height: 50px;
}
<div class="container">
<a><div class="icon">F</div>Text goes in here</a>
<a><div class="icon">F</div>Text goes in here</a>
<a><div class="icon">F</div>Text goes in here</a>
<a><div class="icon">F</div>Text goes in here</a>
<a><div class="icon">F</div>Text goes in here</a>
<a><div class="icon">F</div>Text goes in here</a>
<a><div class="icon">F</div>Text goes in here</a>
<a><div class="icon">F</div>Text goes in here</a>
<a><div class="icon">F</div>Text goes in here</a>
<a><div class="icon">F</div>Text goes in here</a>
</div>
There are many approaches to creating the shape and design you are looking for. Whilst SVG may be a great option here, a pure CSS solution may be possible through the use of the CSS border hack. A very rough demo of this would be something like:
.area {
height: 300px;
width: 200px;
background: lightgray;
position: relative;
margin: 50px;
}
.area:before {
content: "";
top: -20px;
left: -20px;
position: absolute;
height: 0;
width: 100%;
border-right: 20px solid transparent;
border-left: 20px solid transparent;
border-bottom: 20px solid lightgray;
}
.area:after {
content: "";
position: absolute;
height: 20%;
width: 0;
left: -20px;
top: -20px;
left: -20px;
border-right: 20px solid lightgray;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
}
.areainner {
position: absolute;
height: 100%;
width: 100%;
top: 0;
left: 0;
}
.areainner:before {
content: "";
position: absolute;
bottom: -20px;
left: -20px;
height: 50%;
width: 0;
border-right: 20px solid lightgray;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
}
.areainner:after {
content: "";
position: absolute;
bottom: -20px;
left: -20px;
height: 0;
width: 60%;
border-right: 20px solid transparent;
border-left: 20px solid transparent;
border-top: 20px solid lightgray;
}
.last {
position: absolute;
top: -20px;
left: 100%;
width: 0;
height: calc(100% - 20px);
border-left: 20px solid lightgray;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
}
.YOURTEXT {
position: absolute;
height: 100%;
width: calc(100% -10px);
top: 0;
left: 0;
overflow-y: auto;
padding-left:10px;
}
<div class="area">
<div class="areainner">
<span class="last"></span>
<div class="YOURTEXT">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae diam mauris. Phasellus egestas mauris dui, eget tempor tortor commodo vel. Aenean aliquam nunc at sem sodales, vitae condimentum orci malesuada. Aenean eu tortor ornare, dignissim turpis
vel, hendrerit ante. Cras lobortis vehicula nisl eu lacinia. Integer eu faucibus sapien. In hendrerit odio ac blandit placerat. Morbi suscipit faucibus magna, nec semper sapien efficitur in. Duis metus neque, consequat at sem eu, tempor lobortis
mauris. Nulla consectetur pretium ex, at luctus neque. Duis rutrum gravida dolor, sit amet ornare velit condimentum vel. Nunc a pulvinar elit. Donec id nisi id massa pulvinar porta. Quisque hendrerit quam nec nunc interdum, a bibendum quam pellentesque.
Sed nisl quam, egestas ut volutpat non, lacinia at neque. Vestibulum sagittis tellus a odio finibus ultrices. Maecenas porttitor sit amet mi non congue. Ut feugiat, purus tempus elementum vestibulum, diam dui euismod odio, at venenatis augue lorem
in arcu. Vivamus sed dolor vel ipsum lacinia rhoncus. Integer et odio porttitor, vulputate turpis sed, cursus nibh. Suspendisse ac mi fermentum, fringilla lorem ac, imperdiet neque. Aliquam erat volutpat. Sed ac urna urna. Fusce felis massa, interdum
vel orci at, iaculis fermentum nulla. Etiam auctor lobortis vulputate. Ut quis quam est. Sed venenatis metus id nisi elementum, et tincidunt est mattis. Aenean elementum odio et odio sollicitudin, nec pretium libero malesuada. Phasellus velit tortor,
elementum et imperdiet non, dapibus vel nisi. Maecenas at consequat justo. Pellentesque sodales velit eget augue interdum, vitae commodo erat commodo. Pellentesque in quam aliquam, elementum urna vehicula, egestas ipsum. Cras tempus leo viverra
felis laoreet convallis. Nullam urna metus, volutpat sed eros nec, faucibus lobortis magna. Curabitur bibendum volutpat pellentesque. Curabitur mi libero, rhoncus ut lorem eget, viverra tristique dui. Proin congue dapibus orci, sit amet cursus mi
molestie at. Nam a aliquet velit. Sed mattis nibh eget facilisis imperdiet. Cras porttitor urna consequat, laoreet mauris nec, rhoncus est. Suspendisse id nisl dolor. Nullam accumsan justo metus, vitae ullamcorper magna mattis non. Suspendisse ac
arcu nibh. Pellentesque id faucibus purus. Nullam sit amet tortor non nibh dignissim fringilla. Donec varius, leo id bibendum fringilla, arcu nunc cursus ipsum, gravida laoreet arcu eros non erat. Donec viverra accumsan turpis, et convallis libero
congue maximus. Fusce nec placerat ipsum
</div>
</div>
</div>
When I resize my window to 1280 x 720 or below I just realized I'm getting some behavior I do not want. The right column (.right class) is getting "bumped down" below when I resize my window
What is it in my CSS code (or not in the code) that's causing this? I have a feeling that I'm missing a very important concept here. :)
Here is what happens to the right column on smaller screens: http://s11.postimg.org/vp9c7o3dv/css.png
And here is the faulty code:
http://codepen.io/cosmonaut/pen/yyvZjZ?editors=110
html {
background: url(http://s16.postimg.org/k5re12691/bg_radium.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
body {
width: 95%;
font-family: courier;
font-size: 15px;
color: #E7DFC2;
margin-left: 30px;
}
.container {
width: 90%;
margin: 10px auto;
background-color: #273E23;
opacity: 0.97;
margin-top: 25px;
}
.header {
text-align:center;
font-size: 40px;
padding: 1em;
border-bottom: 1px solid gray; /* Temporary. */
background-color: #273E23;
}
.header p {
font-size: 25px;
padding: 0px;
margin: 0px;
background-color: #273E23;
}
.header img {
padding: 0px;
margin: 0px;
width: 200px;
height: 200px;
}
.menu {
text-align: center;
}
.menu ul {
}
.menu ul li {
margin: 0 20px;
padding: 0;
list-style-type: none;
display: inline-block;
}
.menu ul li a {
text-decoration: none;
background-color: #273E23;
color: #D3B474;
}
.left {
float: left;
width: 160px;
margin: 0;
padding: 1em;
}
.right {
padding: 1em;
float: right;
width: 860px;
background-color: #273E23;;
}
.right p {
background-color: #273E23;
}
.footer {
clear: both;
margin: 0px;
padding: .5em;
text-align: center;
background-color: #273E23;
}
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="stylesheet_v2.css"/>
<title>Radium Recordings</title>
</head>
<body>
<div class="container">
<div class="header">
<img src="http://s11.postimg.org/z08mz7o9f/radium4.png">
</div>
<div class="menu">
<ul>
<li>Home</li>
<li>Releases</li>
<li>Tours</li>
<li>Contact</li>
</ul>
</div>
<div class="left"><p>Hi, I'm the left side. Not sure if I'm even going to keep this column. Lorem Ipsum added:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia tellus vel nunc accumsan maximus. Pellentesque justo sem, condimentum non lectus sed, consequat dignissim eros. Integer id ante lectus. Nam id nisi dui. Curabitur euismod volutpat accumsan. Donec pellentesque metus eleifend, imperdiet arcu lacinia, convallis est. Curabitur porta interdum vehicula. Fusce mollis quam et ex venenatis, eget luctus risus pellentesque.</p>
</div>
<div class="right">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia tellus vel nunc accumsan maximus. Pellentesque justo sem, condimentum non lectus sed, consequat dignissim eros. Integer id ante lectus. Nam id nisi dui. Curabitur euismod volutpat accumsan. Donec pellentesque metus eleifend, imperdiet arcu lacinia, convallis est. Curabitur porta interdum vehicula. Fusce mollis quam et ex venenatis, eget luctus risus pellentesque.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia tellus vel nunc accumsan maximus. Pellentesque justo sem, condimentum non lectus sed, consequat dignissim eros. Integer id ante lectus. Nam id nisi dui. Curabitur euismod volutpat accumsan. Donec pellentesque metus eleifend, imperdiet arcu lacinia, convallis est. Curabitur porta interdum vehicula. Fusce mollis quam et ex venenatis, eget luctus risus pellentesque.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia tellus vel nunc accumsan maximus. Pellentesque justo sem, condimentum non lectus sed, consequat dignissim eros. Integer id ante lectus. Nam id nisi dui. Curabitur euismod volutpat accumsan. Donec pellentesque metus eleifend, imperdiet arcu lacinia, convallis est. Curabitur porta interdum vehicula. Fusce mollis quam et ex venenatis, eget luctus risus pellentesque.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia tellus vel nunc accumsan maximus. Pellentesque justo sem, condimentum non lectus sed, consequat dignissim eros. Integer id ante lectus. Nam id nisi dui. Curabitur euismod volutpat accumsan. Donec pellentesque metus eleifend, imperdiet arcu lacinia, convallis est. Curabitur porta interdum vehicula. Fusce mollis quam et ex venenatis, eget luctus risus pellentesque.</p>
<p>Aliquam convallis nulla commodo convallis scelerisque. Curabitur elementum porttitor purus, posuere tincidunt turpis sagittis et. Proin non nulla vitae velit rutrum egestas id vitae dolor. Mauris placerat nec metus vel ultrices. Integer molestie lobortis eros a dapibus. Pellentesque commodo iaculis magna fringilla rhoncus. Nullam luctus dui elit, nec ornare erat volutpat vitae. Vestibulum nulla velit, porttitor in hendrerit vel, varius sit amet elit. Aliquam erat volutpat.
</p>
</div>
<div class="footer">
<p>P.O. Box 321, Anywhere, USA 31721 | Tel: (888) 888-8888</p>
</div>
</div>
</body>
</html>
Change your column widths to percentages. One example is this Codepen.
I used:
.left {
float: left;
width: 20%;
margin: 0;
padding: 1em;
}
.right {
padding: 1em;
float: right;
width: 67%;
background-color: #273E23;;
}
but you can use any percentages that look right to you.
You have two column in your site. One have class name "left" another have class named "right". Now each of those class have fixed width. So when the screen size goes less than the declared width the 2nd column get down to get it desire size.
If we see the explanation:
.right {
padding: 1em;
float: right;
width: 860px;
background-color: #273E23;
}
.left {
float: left;
width: 160px;
margin: 0;
padding: 1em;
}
Here we can see right class have width of 860px and the left class have width of 160px. Also the right class have a padding of 1em which is 15 in pixel. So if you want to show both of the element in single line then the minimum screen size should be 1050px (860 + 30 + 160). Here 30 is summation of both side padding 15 px.
If you want to do the code in such way that you what ever the screen size is both column should maintain size ratio then instead of using fixed width you should use %. For batter understanding you can check example of #bobdye
On small screen you have not enough space in .container for two columns.
You should set .container width in px, or declare min-width for it, or declare width of left and right columns in %.
PLease help!
This is what I have so far: http://beauxlent.com/nicole
When you click "one" "two" or "three", it takes you to a div that is still on the same page. However, I would like the div to stay within the right div and still on the same page used #tags. I've seen this done before.
<style type="text/css">
{
padding: 0;
margin: 0;
}
body {
text-align: justify;
overflow: hidden;
background: #F8F8F8;
font: -blocked- arial;
}
table, p {
display: none;
}
div {
width: 100%;
}
.container {width: 800px; display:block; margin:0px auto}
.left {width:200px; float:left; background: #eee; display:block; height:200px;
line- height:2}
.right {width:600px; float:right; background: #808080; display:block; height: 200px;
line-height:2; }
#o {position:absolute; right: 2000px;}
.blog {
background: 0;
position: absolute;
top: 150px;
left: 500px;
width: 290px;
height: 140px;
}
#omg {
z-index: 7;
position: absolute;
top: 1000px;
right: 0;
color: #000;
height: 1000px;
}
#plz {
z-index: 7;
position: absolute;
top: 9000px;
right: 0;
color: #000;
height: 9000px;
}
}
#nande a:hover {
color: #000;
}
#nande {
z-index: 7;
position: absolute;
top: 7000px;
right: 0;
color: #000;
height: 1000px;
}
body, table {
color: #fff;
}
font, table, tr, td, br, p {
font: -blocked- franklin gothic medium;
color: #fff;
}
#content {
width: 100%;
}
#main, #content {
border: 0px none;
background: #fff;
}
}
.framed {
background: #fff;
padding: 5px;
overflow: auto;
position: absolute;
top: 20px;
left: 0px;
}
</style>
<div id="boxed">
<div class="container">
<div class="left">
1
2
3
</div>
<div class="right">
<div id="omg">
<a name="uno"></a>
<div class="framed">
one
</div>
</div>
<div id="nande">
<a name="dos"></a>
<div class="framed">
two
</div>
</div>
<div id="plz">
<a name="tres"></a>
<div class="framed">
three
</div>
</div>
</div>
Tabbings you mean. This can be done too in CSS. Try to check it here -> http://css-tricks.com/functional-css-tabs-revisited/
HTML code:
<div class="tab">
<input type="radio" id="tab-1" name="tab-group-1" checked>
<label for="tab-1">Tab One</label>
<div class="content">
stuff
</div>
</div>
<div class="tab">
<input type="radio" id="tab-2" name="tab-group-1">
<label for="tab-2">Tab Two</label>
<div class="content">
stuff
</div>
</div>
<div class="tab">
<input type="radio" id="tab-3" name="tab-group-1">
<label for="tab-3">Tab Three</label>
<div class="content">
stuff
</div>
</div>
</div>
CSS code:
.tabs {
position: relative;
min-height: 200px; /* This part sucks */
clear: both;
margin: 25px 0;
}
.tab {
float: left;
}
.tab label {
background: #eee;
padding: 10px;
border: 1px solid #ccc;
margin-left: -1px;
position: relative;
left: 1px;
}
.tab [type=radio] {
display: none;
}
.content {
position: absolute;
top: 28px;
left: 0;
background: white;
right: 0;
bottom: 0;
padding: 20px;
border: 1px solid #ccc;
}
[type=radio]:checked ~ label {
background: white;
border-bottom: 1px solid white;
z-index: 2;
}
[type=radio]:checked ~ label ~ .content {
z-index: 1;
}
Take a look at jQuery UI Tabs - very easy to implement.
Include
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
The jQuery
$(function() {
$( "#tabs" ).tabs();
});
The HTML
<div id="tabs">
<ul>
<li>Nunc tincidunt</li>
<li>Proin dolor</li>
<li>Aenean lacinia</li>
</ul>
<div id="tabs-1">
<p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
</div>
<div id="tabs-2">
<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
</div>
<div id="tabs-3">
<p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
<p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
</div>
</div>