I want my table's first row and column sticky on the screen and there is another content before the table
the content before table can't scroll horizontally, and the table must can scroll horizontally and vertically
is there any way to do it without JavaScript?
.container {
width: 100%;
overflow-x: hidden;
display: flex;
flex-direction: column;
background: black;
}
.fixed-header {
width: 100%;
height: 100px;
color: aquamarine;
}
.table {
position: sticky;
top: 10px;
;
width: 100%;
height: 1000px;
background: blanchedalmond;
}
<div class="container">
<div class="fixed-header"></div>
<div class="table"></div>
</div>
You could add overflow-x: scroll; to .table in your CSS, as I did in the example below. Also, the table must not be a child of something for it to be sticky.
body {
background: black;
}
.container {
width: 100%;
overflow-x: hidden;
display: flex;
flex-direction: column;
background: black;
}
.fixed-header {
width: 100%;
height: 100px;
color: aquamarine;
}
.table {
position: sticky;
top: 10px;
overflow-x: scroll;
width: 100%;
height: 100px;
background: blanchedalmond;
}
#testContent {
color: white;
}
<div class="container">
<div class="fixed-header">
<pre>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eros ex, tristique in pretium a, pharetra sit amet risus. Nam in arcu sit amet augue vestibulum finibus et laoreet magna. Nam porta mi neque, a varius nisl tempus eu. Pellentesque faucibus nulla commodo felis porttitor, ut placerat tellus dignissim. Maecenas pulvinar efficitur fringilla. Morbi vitae eros lectus. Nullam ornare justo pellentesque scelerisque rutrum. Duis vel pretium elit. Pellentesque facilisis ultrices ultrices. Integer et consectetur velit. Vivamus vulputate auctor ipsum, sed volutpat odio vehicula ut.
Nulla eget erat quis ligula varius condimentum. Nam fringilla vel dolor vitae posuere. Nullam et rutrum mauris. Proin ultrices pharetra urna vel luctus. Aenean viverra commodo varius. Aliquam sed fringilla ex. Nunc vestibulum, leo vel pulvinar convallis, magna ex ornare mauris, id sodales nisi nisi eu metus. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam eleifend vitae arcu in efficitur. Donec felis leo, vulputate et tristique quis, suscipit eu augue. Maecenas non metus dignissim lacus hendrerit tempus non vel eros. Nam tempus nisl elementum, blandit velit id, viverra erat.
Etiam id quam nec purus vehicula ornare. Donec pretium, lectus et mollis dapibus, neque magna fermentum mauris, commodo rhoncus quam velit vitae dolor. Donec rutrum odio nec tincidunt pulvinar. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis a mauris varius, vestibulum enim in, pulvinar est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin laoreet elit rutrum hendrerit tempus. Aenean condimentum erat eget quam finibus, non commodo enim suscipit.
In et laoreet enim, sed volutpat purus. Cras maximus enim purus, quis placerat justo iaculis eu. Phasellus eget nisl felis. Sed aliquam et elit non vehicula. Proin sem quam, dignissim in dui ac, faucibus tincidunt arcu. Phasellus blandit eros interdum est consequat, id fermentum mauris semper. Integer blandit nisi eget turpis mattis, a luctus orci laoreet. Donec porttitor, metus sollicitudin porta ullamcorper, metus quam consectetur dolor, ut cursus quam ligula vel ipsum. Integer vestibulum nisl ut elit porttitor, at congue turpis commodo. Sed facilisis velit justo, vel accumsan est convallis sit amet. Morbi volutpat risus eget pulvinar fermentum. Nam cursus ac tortor eu mattis.
Nam elit velit, volutpat ut ante id, aliquet dapibus felis. Pellentesque aliquet est ornare, vulputate magna non, vestibulum dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque dapibus nisi sit amet.<pre>
</div>
</div>
<div class="table">
<pre>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eros ex, tristique in pretium a, pharetra sit amet risus. Nam in arcu sit amet augue vestibulum finibus et laoreet magna. Nam porta mi neque, a varius nisl tempus eu. Pellentesque faucibus nulla commodo felis porttitor, ut placerat tellus dignissim. Maecenas pulvinar efficitur fringilla. Morbi vitae eros lectus. Nullam ornare justo pellentesque scelerisque rutrum. Duis vel pretium elit. Pellentesque facilisis ultrices ultrices. Integer et consectetur velit. Vivamus vulputate auctor ipsum, sed volutpat odio vehicula ut.
Nulla eget erat quis ligula varius condimentum. Nam fringilla vel dolor vitae posuere. Nullam et rutrum mauris. Proin ultrices pharetra urna vel luctus. Aenean viverra commodo varius. Aliquam sed fringilla ex. Nunc vestibulum, leo vel pulvinar convallis, magna ex ornare mauris, id sodales nisi nisi eu metus. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam eleifend vitae arcu in efficitur. Donec felis leo, vulputate et tristique quis, suscipit eu augue. Maecenas non metus dignissim lacus hendrerit tempus non vel eros. Nam tempus nisl elementum, blandit velit id, viverra erat.
Etiam id quam nec purus vehicula ornare. Donec pretium, lectus et mollis dapibus, neque magna fermentum mauris, commodo rhoncus quam velit vitae dolor. Donec rutrum odio nec tincidunt pulvinar. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis a mauris varius, vestibulum enim in, pulvinar est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin laoreet elit rutrum hendrerit tempus. Aenean condimentum erat eget quam finibus, non commodo enim suscipit.
In et laoreet enim, sed volutpat purus. Cras maximus enim purus, quis placerat justo iaculis eu. Phasellus eget nisl felis. Sed aliquam et elit non vehicula. Proin sem quam, dignissim in dui ac, faucibus tincidunt arcu. Phasellus blandit eros interdum est consequat, id fermentum mauris semper. Integer blandit nisi eget turpis mattis, a luctus orci laoreet. Donec porttitor, metus sollicitudin porta ullamcorper, metus quam consectetur dolor, ut cursus quam ligula vel ipsum. Integer vestibulum nisl ut elit porttitor, at congue turpis commodo. Sed facilisis velit justo, vel accumsan est convallis sit amet. Morbi volutpat risus eget pulvinar fermentum. Nam cursus ac tortor eu mattis.
Nam elit velit, volutpat ut ante id, aliquet dapibus felis. Pellentesque aliquet est ornare, vulputate magna non, vestibulum dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque dapibus nisi sit amet.<pre>
</div>
<div class="container">
<div id="testContent">
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
</div>
</div>
Related
I am trying to create a grid with 2 columns:
1) a narrow fixed-position sidebar on the left
2) A wide column for the main content on the right.
According to this post, there is a problem with fixed-position grid items. One response was to:
wrap your contents in a div and set the div to have position: fixed.
The author successfuly presented a demonstration of this technique. Here, the fixed sidebar was at the right-side of the screen.
Since I need my fixed sidebar on the left, I have adapted the technique, as shown here. My adaptation was basically to provide a width for the <div> overlaid in the sidebar:
aside div {
width: 200px;
margin: 0;
padding: 0;
border: 1px solid blue;
/* padding: 0 15px 0 5px; */
position: fixed;
}
The adaptation works in principle, but for some reason the overlay is offset to the right by a small margin, as indicated by the blue border (provided for debugging purposes). As a result, the text in the sidebar overflows and the text-wrap takes place outside the sidebar.
1) Why does this happen?
2) Is it possible to precisely overlay the fixed-position div on the grid's sidebar? I have tried margins and padding for certain elements as shown in the codepen, but they don't help. I have also tried reducing the width of the overlay, as shown here. This works, but is arbitrary.
You can just add width:100% to your .grid > * {} part of the CSS. This will just override the width of all children of .grid to fill up the whole width of the grid-element so that the child elements don't overflow out of the grid.
Here is what your final code will become:
body {
margin: 0;
}
.grid {
display: grid;
grid-template-columns: 200px 1fr;
grid-template-areas: "sb mn";
grid-column-gap: 10px;
}
.grid>* {
margin: 0;
padding: 0;
width: 100%;/* This is the part I added */
}
.sidebar {
grid-area: sb;
border: 1px solid green;
background-color: red;
}
aside div {
width: 200px;
margin: 0;
padding: 0;
border: 1px solid blue;
/* padding: 0 15px 0 5px; */
position: fixed;
}
.main {
grid-area: mn;
}
<div class="grid">
<aside class="sidebar">
<div>
<h4>laboris nisi</h4>
<p>
Cum sociis natoque penatibus bibendum enim facilisis gravida neque convallis a cras. Nibh sed pulvinar proin gravida. Cum sociis natoque penatibus et magnis dis parturient.
</p>
<p>
Id neque aliquam vestibulum sed tempus urna et pharetra pharetra massa massa. Id leo in vitae turpis. Dignissim sodales ut eu sem integer.
</p>
<p>
Vestibulum rhoncus est tristique nulla aliquet enim tortor at auctor urna nunc. Aliquet risus feugiat in ante metus. Feugiat nibh sed pulvinar proin gravida.
</p>
</div>
</aside>
<div class="main">
<h1>Cras semper auctor neque vitae</h1>
<p>
Vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae elementum. Aenean et tortor at risus. Venenatis a condimentum vitae sapien pellentesque habitant. Sed elementum tempus egestas sed sed risus pretium quam vulputate. Ornare arcu odio ut
sem nulla pharetra diam sit amet. Aliquam etiam erat velit scelerisque in dictum non. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Eget nulla facilisi etiam dignissim.
Odio tempor orci dapibus ultrices in. Amet volutpat consequat mauris nunc congue nisi. Accumsan sit amet nulla facilisi morbi tempus iaculis urna. Nibh sed pulvinar proin gravida. Cum sociis natoque penatibus et magnis dis parturient. Non pulvinar
neque laoreet suspendisse interdum consectetur.
</p>
<p>
Mattis molestie a iaculis at erat. Hac habitasse platea dictumst vestibulum rhoncus. Lacus luctus accumsan tortor posuere ac ut consequat semper viverra. Facilisis mauris sit amet massa vitae tortor condimentum lacinia. Non diam phasellus vestibulum lorem.
Sed tempus urna et pharetra pharetra massa massa. Id leo in vitae turpis. Dignissim sodales ut eu sem integer. Erat velit scelerisque in dictum. Id venenatis a condimentum vitae sapien.
</p>
<p>
Vitae semper quis lectus nulla at volutpat. Imperdiet sed euismod nisi porta lorem mollis. Fames ac turpis egestas sed. Tempus quam pellentesque nec nam aliquam sem et tortor. Ut tellus elementum sagittis vitae et leo duis. Habitant morbi tristique senectus
et netus et malesuada. Penatibus et magnis dis parturient. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Sit amet volutpat consequat mauris nunc congue. Pharetra massa massa ultricies mi quis hendrerit dolor magna. Feugiat
nibh sed pulvinar proin gravida hendrerit lectus. Ultricies tristique nulla aliquet enim tortor at auctor urna nunc. Aliquet risus feugiat in ante metus. Vitae aliquet nec ullamcorper sit amet. Aliquam malesuada bibendum arcu vitae. Aliquet nibh
praesent tristique magna sit amet purus. Gravida rutrum quisque non tellus orci ac auctor. Etiam erat velit scelerisque in dictum non consectetur a erat.
</p>
<p>
Vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae elementum. Aenean et tortor at risus. Venenatis a condimentum vitae sapien pellentesque habitant. Sed elementum tempus egestas sed sed risus pretium quam vulputate. Ornare arcu odio ut
sem nulla pharetra diam sit amet. Aliquam etiam erat velit scelerisque in dictum non. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Eget nulla facilisi etiam dignissim.
Odio tempor orci dapibus ultrices in. Amet volutpat consequat mauris nunc congue nisi. Accumsan sit amet nulla facilisi morbi tempus iaculis urna. Nibh sed pulvinar proin gravida. Cum sociis natoque penatibus et magnis dis parturient. Non pulvinar
neque laoreet suspendisse interdum consectetur.
</p>
<p>
Mattis molestie a iaculis at erat. Hac habitasse platea dictumst vestibulum rhoncus. Lacus luctus accumsan tortor posuere ac ut consequat semper viverra. Facilisis mauris sit amet massa vitae tortor condimentum lacinia. Non diam phasellus vestibulum lorem.
Sed tempus urna et pharetra pharetra massa massa. Id leo in vitae turpis. Dignissim sodales ut eu sem integer. Erat velit scelerisque in dictum. Id venenatis a condimentum vitae sapien.
</p>
<p>
Vitae semper quis lectus nulla at volutpat. Imperdiet sed euismod nisi porta lorem mollis. Fames ac turpis egestas sed. Tempus quam pellentesque nec nam aliquam sem et tortor. Ut tellus elementum sagittis vitae et leo duis. Habitant morbi tristique senectus
et netus et malesuada. Penatibus et magnis dis parturient. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Sit amet volutpat consequat mauris nunc congue. Pharetra massa massa ultricies mi quis hendrerit dolor magna. Feugiat
nibh sed pulvinar proin gravida hendrerit lectus. Ultricies tristique nulla aliquet enim tortor at auctor urna nunc. Aliquet risus feugiat in ante metus. Vitae aliquet nec ullamcorper sit amet. Aliquam malesuada bibendum arcu vitae. Aliquet nibh
praesent tristique magna sit amet purus. Gravida rutrum quisque non tellus orci ac auctor. Etiam erat velit scelerisque in dictum non consectetur a erat.
</p>
<p>
Vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae elementum. Aenean et tortor at risus. Venenatis a condimentum vitae sapien pellentesque habitant. Sed elementum tempus egestas sed sed risus pretium quam vulputate. Ornare arcu odio ut
sem nulla pharetra diam sit amet. Aliquam etiam erat velit scelerisque in dictum non. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Eget nulla facilisi etiam dignissim.
Odio tempor orci dapibus ultrices in. Amet volutpat consequat mauris nunc congue nisi. Accumsan sit amet nulla facilisi morbi tempus iaculis urna. Nibh sed pulvinar proin gravida. Cum sociis natoque penatibus et magnis dis parturient. Non pulvinar
neque laoreet suspendisse interdum consectetur.
</p>
<p>
Mattis molestie a iaculis at erat. Hac habitasse platea dictumst vestibulum rhoncus. Lacus luctus accumsan tortor posuere ac ut consequat semper viverra. Facilisis mauris sit amet massa vitae tortor condimentum lacinia. Non diam phasellus vestibulum lorem.
Sed tempus urna et pharetra pharetra massa massa. Id leo in vitae turpis. Dignissim sodales ut eu sem integer. Erat velit scelerisque in dictum. Id venenatis a condimentum vitae sapien.
</p>
<p>
Vitae semper quis lectus nulla at volutpat. Imperdiet sed euismod nisi porta lorem mollis. Fames ac turpis egestas sed. Tempus quam pellentesque nec nam aliquam sem et tortor. Ut tellus elementum sagittis vitae et leo duis. Habitant morbi tristique senectus
et netus et malesuada. Penatibus et magnis dis parturient. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Sit amet volutpat consequat mauris nunc congue. Pharetra massa massa ultricies mi quis hendrerit dolor magna. Feugiat
nibh sed pulvinar proin gravida hendrerit lectus. Ultricies tristique nulla aliquet enim tortor at auctor urna nunc. Aliquet risus feugiat in ante metus. Vitae aliquet nec ullamcorper sit amet. Aliquam malesuada bibendum arcu vitae. Aliquet nibh
praesent tristique magna sit amet purus. Gravida rutrum quisque non tellus orci ac auctor. Etiam erat velit scelerisque in dictum non consectetur a erat.
</p>
</div>
<!-- main -->
</div>
<!-- grid -->
But if you just needed a fixed sidebar, you could just add height:100vh; overflow-Y: scroll to .main or as #ndvo has suggested using position: sticky, this is a much better solution.
Then your code should become:
body {
margin: 0;
padding: 0;
}
.grid {
display: grid;
grid-template-columns: 250px 1fr;
grid-template-areas: "sb mn";
grid-column-gap: 2vw;/* using the unit 'vw'(2% of viewport-width) will make the gap responsive */
height: 100vh; /* 100% of viewport-height. (Fill up the whole screen height) */
}
.sidebar {
grid-area: sb;
padding: 0 5px;
/* The part below is just appearance */
box-shadow: inset 2px 2px red, inset -2px -2px red;
background: yellow;
}
.sidebarContent {
position: sticky;
top: 0;
/* The part below is just appearance */
height:60vh;
background: red;
text-align: center;
color: yellow
}
.main {
grid-area: mn;
padding: 0 5px;
/* The part below is just appearance */
box-shadow: inset 2px 2px red, inset -2px -2px red;
background: green;
}
.mainContent {
/* The part below is just appearance */
background: red;
text-align: center;
color: yellow
}
<div class="grid">
<aside class="sidebar">
<div class="sidebarContent">
SideBar Content
</div>
</aside>
<div class="main">
<div class="mainContent">
Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>Main
Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>Main Content<br>
</div>
</div>
</div>
Tangent:
I prefer using box-shadows over border as borders takeup additional space thereby ruining the grid percentages by a bit (Maybe I'm being OCD 😜).
I would also like to recommend GridGarden, a game with just 28 very easy levels ( At the time of writing ). Just complete it once. It helped me; it might help others too.
Problems with Fixed Positioning
The first grid item has a width of 200px (using grid-template-columns: 200px 1fr in the grid definition) and at the same time the aside div inside the grid item is being set width: 200px along with padding (and left: 0 not added along with position: fixed.
Suggestion
But I would suggest to omit fixed positioning for the aside div and add grid-template-rows: 100vh to the grid container. This will restrict your grid to the viewport and now you can add overflow-y: auto to the two grid items as desired. This will give you the same effect of a fixed sidebar - see demo below:
body {
margin: 0;
}
.grid {
display: grid;
grid-template-columns: 200px 1fr;
grid-template-rows: 100vh; /* ADDED */
grid-template-areas: "sb mn";
grid-column-gap: 10px;
}
.grid>* {
margin: 0;
padding: 0;
}
.sidebar {
grid-area: sb;
border: 1px solid green;
/*padding: 0 5px;*/
background-color: red;
overflow: hidden; /* ADDED */
}
aside div {
/* width: 200px; */
margin: 0;
padding: 0 5px; /* CHANGED */
border: 1px solid blue;
/* padding: 0 15px 0 5px; */
/* position: fixed; */
}
.main {
grid-area: mn;
overflow-y: auto; /* ADDED */
}
<div class="grid">
<aside class="sidebar">
<div>
<h4>laboris nisi</h4>
<p>
Cum sociis natoque penatibus bibendum enim facilisis gravida neque convallis a cras. Nibh sed pulvinar proin gravida. Cum sociis natoque penatibus et magnis dis parturient.
</p>
<p>
Id neque aliquam vestibulum sed tempus urna et pharetra pharetra massa massa. Id leo in vitae turpis. Dignissim sodales ut eu sem integer.
</p>
<p>
Vestibulum rhoncus est tristique nulla aliquet enim tortor at auctor urna nunc. Aliquet risus feugiat in ante metus. Feugiat nibh sed pulvinar proin gravida.
</p>
</div>
</aside>
<div class="main">
<h1>Cras semper auctor neque vitae</h1>
<p>
Vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae elementum. Aenean et tortor at risus. Venenatis a condimentum vitae sapien pellentesque habitant. Sed elementum tempus egestas sed sed risus pretium quam vulputate. Ornare arcu odio ut
sem nulla pharetra diam sit amet. Aliquam etiam erat velit scelerisque in dictum non. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Eget nulla facilisi etiam dignissim.
Odio tempor orci dapibus ultrices in. Amet volutpat consequat mauris nunc congue nisi. Accumsan sit amet nulla facilisi morbi tempus iaculis urna. Nibh sed pulvinar proin gravida. Cum sociis natoque penatibus et magnis dis parturient. Non pulvinar
neque laoreet suspendisse interdum consectetur.
</p>
<p>
Mattis molestie a iaculis at erat. Hac habitasse platea dictumst vestibulum rhoncus. Lacus luctus accumsan tortor posuere ac ut consequat semper viverra. Facilisis mauris sit amet massa vitae tortor condimentum lacinia. Non diam phasellus vestibulum lorem.
Sed tempus urna et pharetra pharetra massa massa. Id leo in vitae turpis. Dignissim sodales ut eu sem integer. Erat velit scelerisque in dictum. Id venenatis a condimentum vitae sapien.
</p>
<p>
Vitae semper quis lectus nulla at volutpat. Imperdiet sed euismod nisi porta lorem mollis. Fames ac turpis egestas sed. Tempus quam pellentesque nec nam aliquam sem et tortor. Ut tellus elementum sagittis vitae et leo duis. Habitant morbi tristique senectus
et netus et malesuada. Penatibus et magnis dis parturient. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Sit amet volutpat consequat mauris nunc congue. Pharetra massa massa ultricies mi quis hendrerit dolor magna. Feugiat
nibh sed pulvinar proin gravida hendrerit lectus. Ultricies tristique nulla aliquet enim tortor at auctor urna nunc. Aliquet risus feugiat in ante metus. Vitae aliquet nec ullamcorper sit amet. Aliquam malesuada bibendum arcu vitae. Aliquet nibh
praesent tristique magna sit amet purus. Gravida rutrum quisque non tellus orci ac auctor. Etiam erat velit scelerisque in dictum non consectetur a erat.
</p>
<p>
Vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae elementum. Aenean et tortor at risus. Venenatis a condimentum vitae sapien pellentesque habitant. Sed elementum tempus egestas sed sed risus pretium quam vulputate. Ornare arcu odio ut
sem nulla pharetra diam sit amet. Aliquam etiam erat velit scelerisque in dictum non. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Eget nulla facilisi etiam dignissim.
Odio tempor orci dapibus ultrices in. Amet volutpat consequat mauris nunc congue nisi. Accumsan sit amet nulla facilisi morbi tempus iaculis urna. Nibh sed pulvinar proin gravida. Cum sociis natoque penatibus et magnis dis parturient. Non pulvinar
neque laoreet suspendisse interdum consectetur.
</p>
<p>
Mattis molestie a iaculis at erat. Hac habitasse platea dictumst vestibulum rhoncus. Lacus luctus accumsan tortor posuere ac ut consequat semper viverra. Facilisis mauris sit amet massa vitae tortor condimentum lacinia. Non diam phasellus vestibulum lorem.
Sed tempus urna et pharetra pharetra massa massa. Id leo in vitae turpis. Dignissim sodales ut eu sem integer. Erat velit scelerisque in dictum. Id venenatis a condimentum vitae sapien.
</p>
<p>
Vitae semper quis lectus nulla at volutpat. Imperdiet sed euismod nisi porta lorem mollis. Fames ac turpis egestas sed. Tempus quam pellentesque nec nam aliquam sem et tortor. Ut tellus elementum sagittis vitae et leo duis. Habitant morbi tristique senectus
et netus et malesuada. Penatibus et magnis dis parturient. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Sit amet volutpat consequat mauris nunc congue. Pharetra massa massa ultricies mi quis hendrerit dolor magna. Feugiat
nibh sed pulvinar proin gravida hendrerit lectus. Ultricies tristique nulla aliquet enim tortor at auctor urna nunc. Aliquet risus feugiat in ante metus. Vitae aliquet nec ullamcorper sit amet. Aliquam malesuada bibendum arcu vitae. Aliquet nibh
praesent tristique magna sit amet purus. Gravida rutrum quisque non tellus orci ac auctor. Etiam erat velit scelerisque in dictum non consectetur a erat.
</p>
<p>
Vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae elementum. Aenean et tortor at risus. Venenatis a condimentum vitae sapien pellentesque habitant. Sed elementum tempus egestas sed sed risus pretium quam vulputate. Ornare arcu odio ut
sem nulla pharetra diam sit amet. Aliquam etiam erat velit scelerisque in dictum non. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Eget nulla facilisi etiam dignissim.
Odio tempor orci dapibus ultrices in. Amet volutpat consequat mauris nunc congue nisi. Accumsan sit amet nulla facilisi morbi tempus iaculis urna. Nibh sed pulvinar proin gravida. Cum sociis natoque penatibus et magnis dis parturient. Non pulvinar
neque laoreet suspendisse interdum consectetur.
</p>
<p>
Mattis molestie a iaculis at erat. Hac habitasse platea dictumst vestibulum rhoncus. Lacus luctus accumsan tortor posuere ac ut consequat semper viverra. Facilisis mauris sit amet massa vitae tortor condimentum lacinia. Non diam phasellus vestibulum lorem.
Sed tempus urna et pharetra pharetra massa massa. Id leo in vitae turpis. Dignissim sodales ut eu sem integer. Erat velit scelerisque in dictum. Id venenatis a condimentum vitae sapien.
</p>
<p>
Vitae semper quis lectus nulla at volutpat. Imperdiet sed euismod nisi porta lorem mollis. Fames ac turpis egestas sed. Tempus quam pellentesque nec nam aliquam sem et tortor. Ut tellus elementum sagittis vitae et leo duis. Habitant morbi tristique senectus
et netus et malesuada. Penatibus et magnis dis parturient. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies. Sit amet volutpat consequat mauris nunc congue. Pharetra massa massa ultricies mi quis hendrerit dolor magna. Feugiat
nibh sed pulvinar proin gravida hendrerit lectus. Ultricies tristique nulla aliquet enim tortor at auctor urna nunc. Aliquet risus feugiat in ante metus. Vitae aliquet nec ullamcorper sit amet. Aliquam malesuada bibendum arcu vitae. Aliquet nibh
praesent tristique magna sit amet purus. Gravida rutrum quisque non tellus orci ac auctor. Etiam erat velit scelerisque in dictum non consectetur a erat.
</p>
</div>
<!-- main -->
</div>
<!-- grid -->
I have a fixed navigation bar and a paragraph of text. On scroll, I want the paragraph's text to appear behind the navigation bar. I am currently using z-index, but it is not working. May someone help guide me in the right direction please? Here is the complete code so far. Thank you. Here is the link to the codepen: https://codepen.io/kylelong/pen/oaBLGd
[<html>
<head>
<title>Title</title>
<style>
/* Navigation menu */
.nav-bar
{
position: fixed;
top: 0;
left: 0;
height: 45px;
width: 100%;
z-index: 1000;
-webkit-box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2);
-moz-box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2);
box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2);
/*border-bottom: 2px solid #4169E1;*/
}
#text{
position: relative;
width: 300px;
left: 0px;
top: 0px;
z-index: -1;
}
</style>
</head>
<body>
<nav class="nav-bar"> </nav>
<p id='text'>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris rutrum eleifend sapien ut egestas. Nam consequat varius pretium. Sed porttitor ultricies turpis sed convallis. Phasellus consectetur lacus et est vehicula sodales. Integer suscipit urna porttitor mauris lacinia iaculis. Sed molestie orci elit, in condimentum mi venenatis vel. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sit amet mattis felis, sit amet finibus leo. Vestibulum congue dapibus neque, sed consequat sapien. Fusce id aliquet lacus. Donec feugiat lacus dolor, id bibendum quam lacinia id. Nam luctus dignissim velit, id pulvinar sapien semper at. Fusce vitae efficitur urna, in vulputate est. Fusce convallis ante quis eros cursus ultricies.
Vivamus placerat dolor sit amet arcu malesuada imperdiet. Nam lorem quam, tempus at fringilla a, pretium vitae dolor. Pellentesque eu sem volutpat, volutpat purus nec, sollicitudin eros. Donec rhoncus, magna et interdum aliquam, ligula velit tincidunt nulla, nec pellentesque tellus nulla a odio. Donec volutpat dui et turpis tristique elementum. Aenean feugiat dui vestibulum ligula imperdiet, ac hendrerit est sollicitudin. Cras imperdiet, velit vel facilisis mattis, eros mauris varius elit, vitae luctus metus elit nec eros. Vivamus sollicitudin ultricies consequat. Ut luctus, arcu sed ultricies facilisis, libero risus sagittis mauris, vel tempor mi lorem sed lectus. Sed gravida vulputate cursus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris eu fermentum massa. Suspendisse potenti. Mauris feugiat ligula ut est feugiat laoreet. Vivamus eget mattis nulla. Donec sem nulla, imperdiet ut elementum in, consequat a nisl.
Morbi lobortis sodales nunc, ut maximus neque pharetra ac. Suspendisse gravida lorem nisi, in aliquet tellus gravida vel. Mauris venenatis risus non mi consequat elementum. Pellentesque eu ornare ligula. Nunc eleifend turpis et viverra aliquam. Suspendisse ligula ligula, iaculis vel egestas et, vehicula ut arcu. Morbi lectus neque, varius eu feugiat vitae, luctus eget neque. Phasellus convallis commodo lacus quis accumsan. Vestibulum aliquam fringilla facilisis. Duis eleifend mauris a nisi consectetur dictum et ac purus. Donec sollicitudin vulputate neque, non ullamcorper urna vulputate non.
Nulla vitae dictum dui. Cras pretium volutpat iaculis. Phasellus consequat mi non neque molestie iaculis quis eu neque. Aenean elementum sem ut massa varius, in fringilla magna vestibulum. In a leo finibus, aliquet metus et, viverra lacus. Curabitur ex neque, iaculis vel varius et, iaculis at ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus tincidunt est porta, placerat ante pretium, facilisis eros. Duis viverra felis elit, sed condimentum sapien pulvinar a. Nunc dapibus eget augue in rhoncus. Suspendisse efficitur luctus ligula nec consectetur. Sed feugiat gravida nisi et congue. Donec egestas nec sapien et consectetur. Cras vitae metus sodales, varius nulla quis, molestie enim. Aliquam erat volutpat. Nunc nec lacus sed massa vestibulum facilisis.
Ut eu posuere diam. Curabitur enim massa, aliquam at nulla nec, rhoncus consequat augue. Nunc pretium ut tortor ut sodales. Ut commodo purus velit, at imperdiet tortor finibus at. In scelerisque odio sed turpis fermentum iaculis. Integer lacinia scelerisque ex tempus sodales. Nunc velit sapien, tempus vel consectetur non, sagittis eget felis. Proin in maximus lorem. Proin eros mi, tempus eu accumsan quis, porta vel urna. Quisque vestibulum suscipit dui vel faucibus. Pellentesque non erat mattis, tempus tortor eu, posuere augue.
</p>
</body>
</html>][1]
The issue seems to be that your nav bar is transparent. If you set the background-color property to a solid (black), you can see that your z-index CSS selector is indeed working (you could also set the z-index back to 1 instead of 1000 :) ).
I have 3 fixed elements
- top nav
- ads banner
- subMenu
I wish those to be position fixed, however, sometime, the ads banner can be hidden, in such case, subMenu should still be position fixed. is there a non js solution?
for now, bar has hardcoded top however if ads div is hidden, this will not work
<div class="page">
<div class="top-bar"> top nav</div>
<div class="ads">ads</div>
<div class="body">
<div class="bar">sub menu</div>
<div class="text">
long long text ...
</div>
</div>
</div>
css
.top-bar {
height: 50px;
background: blue;
position: fixed;
width: 100%;
top: 0;
}
.ads {
height: 70px;
background: gray;
position: fixed;
top: 50px;
width: 100%;
}
.bar {
height: 40px;
width: 100%;
background: yellow;
position: fixed;
top: 110px;
}
https://codepen.io/anon/pen/bLZgaO
Simply wrap the fixed elements in the same container and make this container fixed instead:
.fixed {
position: fixed;
width: 100%;
top: 0;
}
.top-bar {
height: 50px;
background: blue;
}
.ads {
height: 70px;
background: gray;
}
.bar {
height: 40px;
background: yellow;
}
<div class="page">
<div class="fixed">
<div class="top-bar"> top nav</div>
<div class="ads">ads</div>
<div class="bar">sub menu</div>
</div>
<div class="body">
<div class="text">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas et felis leo. Sed vehicula felis ac suscipit venenatis. Maecenas vel est eget erat mollis feugiat id in felis. Fusce quam felis, facilisis et suscipit quis, lacinia in nunc. Aenean interdum
ligula fermentum justo interdum, eu eleifend leo pulvinar. Ut nec orci id nisi ultricies feugiat. Duis at tincidunt sapien, at eleifend lectus. Nunc ex magna, porta at massa a, venenatis blandit diam. Sed congue mattis justo, nec vestibulum justo.
Pellentesque sodales elit quis quam posuere auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla consectetur dapibus mauris non porttitor. Vestibulum maximus interdum enim eu pharetra. Donec congue
quam quis justo sodales aliquet quis in risus. Integer elit diam, efficitur vitae viverra sit amet, sollicitudin in elit. Proin eget velit faucibus est vulputate lacinia. Curabitur sem urna, efficitur sit amet magna sed, rutrum tempor urna. Suspendisse
sit amet sem nec lectus suscipit aliquet. Nulla vel ullamcorper leo, non scelerisque nibh. Maecenas finibus mauris elit, quis tristique magna efficitur vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
himenaeos. Quisque at cursus ligula, eget luctus mi. Nunc ipsum ipsum, accumsan at tortor non, pharetra mollis sem. Duis vestibulum molestie leo, vel ultrices felis rutrum ut. Maecenas commodo arcu id arcu tempor, eu tempus tellus commodo. Maecenas
finibus, turpis auctor accumsan dignissim, lacus odio semper sapien, et vulputate dolor erat sit amet diam. Fusce interdum consectetur placerat. Maecenas et arcu ut nulla malesuada molestie. Maecenas cursus velit sit amet enim egestas semper.
Integer aliquet, urna id rutrum sagittis, velit metus iaculis urna, vel porta turpis dolor non nulla. Ut vitae turpis at lacus vehicula finibus sed sit amet nibh. Proin id diam ac neque eleifend euismod vel non risus. Vestibulum egestas, orci
et eleifend egestas, ipsum ante tempus elit, sit amet tincidunt ligula risus in lectus. Aenean vitae turpis eget erat egestas molestie. Duis efficitur augue elementum quam ultrices blandit. Nam iaculis libero non gravida tempor. Mauris sit amet
leo a lorem mattis faucibus quis at enim. Integer tincidunt efficitur ipsum, a imperdiet sem rutrum sit amet. Integer diam nibh, imperdiet nec leo a, ullamcorper finibus ex. Sed sed justo lorem. Proin justo enim, faucibus eu semper at, dictum
et nunc. Suspendisse congue id ligula ac faucibus. Mauris varius nisi et est semper sagittis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam a felis ut purus tincidunt finibus. Nunc sollicitudin
massa nulla, ac rhoncus eros finibus vitae. Nam auctor lobortis porta. Nulla et vestibulum lorem. Nunc a mi pretium, pulvinar magna ut, ornare velit. Mauris feugiat, quam in accumsan eleifend, orci velit placerat mauris, ut mollis ipsum sapien
ac ligula. Donec eleifend lectus lorem, ut finibus ipsum blandit ac. Ut placerat purus et lacus sodales consequat. Nulla in massa eget metus luctus mattis. Aliquam erat volutpat. Cras aliquet risus ut nisl blandit tempus.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas et felis leo. Sed vehicula felis ac suscipit venenatis. Maecenas vel est eget erat mollis feugiat id in felis. Fusce quam felis, facilisis et suscipit quis, lacinia in nunc. Aenean interdum
ligula fermentum justo interdum, eu eleifend leo pulvinar. Ut nec orci id nisi ultricies feugiat. Duis at tincidunt sapien, at eleifend lectus. Nunc ex magna, porta at massa a, venenatis blandit diam. Sed congue mattis justo, nec vestibulum justo.
Pellentesque sodales elit quis quam posuere auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla consectetur dapibus mauris non porttitor. Vestibulum maximus interdum enim eu pharetra. Donec congue
quam quis justo sodales aliquet quis in risus. Integer elit diam, efficitur vitae viverra sit amet, sollicitudin in elit. Proin eget velit faucibus est vulputate lacinia. Curabitur sem urna, efficitur sit amet magna sed, rutrum tempor urna. Suspendisse
sit amet sem nec lectus suscipit aliquet. Nulla vel ullamcorper leo, non scelerisque nibh. Maecenas finibus mauris elit, quis tristique magna efficitur vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
himenaeos. Quisque at cursus ligula, eget luctus mi. Nunc ipsum ipsum, accumsan at tortor non, pharetra mollis sem. Duis vestibulum molestie leo, vel ultrices felis rutrum ut. Maecenas commodo arcu id arcu tempor, eu tempus tellus commodo. Maecenas
finibus, turpis auctor accumsan dignissim, lacus odio semper sapien, et vulputate dolor erat sit amet diam. Fusce interdum consectetur placerat. Maecenas et arcu ut nulla malesuada molestie. Maecenas cursus velit sit amet enim egestas semper.
Integer aliquet, urna id rutrum sagittis, velit metus iaculis urna, vel porta turpis dolor non nulla. Ut vitae turpis at lacus vehicula finibus sed sit amet nibh. Proin id diam ac neque eleifend euismod vel non risus. Vestibulum egestas, orci
et eleifend egestas, ipsum ante tempus elit, sit amet tincidunt ligula risus in lectus. Aenean vitae turpis eget erat egestas molestie. Duis efficitur augue elementum quam ultrices blandit. Nam iaculis libero non gravida tempor. Mauris sit amet
leo a lorem mattis faucibus quis at enim. Integer tincidunt efficitur ipsum, a imperdiet sem rutrum sit amet. Integer diam nibh, imperdiet nec leo a, ullamcorper finibus ex. Sed sed justo lorem. Proin justo enim, faucibus eu semper at, dictum
et nunc. Suspendisse congue id ligula ac faucibus. Mauris varius nisi et est semper sagittis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam a felis ut purus tincidunt finibus. Nunc sollicitudin
massa nulla, ac rhoncus eros finibus vitae. Nam auctor lobortis porta. Nulla et vestibulum lorem. Nunc a mi pretium, pulvinar magna ut, ornare velit. Mauris feugiat, quam in accumsan eleifend, orci velit placerat mauris, ut mollis ipsum sapien
ac ligula. Donec eleifend lectus lorem, ut finibus ipsum blandit ac. Ut placerat purus et lacus sodales consequat. Nulla in massa eget metus luctus mattis. Aliquam erat volutpat. Cras aliquet risus ut nisl blandit tempus.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas et felis leo. Sed vehicula felis ac suscipit venenatis. Maecenas vel est eget erat mollis feugiat id in felis. Fusce quam felis, facilisis et suscipit quis, lacinia in nunc. Aenean interdum
ligula fermentum justo interdum, eu eleifend leo pulvinar. Ut nec orci id nisi ultricies feugiat. Duis at tincidunt sapien, at eleifend lectus. Nunc ex magna, porta at massa a, venenatis blandit diam. Sed congue mattis justo, nec vestibulum justo.
Pellentesque sodales elit quis quam posuere auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla consectetur dapibus mauris non porttitor. Vestibulum maximus interdum enim eu pharetra. Donec congue
quam quis justo sodales aliquet quis in risus. Integer elit diam, efficitur vitae viverra sit amet, sollicitudin in elit. Proin eget velit faucibus est vulputate lacinia. Curabitur sem urna, efficitur sit amet magna sed, rutrum tempor urna. Suspendisse
sit amet sem nec lectus suscipit aliquet. Nulla vel ullamcorper leo, non scelerisque nibh. Maecenas finibus mauris elit, quis tristique magna efficitur vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
himenaeos. Quisque at cursus ligula, eget luctus mi. Nunc ipsum ipsum, accumsan at tortor non, pharetra mollis sem. Duis vestibulum molestie leo, vel ultrices felis rutrum ut. Maecenas commodo arcu id arcu tempor, eu tempus tellus commodo. Maecenas
finibus, turpis auctor accumsan dignissim, lacus odio semper sapien, et vulputate dolor erat sit amet diam. Fusce interdum consectetur placerat. Maecenas et arcu ut nulla malesuada molestie. Maecenas cursus velit sit amet enim egestas semper.
Integer aliquet, urna id rutrum sagittis, velit metus iaculis urna, vel porta turpis dolor non nulla. Ut vitae turpis at lacus vehicula finibus sed sit amet nibh. Proin id diam ac neque eleifend euismod vel non risus. Vestibulum egestas, orci
et eleifend egestas, ipsum ante tempus elit, sit amet tincidunt ligula risus in lectus. Aenean vitae turpis eget erat egestas molestie. Duis efficitur augue elementum quam ultrices blandit. Nam iaculis libero non gravida tempor. Mauris sit amet
leo a lorem mattis faucibus quis at enim. Integer tincidunt efficitur ipsum, a imperdiet sem rutrum sit amet. Integer diam nibh, imperdiet nec leo a, ullamcorper finibus ex. Sed sed justo lorem. Proin justo enim, faucibus eu semper at, dictum
et nunc. Suspendisse congue id ligula ac faucibus. Mauris varius nisi et est semper sagittis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam a felis ut purus tincidunt finibus. Nunc sollicitudin
massa nulla, ac rhoncus eros finibus vitae. Nam auctor lobortis porta. Nulla et vestibulum lorem. Nunc a mi pretium, pulvinar magna ut, ornare velit. Mauris feugiat, quam in accumsan eleifend, orci velit placerat mauris, ut mollis ipsum sapien
ac ligula. Donec eleifend lectus lorem, ut finibus ipsum blandit ac. Ut placerat purus et lacus sodales consequat. Nulla in massa eget metus luctus mattis. Aliquam erat volutpat. Cras aliquet risus ut nisl blandit tempus.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas et felis leo. Sed vehicula felis ac suscipit venenatis. Maecenas vel est eget erat mollis feugiat id in felis. Fusce quam felis, facilisis et suscipit quis, lacinia in nunc. Aenean interdum
ligula fermentum justo interdum, eu eleifend leo pulvinar. Ut nec orci id nisi ultricies feugiat. Duis at tincidunt sapien, at eleifend lectus. Nunc ex magna, porta at massa a, venenatis blandit diam. Sed congue mattis justo, nec vestibulum justo.
Pellentesque sodales elit quis quam posuere auctor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla consectetur dapibus mauris non porttitor. Vestibulum maximus interdum enim eu pharetra. Donec congue
quam quis justo sodales aliquet quis in risus. Integer elit diam, efficitur vitae viverra sit amet, sollicitudin in elit. Proin eget velit faucibus est vulputate lacinia. Curabitur sem urna, efficitur sit amet magna sed, rutrum tempor urna. Suspendisse
sit amet sem nec lectus suscipit aliquet. Nulla vel ullamcorper leo, non scelerisque nibh. Maecenas finibus mauris elit, quis tristique magna efficitur vehicula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
himenaeos. Quisque at cursus ligula, eget luctus mi. Nunc ipsum ipsum, accumsan at tortor non, pharetra mollis sem. Duis vestibulum molestie leo, vel ultrices felis rutrum ut. Maecenas commodo arcu id arcu tempor, eu tempus tellus commodo. Maecenas
finibus, turpis auctor accumsan dignissim, lacus odio semper sapien, et vulputate dolor erat sit amet diam. Fusce interdum consectetur placerat. Maecenas et arcu ut nulla malesuada molestie. Maecenas cursus velit sit amet enim egestas semper.
Integer aliquet, urna id rutrum sagittis, velit metus iaculis urna, vel porta turpis dolor non nulla. Ut vitae turpis at lacus vehicula finibus sed sit amet nibh. Proin id diam ac neque eleifend euismod vel non risus. Vestibulum egestas, orci
et eleifend egestas, ipsum ante tempus elit, sit amet tincidunt ligula risus in lectus. Aenean vitae turpis eget erat egestas molestie. Duis efficitur augue elementum quam ultrices blandit. Nam iaculis libero non gravida tempor. Mauris sit amet
leo a lorem mattis faucibus quis at enim. Integer tincidunt efficitur ipsum, a imperdiet sem rutrum sit amet. Integer diam nibh, imperdiet nec leo a, ullamcorper finibus ex. Sed sed justo lorem. Proin justo enim, faucibus eu semper at, dictum
et nunc. Suspendisse congue id ligula ac faucibus. Mauris varius nisi et est semper sagittis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam a felis ut purus tincidunt finibus. Nunc sollicitudin
massa nulla, ac rhoncus eros finibus vitae. Nam auctor lobortis porta. Nulla et vestibulum lorem. Nunc a mi pretium, pulvinar magna ut, ornare velit. Mauris feugiat, quam in accumsan eleifend, orci velit placerat mauris, ut mollis ipsum sapien
ac ligula. Donec eleifend lectus lorem, ut finibus ipsum blandit ac. Ut placerat purus et lacus sodales consequat. Nulla in massa eget metus luctus mattis. Aliquam erat volutpat. Cras aliquet risus ut nisl blandit tempus.
</p>
</div>
</div>
</div>
How to make a page like https://wordpress.org/themes/twentyseventeen/. (first page)
full screen size bg image
fixed position image
covered by continued content
<body style="background-image: url('http://1.bp.blogspot.com/-hrGFLyJba3U/Uh90QVFp01I/AAAAAAAAFoY/F5R7LBbTox0/s1600/Background-Picture-Html.jpg');
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center; ">
<p style="color:#808080">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis maximus varius rutrum. Vivamus rutrum at nunc id pharetra. Cras consequat semper purus, ac rutrum mauris cursus eu. Nam vitae neque odio. Nunc eget justo quis magna pellentesque scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec consequat dui quis mollis laoreet. Nullam sit amet nisi eget nisi facilisis condimentum. Etiam in libero euismod, lobortis velit quis, convallis libero. Suspendisse lectus est, semper at dictum at, euismod sed turpis. Sed sapien purus, lacinia in mollis in, maximus et leo.</p>
<p style="color:#808080">Mauris purus libero, sagittis ac est at, porta lacinia nulla. Nullam scelerisque orci vitae ligula porta, ut egestas eros maximus. Sed fringilla nunc tortor, vel pretium magna convallis nec. Ut nec felis enim. Integer at est et arcu auctor blandit. Quisque faucibus urna nec augue faucibus, id iaculis justo ultrices. In hac habitasse platea dictumst. Nulla ornare, neque sit amet vestibulum venenatis, justo tortor tincidunt magna, ac vehicula urna nibh eu neque. Pellentesque volutpat nulla vestibulum imperdiet vestibulum.</p>
<p style="color:#808080">Praesent in arcu nisi. Integer sodales hendrerit nunc, non sodales ex. Sed sodales mattis venenatis. Proin ultricies sodales sem, non semper urna semper id. Proin fringilla vehicula cursus. Ut et sodales diam. Curabitur feugiat iaculis volutpat. Vestibulum rutrum hendrerit aliquet. Donec et massa quis ipsum sollicitudin pretium eu pellentesque felis.</p>
<p style="color:#808080">Maecenas pulvinar tristique urna non semper. Morbi porttitor, libero efficitur luctus dictum, nulla risus lobortis sapien, quis porttitor urna ipsum sit amet dolor. Pellentesque ac scelerisque mauris. In hac habitasse platea dictumst. Morbi maximus tellus scelerisque, rutrum quam sed, dignissim ipsum. Duis condimentum diam quis erat tempus, non eleifend felis tincidunt. Aenean laoreet turpis aliquam blandit commodo. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis sed efficitur tortor. Duis commodo, ligula sed egestas ultrices, purus quam suscipit nulla, ac cursus nunc libero et orci. Nulla quam est, condimentum volutpat libero id, fringilla finibus enim. Pellentesque maximus rhoncus sapien. Curabitur in placerat nunc. Nullam varius, neque quis fringilla luctus, metus tellus posuere dui, sed rutrum nunc sem tempus odio. Quisque efficitur posuere sollicitudin.</p>
<p style="color:#808080">Maecenas nec sodales erat, sit amet tempus orci. Suspendisse sit amet eros quis nulla mollis lobortis at ut metus. Phasellus faucibus ullamcorper elit, ac congue nulla faucibus vel. Aenean hendrerit felis quis nisi dignissim lobortis. Nunc consequat erat ac nibh hendrerit vehicula. Quisque efficitur fringilla risus in tincidunt. Maecenas eu tempor ante. Mauris vitae volutpat metus. Nulla aliquet orci et elit vehicula, eu cursus libero pharetra. Aliquam nec tortor vel nibh tincidunt sagittis. Curabitur aliquet ex turpis.</p>
</body>
background-image: url('path/to/picture.jpg');
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
This question already has an answer here:
CSS - div aligning to the bottom of parent div (inline-block)
(1 answer)
Closed 7 years ago.
I'm learning HTML, and wrote up the following to try and create a side navigation menu:
<html>
<head>
<style>
* {
border: 2px solid red;
}
#mainBody {
}
#mainNav {
display: inline-block;
width: 20%;
}
.navMenu {
list-style-type: none;
}
#mainContentBody {
display: inline-block;
width: 75%
}
</style>
</head>
<body>
<header>
<p>This is a header!</p>
</header>
<section id="mainBody">
<nav id="mainNav">
<ul class="navMenu">
<li> Pascal Cropped </li>
<li> Ethics Excerpt </li>
<li> Pascal Cropped Again </li>
</ul>
</nav>
<section id="mainContentBody">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla ac nisl mollis, sodales neque id, efficitur velit. Aliquam et ultricies purus. Nulla facilisi. Mauris id pulvinar ipsum, ac commodo ipsum. Nunc non facilisis augue. Suspendisse nec lacus ullamcorper, ultricies augue nec, consectetur enim. Donec fermentum suscipit dapibus. Nunc quis interdum nibh, vel aliquam nunc. Nunc non tincidunt sem. Nullam vitae dapibus metus. Curabitur eget dignissim lectus. Vivamus tempus sagittis eros sit amet aliquet. Integer tincidunt porta leo ac suscipit.
Quisque a feugiat erat. Proin non ante ut leo aliquam aliquam. Etiam tempus volutpat nulla sed commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nunc laoreet est et rutrum dapibus. Cras luctus id ex vel volutpat. Suspendisse porttitor, mauris vitae dapibus convallis, felis eros maximus ex, vitae sodales ante nulla eu quam. Curabitur nec metus nisi. Nunc dapibus orci condimentum lobortis dictum. Proin augue orci, pharetra a mollis vel, ornare id tellus. Pellentesque lectus leo, maximus et risus id, gravida ornare diam. Etiam eget metus quis quam feugiat mattis. Praesent vitae elementum metus.
Fusce volutpat fringilla ex, sit amet imperdiet sapien efficitur a.
</p>
<p>
Proin gravida orci diam, vitae placerat ligula hendrerit vel. Donec turpis nulla, lacinia vel justo in, consequat elementum tellus. Vivamus ut gravida metus. Aliquam lobortis, dolor nec pulvinar venenatis, lorem enim viverra sapien, vitae ultricies velit nisl vel arcu. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut a tincidunt lorem, non mollis neque. Nullam interdum dolor luctus ornare gravida. In tempus diam lectus. Sed tempor, purus in convallis suscipit, nisi nibh vehicula augue, et iaculis nisl nisl vestibulum justo. Integer posuere cursus velit, et iaculis justo aliquet et. Sed dapibus egestas neque, tincidunt aliquam nisl dapibus at. Morbi malesuada pellentesque posuere. Fusce a libero at mauris maximus maximus eu sed mi. Vivamus est nulla, viverra non felis at, elementum condimentum lacus. Sed sodales enim non tortor faucibus imperdiet.
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus est diam, mollis non purus non, posuere porta est. Donec vestibulum consequat massa vitae dictum. Sed eu lectus sed leo dignissim rutrum. Donec efficitur imperdiet purus, quis iaculis risus accumsan a. Integer ac erat id odio fringilla elementum. Pellentesque egestas ex eleifend, mollis nunc a, feugiat dui. Duis interdum id arcu vel aliquam. Aenean fringilla quam dolor, ut tempor elit cursus ut. Sed congue dui sit amet risus egestas rutrum. Nam dictum porttitor turpis, sit amet suscipit nunc consectetur ut. Donec at tincidunt nibh. Vestibulum sagittis pharetra eleifend.
Aenean pharetra, mi ac mattis suscipit, eros ante vehicula tellus, egestas ultricies felis elit sed ex. Suspendisse in nisl elit. Nullam nec libero nisl. Nulla tincidunt purus sapien, sed pulvinar diam varius non. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin non libero sed lorem dignissim hendrerit. Proin felis tortor, dignissim ac maximus ornare, consectetur vitae velit. Aenean nec accumsan felis. Proin vitae fringilla magna. Pellentesque sagittis purus sed finibus pretium. Nam nec ante dapibus odio suscipit mattis. Nulla in nisi convallis, pulvinar leo ac, fringilla nisl. Nam a dictum dolor.
</p>
</section>
</section>
</body>
</html>
For some reason though, the side menu is positioned at the bottom of #mainBody, instead of near the top:
Note all the white space above the menu on the left. I tried adjusting its position with the top CSS property, but it didn't change anything.
Can anyone point me in the right direction?
Add
vertical-align:top;
to your css *{}
jsFiddle
Add a vertical-align to the #mainNav as follow:
#mainNav {
vertical-align: top;
display: inline-block;
width: 20%;
}