Related
❌ this isn't what I want, since it didn't stick to the end, and didn't stay fixed.
(the pseudoelement is a gradient of white and transparent)
✅ this is what I want, and is correct only at the start when I never scrolled :(
(the pseudoelement is a gradient of white and transparent)
I tried absolute, fixed, and also sticky... nothing helps but absolute is correct only at the start when we didn't scroll, but when scrolling the ::before will start to follow the scrollbar which isn't what I want... I want that the ::before staying at the bottom every time (fixed doesn't help because it will go outside the <div> and follow maybe the <body>)
I can't change the structure, since I need to use ::before or ::after, but not create a new div, but I can use whatever CSS you suggest to me
I thought is a simple problem since fixed can solve it, but turn out is very hard, and fixed never work :( (I tried also to see on StackOverflow like 10 questions, and nothing helps)
The purpose is to show a little gradient at the end of the div...
Demo:
just try the demo below to see the bug:
div {
position: relative;
width: 300px;
height: 70vh;
padding: 1rem;
border: 2px solid red;
overflow: auto;
border-radius: 1rem;
}
div::before {
content: "";
position: absolute;
/* I tried also with fixed, but it goes outside the div :( */
bottom: 0;
left: 0;
width: 100%;
height: 40%;
background-image: linear-gradient(to top, white, transparent);
/*outline: 5px solid blue;*/ /* if you can't see the gradient, uncommnet this line */
}
<div>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Non sint praesentium quod, perferendis nesciunt, cumque exercitationem magni officiis aliquid, a dolor omnis dolore placeat fugiat consequatur. Fugit repudiandae porro id! Error voluptas, aspernatur
magni sapiente ducimus illo maiores repellat voluptatibus consectetur aut atque unde eveniet excepturi nam, ipsum at. Labore saepe ab ex beatae libero autem. A expedita corporis placeat? Eos eum nobis excepturi delectus enim autem, vitae ea mollitia,
soluta sequi nihil, officiis iusto quos sunt omnis perspiciatis consequuntur aliquam impedit voluptates. Odit, aperiam facere et inventore dicta distinctio. Corrupti consectetur, tempore nihil voluptates minus odio, vitae facilis eveniet quos officiis
architecto ipsum libero cupiditate aut. Sapiente doloribus aperiam libero laborum, accusamus ipsum et est tenetur voluptate iure dolorum. Sit quae dolor maxime assumenda quam, fuga id soluta aliquam reprehenderit vitae. Consequuntur ducimus, deleniti
animi excepturi repudiandae pariatur assumenda neque? Impedit tempore neque odio a, excepturi maiores rerum porro! Lorem ipsum dolor sit amet consectetur adipisicing elit. Non sint praesentium quod, perferendis nesciunt, cumque exercitationem magni
officiis aliquid, a dolor omnis dolore placeat fugiat consequatur. Fugit repudiandae porro id! Error voluptas, aspernatur magni sapiente ducimus illo maiores repellat voluptatibus consectetur aut atque unde eveniet excepturi nam, ipsum at. Labore saepe
ab ex beatae libero autem. A expedita corporis placeat? Eos eum nobis excepturi delectus enim autem, vitae ea mollitia, soluta sequi nihil, officiis iusto quos sunt omnis perspiciatis consequuntur aliquam impedit voluptates. Odit, aperiam facere et
inventore dicta distinctio. Corrupti consectetur, tempore nihil voluptates minus odio, vitae facilis eveniet quos officiis architecto ipsum libero cupiditate aut. Sapiente doloribus aperiam libero laborum, accusamus ipsum et est tenetur voluptate iure
dolorum. Sit quae dolor maxime assumenda quam, fuga id soluta aliquam reprehenderit vitae. Consequuntur ducimus, deleniti animi excepturi repudiandae pariatur assumenda neque? Impedit tempore neque odio a, excepturi maiores rerum porro! Lorem ipsum
dolor sit amet consectetur adipisicing elit. Non sint praesentium quod, perferendis nesciunt, cumque exercitationem magni officiis aliquid, a dolor omnis dolore placeat fugiat consequatur. Fugit repudiandae porro id! Error voluptas, aspernatur magni
sapiente ducimus illo maiores repellat voluptatibus consectetur aut atque unde eveniet excepturi nam, ipsum at. Labore saepe ab ex beatae libero autem. A expedita corporis placeat? Eos eum nobis excepturi delectus enim autem, vitae ea mollitia, soluta
sequi nihil, officiis iusto quos sunt omnis perspiciatis consequuntur aliquam impedit voluptates. Odit, aperiam facere et inventore dicta distinctio. Corrupti consectetur, tempore nihil voluptates minus odio, vitae facilis eveniet quos officiis architecto
ipsum libero cupiditate aut. Sapiente doloribus aperiam libero laborum, accusamus ipsum et est tenetur voluptate iure dolorum. Sit quae dolor maxime assumenda quam, fuga id soluta aliquam reprehenderit vitae. Consequuntur ducimus, deleniti animi excepturi
repudiandae pariatur assumenda neque? Impedit tempore neque odio a, excepturi maiores rerum porro!
</div>
This snippet demonstrates a way of doing this using position sticky on the pseudo element.
However, it relies on knowing the height and padding of the element so works for your example code and may work in your particular use case, but isn't a totally general solution.
div {
position: relative;
width: 300px;
height: 70vh;
padding: 1rem;
border: 2px solid red;
overflow: auto;
border-radius: 1rem;
}
div::before {
content: "";
position: sticky;
display: block;
top: 0;
left: 0;
margin-left: -1rem;
width: 100%;
height: calc(100% + 1rem);
background-image: linear-gradient(to top, white, transparent);
background-size: 100% 40%;
background-repeat: no-repeat;
background-position: left bottom;
margin-top: calc(-70vh - 1rem);
}
<div>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Non sint praesentium quod, perferendis nesciunt, cumque exercitationem magni officiis aliquid, a dolor omnis dolore placeat fugiat consequatur. Fugit repudiandae porro id! Error voluptas, aspernatur
magni sapiente ducimus illo maiores repellat voluptatibus consectetur aut atque unde eveniet excepturi nam, ipsum at. Labore saepe ab ex beatae libero autem. A expedita corporis placeat? Eos eum nobis excepturi delectus enim autem, vitae ea mollitia,
soluta sequi nihil, officiis iusto quos sunt omnis perspiciatis consequuntur aliquam impedit voluptates. Odit, aperiam facere et inventore dicta distinctio. Corrupti consectetur, tempore nihil voluptates minus odio, vitae facilis eveniet quos officiis
architecto ipsum libero cupiditate aut. Sapiente doloribus aperiam libero laborum, accusamus ipsum et est tenetur voluptate iure dolorum. Sit quae dolor maxime assumenda quam, fuga id soluta aliquam reprehenderit vitae. Consequuntur ducimus, deleniti
animi excepturi repudiandae pariatur assumenda neque? Impedit tempore neque odio a, excepturi maiores rerum porro! Lorem ipsum dolor sit amet consectetur adipisicing elit. Non sint praesentium quod, perferendis nesciunt, cumque exercitationem magni
officiis aliquid, a dolor omnis dolore placeat fugiat consequatur. Fugit repudiandae porro id! Error voluptas, aspernatur magni sapiente ducimus illo maiores repellat voluptatibus consectetur aut atque unde eveniet excepturi nam, ipsum at. Labore saepe
ab ex beatae libero autem. A expedita corporis placeat? Eos eum nobis excepturi delectus enim autem, vitae ea mollitia, soluta sequi nihil, officiis iusto quos sunt omnis perspiciatis consequuntur aliquam impedit voluptates. Odit, aperiam facere et
inventore dicta distinctio. Corrupti consectetur, tempore nihil voluptates minus odio, vitae facilis eveniet quos officiis architecto ipsum libero cupiditate aut. Sapiente doloribus aperiam libero laborum, accusamus ipsum et est tenetur voluptate iure
dolorum. Sit quae dolor maxime assumenda quam, fuga id soluta aliquam reprehenderit vitae. Consequuntur ducimus, deleniti animi excepturi repudiandae pariatur assumenda neque? Impedit tempore neque odio a, excepturi maiores rerum porro! Lorem ipsum
dolor sit amet consectetur adipisicing elit. Non sint praesentium quod, perferendis nesciunt, cumque exercitationem magni officiis aliquid, a dolor omnis dolore placeat fugiat consequatur. Fugit repudiandae porro id! Error voluptas, aspernatur magni
sapiente ducimus illo maiores repellat voluptatibus consectetur aut atque unde eveniet excepturi nam, ipsum at. Labore saepe ab ex beatae libero autem. A expedita corporis placeat? Eos eum nobis excepturi delectus enim autem, vitae ea mollitia, soluta
sequi nihil, officiis iusto quos sunt omnis perspiciatis consequuntur aliquam impedit voluptates. Odit, aperiam facere et inventore dicta distinctio. Corrupti consectetur, tempore nihil voluptates minus odio, vitae facilis eveniet quos officiis architecto
ipsum libero cupiditate aut. Sapiente doloribus aperiam libero laborum, accusamus ipsum et est tenetur voluptate iure dolorum. Sit quae dolor maxime assumenda quam, fuga id soluta aliquam reprehenderit vitae. Consequuntur ducimus, deleniti animi excepturi
repudiandae pariatur assumenda neque? Impedit tempore neque odio a, excepturi maiores rerum porro!
</div>
You can try out this approach to add a shadow for your paragraph.
You can make your wrapper container relative to your inner content to keep your shadow fixed at the bottom of the box.
Here is the sample code.
<div class="content">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Non sint praesentium quod, perferendis nesciunt, cumque exercitationem magni officiis aliquid, a dolor omnis dolore placeat fugiat consequatur. Fugit repudiandae porro id! Error voluptas, aspernatur
magni sapiente ducimus illo maiores repellat voluptatibus consectetur aut atque unde eveniet excepturi nam, ipsum at. Labore saepe ab ex beatae libero autem. A expedita corporis placeat? Eos eum nobis excepturi delectus enim autem, vitae ea mollitia,
soluta sequi nihil, officiis iusto quos sunt omnis perspiciatis consequuntur aliquam impedit voluptates. Odit, aperiam facere et inventore dicta distinctio. Corrupti consectetur, tempore nihil voluptates minus odio, vitae facilis eveniet quos officiis
architecto ipsum libero cupiditate aut. Sapiente doloribus aperiam libero laborum, accusamus ipsum et est tenetur voluptate iure dolorum. Sit quae dolor maxime assumenda quam, fuga id soluta aliquam reprehenderit vitae. Consequuntur ducimus, deleniti
animi excepturi repudiandae pariatur assumenda neque? Impedit tempore neque odio a, excepturi maiores rerum porro! Lorem ipsum dolor sit amet consectetur adipisicing elit. Non sint praesentium quod, perferendis nesciunt, cumque exercitationem magni
officiis aliquid, a dolor omnis dolore placeat fugiat consequatur. Fugit repudiandae porro id! Error voluptas, aspernatur magni sapiente ducimus illo maiores repellat voluptatibus consectetur aut atque unde eveniet excepturi nam, ipsum at. Labore saepe
ab ex beatae libero autem. A expedita corporis placeat? Eos eum nobis excepturi delectus enim autem, vitae ea mollitia, soluta sequi nihil, officiis iusto quos sunt omnis perspiciatis consequuntur aliquam impedit voluptates. Odit, aperiam facere et
inventore dicta distinctio. Corrupti consectetur, tempore nihil voluptates minus odio, vitae facilis eveniet quos officiis architecto ipsum libero cupiditate aut. Sapiente doloribus aperiam libero laborum, accusamus ipsum et est tenetur voluptate iure
dolorum. Sit quae dolor maxime assumenda quam, fuga id soluta aliquam reprehenderit vitae. Consequuntur ducimus, deleniti animi excepturi repudiandae pariatur assumenda neque? Impedit tempore neque odio a, excepturi maiores rerum porro! Lorem ipsum
dolor sit amet consectetur adipisicing elit. Non sint praesentium quod, perferendis nesciunt, cumque exercitationem magni officiis aliquid, a dolor omnis dolore placeat fugiat consequatur. Fugit repudiandae porro id! Error voluptas, aspernatur magni
sapiente ducimus illo maiores repellat voluptatibus consectetur aut atque unde eveniet excepturi nam, ipsum at. Labore saepe ab ex beatae libero autem. A expedita corporis placeat? Eos eum nobis excepturi delectus enim autem, vitae ea mollitia, soluta
sequi nihil, officiis iusto quos sunt omnis perspiciatis consequuntur aliquam impedit voluptates. Odit, aperiam facere et inventore dicta distinctio. Corrupti consectetur, tempore nihil voluptates minus odio, vitae facilis eveniet quos officiis architecto
ipsum libero cupiditate aut. Sapiente doloribus aperiam libero laborum, accusamus ipsum et est tenetur voluptate iure dolorum. Sit quae dolor maxime assumenda quam, fuga id soluta aliquam reprehenderit vitae. Consequuntur ducimus, deleniti animi excepturi
repudiandae pariatur assumenda neque? Impedit tempore neque odio a, excepturi maiores rerum porro!
<div class="fixed-wrapper">
<div class="fixed-shadow" />
</div>
</div>
.content {
position: relative;
width: 300px;
height: 70vh;
padding: 1rem;
border: 2px solid red;
overflow: auto;
border-radius: 1rem;
margin: 0 auto;
}
.fixed-wrapper {
position: absolute;
bottom: 0;
width: 300px;
height: 100px;
}
.fixed-shadow {
position: fixed;
width: 300px;
height: 100px;
background-image: linear-gradient(to top, white, transparent);
}
I am trying to work with intersectionObserver but it is acting wierd while trying with translationX. I wanted to translate all the .feature class form right to left as I scroll down but for some reason it is pushing contents outside of the viewport and it goes back to normal after all the items are visible.
Edit:
The above problem is occuring When i refresh page while viewing .feature class and it shows directly after refresh.
Found a solution:
Due to overflow hidden my documet was being scroll lock before the tranlation at the right side. Using animation soved my problem. :)
When I try to translate from left to right by changing
.feature{
opacity: 0;
transition: opacity 200ms ease-in,
transform 200ms ease-in;
transform: translateX(400px);
}
to
.feature{
opacity: 0;
transition: opacity 200ms ease-in,
transform 200ms ease-in;
transform: translateX(-400px);
}
it is working properly.
here is my codes.
index.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>Scroll effect</title>
<link rel="stylesheet" href="style.css">
<script src="mian.js" defer></script>
</head>
<body>
<div class="space"></div>
<div class="grid features">
<div class="feature"><p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aut deleniti aliquid obcaecati hic laudantium molestiae ea beatae maxime explicabo velit commodi, mollitia ratione corporis itaque suscipit sint eaque iure, ab doloribus quibusdam? Itaque beatae eaque nesciunt! Saepe mollitia veritatis accusamus aspernatur itaque modi alias dolores corrupti omnis odit, vero iusto repudiandae. Deleniti vel adipisci eveniet reiciendis natus? Quia iure sint debitis veritatis illo optio repellat? Blanditiis dicta atque quam possimus asperiores laudantium! Nulla modi facilis quas provident eaque hic cum obcaecati distinctio, qui soluta illo ratione expedita nihil. Distinctio voluptate qui autem. Debitis aliquid porro cupiditate accusantium, sunt quibusdam animi!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis iusto totam labore cum laborum rem amet, impedit eveniet dolorum quaerat natus magnam sed quidem ipsum suscipit velit? Corrupti eligendi cumque aliquam a tenetur, cupiditate, sint illo ut explicabo ex exercitationem reiciendis. Sapiente nostrum est voluptatum. At distinctio voluptate laboriosam? Quos voluptas blanditiis magnam quaerat sit cumque placeat possimus iure accusamus ex laudantium quasi unde, laboriosam similique ullam iste magni distinctio quis veniam eius. Magni aliquid ipsum eligendi odit cupiditate deserunt in libero laudantium, beatae hic nemo natus culpa dolore quas impedit exercitationem atque rerum! A est hic temporibus minus laborum!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Natus est earum sit quam aliquid ratione eaque nihil magni exercitationem veritatis nemo ex, ipsum et deserunt fugit porro commodi magnam quibusdam omnis molestias tempora! Deserunt laborum rerum debitis obcaecati officia sed autem quae temporibus repellendus! Nam deleniti debitis placeat laudantium illum cupiditate repellendus, quis laboriosam distinctio repudiandae. Quibusdam deleniti inventore perspiciatis aspernatur? Officia illum neque, eos distinctio repellendus quod odio hic labore unde necessitatibus voluptates doloribus. Ea in aliquam dolorem iure. Voluptatem dolores dicta iste sed eos a exercitationem molestias ipsa, quod natus similique corrupti ipsam fuga id cupiditate reprehenderit pariatur?</p></div>
</div>
<div class="grid features">
<div class="feature"><p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aut deleniti aliquid obcaecati hic laudantium molestiae ea beatae maxime explicabo velit commodi, mollitia ratione corporis itaque suscipit sint eaque iure, ab doloribus quibusdam? Itaque beatae eaque nesciunt! Saepe mollitia veritatis accusamus aspernatur itaque modi alias dolores corrupti omnis odit, vero iusto repudiandae. Deleniti vel adipisci eveniet reiciendis natus? Quia iure sint debitis veritatis illo optio repellat? Blanditiis dicta atque quam possimus asperiores laudantium! Nulla modi facilis quas provident eaque hic cum obcaecati distinctio, qui soluta illo ratione expedita nihil. Distinctio voluptate qui autem. Debitis aliquid porro cupiditate accusantium, sunt quibusdam animi!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis iusto totam labore cum laborum rem amet, impedit eveniet dolorum quaerat natus magnam sed quidem ipsum suscipit velit? Corrupti eligendi cumque aliquam a tenetur, cupiditate, sint illo ut explicabo ex exercitationem reiciendis. Sapiente nostrum est voluptatum. At distinctio voluptate laboriosam? Quos voluptas blanditiis magnam quaerat sit cumque placeat possimus iure accusamus ex laudantium quasi unde, laboriosam similique ullam iste magni distinctio quis veniam eius. Magni aliquid ipsum eligendi odit cupiditate deserunt in libero laudantium, beatae hic nemo natus culpa dolore quas impedit exercitationem atque rerum! A est hic temporibus minus laborum!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Natus est earum sit quam aliquid ratione eaque nihil magni exercitationem veritatis nemo ex, ipsum et deserunt fugit porro commodi magnam quibusdam omnis molestias tempora! Deserunt laborum rerum debitis obcaecati officia sed autem quae temporibus repellendus! Nam deleniti debitis placeat laudantium illum cupiditate repellendus, quis laboriosam distinctio repudiandae. Quibusdam deleniti inventore perspiciatis aspernatur? Officia illum neque, eos distinctio repellendus quod odio hic labore unde necessitatibus voluptates doloribus. Ea in aliquam dolorem iure. Voluptatem dolores dicta iste sed eos a exercitationem molestias ipsa, quod natus similique corrupti ipsam fuga id cupiditate reprehenderit pariatur?</p></div>
</div>
<div class="grid features">
<div class="feature"><p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aut deleniti aliquid obcaecati hic laudantium molestiae ea beatae maxime explicabo velit commodi, mollitia ratione corporis itaque suscipit sint eaque iure, ab doloribus quibusdam? Itaque beatae eaque nesciunt! Saepe mollitia veritatis accusamus aspernatur itaque modi alias dolores corrupti omnis odit, vero iusto repudiandae. Deleniti vel adipisci eveniet reiciendis natus? Quia iure sint debitis veritatis illo optio repellat? Blanditiis dicta atque quam possimus asperiores laudantium! Nulla modi facilis quas provident eaque hic cum obcaecati distinctio, qui soluta illo ratione expedita nihil. Distinctio voluptate qui autem. Debitis aliquid porro cupiditate accusantium, sunt quibusdam animi!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis iusto totam labore cum laborum rem amet, impedit eveniet dolorum quaerat natus magnam sed quidem ipsum suscipit velit? Corrupti eligendi cumque aliquam a tenetur, cupiditate, sint illo ut explicabo ex exercitationem reiciendis. Sapiente nostrum est voluptatum. At distinctio voluptate laboriosam? Quos voluptas blanditiis magnam quaerat sit cumque placeat possimus iure accusamus ex laudantium quasi unde, laboriosam similique ullam iste magni distinctio quis veniam eius. Magni aliquid ipsum eligendi odit cupiditate deserunt in libero laudantium, beatae hic nemo natus culpa dolore quas impedit exercitationem atque rerum! A est hic temporibus minus laborum!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Natus est earum sit quam aliquid ratione eaque nihil magni exercitationem veritatis nemo ex, ipsum et deserunt fugit porro commodi magnam quibusdam omnis molestias tempora! Deserunt laborum rerum debitis obcaecati officia sed autem quae temporibus repellendus! Nam deleniti debitis placeat laudantium illum cupiditate repellendus, quis laboriosam distinctio repudiandae. Quibusdam deleniti inventore perspiciatis aspernatur? Officia illum neque, eos distinctio repellendus quod odio hic labore unde necessitatibus voluptates doloribus. Ea in aliquam dolorem iure. Voluptatem dolores dicta iste sed eos a exercitationem molestias ipsa, quod natus similique corrupti ipsam fuga id cupiditate reprehenderit pariatur?</p></div>
</div>
<div class="grid features">
<div class="feature"><p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aut deleniti aliquid obcaecati hic laudantium molestiae ea beatae maxime explicabo velit commodi, mollitia ratione corporis itaque suscipit sint eaque iure, ab doloribus quibusdam? Itaque beatae eaque nesciunt! Saepe mollitia veritatis accusamus aspernatur itaque modi alias dolores corrupti omnis odit, vero iusto repudiandae. Deleniti vel adipisci eveniet reiciendis natus? Quia iure sint debitis veritatis illo optio repellat? Blanditiis dicta atque quam possimus asperiores laudantium! Nulla modi facilis quas provident eaque hic cum obcaecati distinctio, qui soluta illo ratione expedita nihil. Distinctio voluptate qui autem. Debitis aliquid porro cupiditate accusantium, sunt quibusdam animi!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis iusto totam labore cum laborum rem amet, impedit eveniet dolorum quaerat natus magnam sed quidem ipsum suscipit velit? Corrupti eligendi cumque aliquam a tenetur, cupiditate, sint illo ut explicabo ex exercitationem reiciendis. Sapiente nostrum est voluptatum. At distinctio voluptate laboriosam? Quos voluptas blanditiis magnam quaerat sit cumque placeat possimus iure accusamus ex laudantium quasi unde, laboriosam similique ullam iste magni distinctio quis veniam eius. Magni aliquid ipsum eligendi odit cupiditate deserunt in libero laudantium, beatae hic nemo natus culpa dolore quas impedit exercitationem atque rerum! A est hic temporibus minus laborum!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Natus est earum sit quam aliquid ratione eaque nihil magni exercitationem veritatis nemo ex, ipsum et deserunt fugit porro commodi magnam quibusdam omnis molestias tempora! Deserunt laborum rerum debitis obcaecati officia sed autem quae temporibus repellendus! Nam deleniti debitis placeat laudantium illum cupiditate repellendus, quis laboriosam distinctio repudiandae. Quibusdam deleniti inventore perspiciatis aspernatur? Officia illum neque, eos distinctio repellendus quod odio hic labore unde necessitatibus voluptates doloribus. Ea in aliquam dolorem iure. Voluptatem dolores dicta iste sed eos a exercitationem molestias ipsa, quod natus similique corrupti ipsam fuga id cupiditate reprehenderit pariatur?</p></div>
</div>
<div class="grid features">
<div class="feature"><p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aut deleniti aliquid obcaecati hic laudantium molestiae ea beatae maxime explicabo velit commodi, mollitia ratione corporis itaque suscipit sint eaque iure, ab doloribus quibusdam? Itaque beatae eaque nesciunt! Saepe mollitia veritatis accusamus aspernatur itaque modi alias dolores corrupti omnis odit, vero iusto repudiandae. Deleniti vel adipisci eveniet reiciendis natus? Quia iure sint debitis veritatis illo optio repellat? Blanditiis dicta atque quam possimus asperiores laudantium! Nulla modi facilis quas provident eaque hic cum obcaecati distinctio, qui soluta illo ratione expedita nihil. Distinctio voluptate qui autem. Debitis aliquid porro cupiditate accusantium, sunt quibusdam animi!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis iusto totam labore cum laborum rem amet, impedit eveniet dolorum quaerat natus magnam sed quidem ipsum suscipit velit? Corrupti eligendi cumque aliquam a tenetur, cupiditate, sint illo ut explicabo ex exercitationem reiciendis. Sapiente nostrum est voluptatum. At distinctio voluptate laboriosam? Quos voluptas blanditiis magnam quaerat sit cumque placeat possimus iure accusamus ex laudantium quasi unde, laboriosam similique ullam iste magni distinctio quis veniam eius. Magni aliquid ipsum eligendi odit cupiditate deserunt in libero laudantium, beatae hic nemo natus culpa dolore quas impedit exercitationem atque rerum! A est hic temporibus minus laborum!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Natus est earum sit quam aliquid ratione eaque nihil magni exercitationem veritatis nemo ex, ipsum et deserunt fugit porro commodi magnam quibusdam omnis molestias tempora! Deserunt laborum rerum debitis obcaecati officia sed autem quae temporibus repellendus! Nam deleniti debitis placeat laudantium illum cupiditate repellendus, quis laboriosam distinctio repudiandae. Quibusdam deleniti inventore perspiciatis aspernatur? Officia illum neque, eos distinctio repellendus quod odio hic labore unde necessitatibus voluptates doloribus. Ea in aliquam dolorem iure. Voluptatem dolores dicta iste sed eos a exercitationem molestias ipsa, quod natus similique corrupti ipsam fuga id cupiditate reprehenderit pariatur?</p></div>
</div>
<div class="grid features">
<div class="feature"><p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aut deleniti aliquid obcaecati hic laudantium molestiae ea beatae maxime explicabo velit commodi, mollitia ratione corporis itaque suscipit sint eaque iure, ab doloribus quibusdam? Itaque beatae eaque nesciunt! Saepe mollitia veritatis accusamus aspernatur itaque modi alias dolores corrupti omnis odit, vero iusto repudiandae. Deleniti vel adipisci eveniet reiciendis natus? Quia iure sint debitis veritatis illo optio repellat? Blanditiis dicta atque quam possimus asperiores laudantium! Nulla modi facilis quas provident eaque hic cum obcaecati distinctio, qui soluta illo ratione expedita nihil. Distinctio voluptate qui autem. Debitis aliquid porro cupiditate accusantium, sunt quibusdam animi!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Veritatis iusto totam labore cum laborum rem amet, impedit eveniet dolorum quaerat natus magnam sed quidem ipsum suscipit velit? Corrupti eligendi cumque aliquam a tenetur, cupiditate, sint illo ut explicabo ex exercitationem reiciendis. Sapiente nostrum est voluptatum. At distinctio voluptate laboriosam? Quos voluptas blanditiis magnam quaerat sit cumque placeat possimus iure accusamus ex laudantium quasi unde, laboriosam similique ullam iste magni distinctio quis veniam eius. Magni aliquid ipsum eligendi odit cupiditate deserunt in libero laudantium, beatae hic nemo natus culpa dolore quas impedit exercitationem atque rerum! A est hic temporibus minus laborum!</p></div>
<div class="feature"><p> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Natus est earum sit quam aliquid ratione eaque nihil magni exercitationem veritatis nemo ex, ipsum et deserunt fugit porro commodi magnam quibusdam omnis molestias tempora! Deserunt laborum rerum debitis obcaecati officia sed autem quae temporibus repellendus! Nam deleniti debitis placeat laudantium illum cupiditate repellendus, quis laboriosam distinctio repudiandae. Quibusdam deleniti inventore perspiciatis aspernatur? Officia illum neque, eos distinctio repellendus quod odio hic labore unde necessitatibus voluptates doloribus. Ea in aliquam dolorem iure. Voluptatem dolores dicta iste sed eos a exercitationem molestias ipsa, quod natus similique corrupti ipsam fuga id cupiditate reprehenderit pariatur?</p></div>
</div>
</body>
</html>
main.js
const features = document.querySelectorAll(".feature");
const observer = new IntersectionObserver(function (entries, observer) {
entries.forEach( entry => {
if (!entry.isIntersecting) {
return
}
entry.target.classList.toggle("viewed")
observer.unobserve(entry.target);
})
}, {threshold: 0, rootMargin: "-200px"})
features.forEach(feature => {
observer.observe(feature)
})
style.css
body{
overflow-x: hidden;
}
.space{
height: 100vh;
}
.grid{
display: grid;
}
.grid.features{
gap: 2rem;
grid-template-columns: repeat(3, 1fr);
}
.feature{
opacity: 0;
transition: opacity 200ms ease-in,
transform 200ms ease-in;
transform: translateX(400px);
}
.viewed{
opacity: 1 !important;
transform: translateX(0px) !important;
}
Image
I am trying to achieve a CSS Grid layout with two columns: the left column consists of a single element (e.g. a post) while the right column can have up to three posts (can have one or two, as well).
A basic example of the HTML layout would look like this:
<div class="grid">
<div class="primary">Potentially long text, but at most 1000px high...</div>
<div class="secondary">Text 1...</div>
<div class="secondary">Text 2...</div>
<div class="secondary">Text 3...</div>
</div>
Since the number of posts on the right side is dynamic, I can't really define an explicit grid with three rows, or else I will have empty grid cells if I end up with fewer than three posts.
I can't use grid-row: 1 / -1 on the left column without defining an explicit grid with three rows (at least from what I can tell).
The end goal is to have a blog post layout which features an article on the left side in full length, but only up to a specific height (e.g. 1000px, overflow hidden, text fading out), and up to three more posts on the right side with only excerpt-length of text. The columns of the grid should have equal height at all times but the right column's height should never extend the max-height set for the left column (the 1000px).
If the right side only has one or two posts, the left column should shrink accordingly. In other words, the posts on the right side should never have more whitespace than necessary because of the left column being too high.
To clarify: The height should ultimately be controlled by the right side and the posts on the right side should not be stretched if there is a very long text on the left side, instead the left side should be cut off at 1000px.
I created a codepen to illustrate my problem, or rather the situation I'm stuck in at the moment: https://codepen.io/cwardle/pen/ExZJJXL.
.grid {
display: grid;
column-gap: 1rem;
padding: 2rem;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(3, auto);
}
.primary {
grid-row: 1 / -1;
position: relative;
max-height: 300px;
background: #cecece;
overflow: hidden;
}
.primary:after {
content: "";
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: linear-gradient(transparent 200px, #fff);
}
.secondary {
grid-column-start: 2;
background: #aaa;
margin-block-end: 1rem;
}
.secondary:last-child {
margin-block-end: 0;
}
<div class="grid">
<div class="primary">
Lorem ipsum, dolor sit amet consectetur adipisicing elit. A illo nisi, sint odio repellat id enim totam. Aliquid nobis ducimus veniam totam eos et reiciendis porro illum sequi distinctio? Aliquam.
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Necessitatibus nulla amet perferendis iure veniam? Obcaecati molestiae laborum similique voluptatibus vel libero? Molestias deserunt nemo et consequuntur quam, saepe quo ratione?
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nostrum ut aperiam molestiae cumque nam reprehenderit repellat, quas omnis, delectus possimus id. Enim delectus quasi et cumque quas, temporibus odio alias?
Sequi ullam nostrum nesciunt. Sed distinctio illo eos odit repellendus eum incidunt ex libero mollitia rerum, veritatis cumque pariatur sapiente aliquid autem maiores quia itaque voluptates quidem dolore ratione doloremque!
Ea, illum quibusdam dolores enim ex laborum voluptate repellendus nostrum dicta magnam est temporibus ipsa quisquam aut placeat cupiditate animi earum optio maiores. Eos voluptatibus ad, provident optio eligendi numquam.
Aliquam, consectetur iste eveniet ipsam iusto pariatur exercitationem, incidunt perspiciatis nostrum repudiandae, dignissimos sint quo odit! Hic unde tempore veniam temporibus dolorem totam! Velit at in, distinctio accusamus quasi minima.
Officiis fuga natus assumenda ipsa quaerat, voluptatem rerum voluptas, dicta minus odit, sit earum nobis! Recusandae labore minus rerum modi minima est totam deleniti, eligendi sint quasi adipisci at iure?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias suscipit dignissimos porro nihil commodi et libero, mollitia ipsa. Officia quidem delectus nemo magni doloribus facilis iste rerum cum eum soluta!
Omnis laboriosam illo nisi! Unde tempora exercitationem culpa, architecto dignissimos eum ratione amet doloremque, quam expedita laboriosam voluptas laborum ipsam aliquid sit saepe hic suscipit quidem illum molestiae nisi soluta.
Eveniet natus autem vitae, quasi praesentium pariatur nulla dolorem repellat? Quidem eos eum consectetur eaque mollitia laboriosam vitae libero fugit perspiciatis debitis officiis beatae, commodi odio id reprehenderit tenetur tempora.
Deserunt assumenda debitis, ullam mollitia molestias neque iste obcaecati commodi, vitae quasi laborum aperiam libero itaque eveniet eaque nihil explicabo impedit maxime, ducimus dolores. Rerum voluptate praesentium doloremque dolor autem!
Vitae eius adipisci quisquam, aliquid nemo nostrum inventore rerum molestiae iure vel officia, delectus reiciendis autem dolore, enim earum. Doloremque autem vero amet enim, possimus animi temporibus consequatur aperiam cum.
Fugit aperiam minus expedita voluptates dolor! Quia nihil ducimus dolores error aliquid totam eos alias non, cupiditate tenetur officia necessitatibus odio distinctio sequi quas nostrum, esse dolore vero consectetur earum.
Sunt ratione id totam, itaque doloremque, consectetur pariatur, quisquam deleniti expedita asperiores molestias perspiciatis eius. Rem ratione sapiente rerum eum accusamus maxime quos. Corporis, autem ipsum. At velit sunt tempora!
Animi blanditiis officia, reiciendis hic totam amet ea repellendus voluptatem quae eos! Sunt debitis pariatur perferendis harum consequatur natus cumque sapiente minus ut quae, quo reprehenderit ratione exercitationem omnis tenetur!
Nesciunt enim mollitia non rerum similique rem nisi ab corrupti, ea commodi quas! Commodi repudiandae alias reprehenderit deleniti magni repellendus voluptatibus quod aperiam, veniam laborum distinctio molestiae consequuntur corporis soluta.
Possimus dolore dolores neque distinctio obcaecati praesentium, perspiciatis saepe autem mollitia repellendus quos nulla aliquam alias temporibus, illum deleniti nesciunt, veritatis et odio. Tempore aspernatur odit, explicabo nulla totam cupiditate.
</div>
<div class="secondary">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Sequi doloremque tempore dicta nisi vel omnis, rem repudiandae explicabo provident voluptatibus ut magnam atque natus cumque necessitatibus quisquam. Nesciunt, minus maiores.</div>
<div class="secondary">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Consequuntur voluptas vel blanditiis corrupti earum, ipsa quasi corporis dignissimos doloribus sunt, laudantium exercitationem natus, sit accusamus facere quisquam suscipit reiciendis mollitia.</div>
<div class="secondary">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab porro, animi a, molestiae expedita veritatis recusandae repudiandae eligendi id deserunt tempore tenetur unde iste, earum sed nulla quis. Fuga, minus!</div>
</div>
I would highly appreciate any help or pointers you could offer. Thanks.
position:absolute can do the job here:
.grid {
display: grid;
gap: 1rem;
padding: 2rem;
grid-template-columns: repeat(2, 1fr);
grid-auto-rows:1fr; /* all row equal in height */
position:relative;
}
.primary {
top:2rem;
left:2rem;
bottom:2rem;
width:calc(50% - 2.5rem); /* take half the width (the first 1fr) */
position: absolute;
max-height: 300px;
background: #cecece;
overflow: hidden;
}
.primary:after {
content: "";
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: linear-gradient(transparent 200px, #fff);
}
.secondary {
grid-column-start: 2;
background: #aaa;
}
<div class="grid">
<div class="primary">
Lorem ipsum, dolor sit amet consectetur adipisicing elit. A illo nisi, sint odio repellat id enim totam. Aliquid nobis ducimus veniam totam eos et reiciendis porro illum sequi distinctio? Aliquam.
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Necessitatibus nulla amet perferendis iure veniam? Obcaecati molestiae laborum similique voluptatibus vel libero? Molestias deserunt nemo et consequuntur quam, saepe quo ratione?
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nostrum ut aperiam molestiae cumque nam reprehenderit repellat, quas omnis, delectus possimus id. Enim delectus quasi et cumque quas, temporibus odio alias?
Sequi ullam nostrum nesciunt. Sed distinctio illo eos odit repellendus eum incidunt ex libero mollitia rerum, veritatis cumque pariatur sapiente aliquid autem maiores quia itaque voluptates quidem dolore ratione doloremque!
Ea, illum quibusdam dolores enim ex laborum voluptate repellendus nostrum dicta magnam est temporibus ipsa quisquam aut placeat cupiditate animi earum optio maiores. Eos voluptatibus ad, provident optio eligendi numquam.
Aliquam, consectetur iste eveniet ipsam iusto pariatur exercitationem, incidunt perspiciatis nostrum repudiandae, dignissimos sint quo odit! Hic unde tempore veniam temporibus dolorem totam! Velit at in, distinctio accusamus quasi minima.
Officiis fuga natus assumenda ipsa quaerat, voluptatem rerum voluptas, dicta minus odit, sit earum nobis! Recusandae labore minus rerum modi minima est totam deleniti, eligendi sint quasi adipisci at iure?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias suscipit dignissimos porro nihil commodi et libero, mollitia ipsa. Officia quidem delectus nemo magni doloribus facilis iste rerum cum eum soluta!
Omnis laboriosam illo nisi! Unde tempora exercitationem culpa, architecto dignissimos eum ratione amet doloremque, quam expedita laboriosam voluptas laborum ipsam aliquid sit saepe hic suscipit quidem illum molestiae nisi soluta.
Eveniet natus autem vitae, quasi praesentium pariatur nulla dolorem repellat? Quidem eos eum consectetur eaque mollitia laboriosam vitae libero fugit perspiciatis debitis officiis beatae, commodi odio id reprehenderit tenetur tempora.
Deserunt assumenda debitis, ullam mollitia molestias neque iste obcaecati commodi, vitae quasi laborum aperiam libero itaque eveniet eaque nihil explicabo impedit maxime, ducimus dolores. Rerum voluptate praesentium doloremque dolor autem!
Vitae eius adipisci quisquam, aliquid nemo nostrum inventore rerum molestiae iure vel officia, delectus reiciendis autem dolore, enim earum. Doloremque autem vero amet enim, possimus animi temporibus consequatur aperiam cum.
Fugit aperiam minus expedita voluptates dolor! Quia nihil ducimus dolores error aliquid totam eos alias non, cupiditate tenetur officia necessitatibus odio distinctio sequi quas nostrum, esse dolore vero consectetur earum.
Sunt ratione id totam, itaque doloremque, consectetur pariatur, quisquam deleniti expedita asperiores molestias perspiciatis eius. Rem ratione sapiente rerum eum accusamus maxime quos. Corporis, autem ipsum. At velit sunt tempora!
Animi blanditiis officia, reiciendis hic totam amet ea repellendus voluptatem quae eos! Sunt debitis pariatur perferendis harum consequatur natus cumque sapiente minus ut quae, quo reprehenderit ratione exercitationem omnis tenetur!
Nesciunt enim mollitia non rerum similique rem nisi ab corrupti, ea commodi quas! Commodi repudiandae alias reprehenderit deleniti magni repellendus voluptatibus quod aperiam, veniam laborum distinctio molestiae consequuntur corporis soluta.
Possimus dolore dolores neque distinctio obcaecati praesentium, perspiciatis saepe autem mollitia repellendus quos nulla aliquam alias temporibus, illum deleniti nesciunt, veritatis et odio. Tempore aspernatur odit, explicabo nulla totam cupiditate.
</div>
<div class="secondary">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Sequi doloremque tempore dicta nisi vel omnis, rem repudiandae explicabo provident voluptatibus ut magnam atque natus cumque necessitatibus quisquam. Nesciunt, minus maiores.</div>
<div class="secondary">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Consequuntur voluptas vel blanditiis corrupti earum, ipsa quasi corporis dignissimos doloribus sunt, laudantium exercitationem natus, sit accusamus facere quisquam suscipit reiciendis mollitia.</div>
<div class="secondary">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab porro, animi a, molestiae expedita veritatis recusandae repudiandae eligendi id deserunt tempore tenetur unde iste, earum sed nulla quis. Fuga, minus!</div>
</div>
<div class="grid">
<div class="primary">
Lorem ipsum, dolor sit amet consectetur adipisicing elit. A illo nisi, sint odio repellat id enim totam. Aliquid nobis ducimus veniam totam eos et reiciendis porro illum sequi distinctio? Aliquam.
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Necessitatibus nulla amet perferendis iure veniam? Obcaecati molestiae laborum similique voluptatibus vel libero? Molestias deserunt nemo et consequuntur quam, saepe quo ratione?
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nostrum ut aperiam molestiae cumque nam reprehenderit repellat, quas omnis, delectus possimus id. Enim delectus quasi et cumque quas, temporibus odio alias?
Sequi ullam nostrum nesciunt. Sed distinctio illo eos odit repellendus eum incidunt ex libero mollitia rerum, veritatis cumque pariatur sapiente aliquid autem maiores quia itaque voluptates quidem dolore ratione doloremque!
Ea, illum quibusdam dolores enim ex laborum voluptate repellendus nostrum dicta magnam est temporibus ipsa quisquam aut placeat cupiditate animi earum optio maiores. Eos voluptatibus ad, provident optio eligendi numquam.
Aliquam, consectetur iste eveniet ipsam iusto pariatur exercitationem, incidunt perspiciatis nostrum repudiandae, dignissimos sint quo odit! Hic unde tempore veniam temporibus dolorem totam! Velit at in, distinctio accusamus quasi minima.
Officiis fuga natus assumenda ipsa quaerat, voluptatem rerum voluptas, dicta minus odit, sit earum nobis! Recusandae labore minus rerum modi minima est totam deleniti, eligendi sint quasi adipisci at iure?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias suscipit dignissimos porro nihil commodi et libero, mollitia ipsa. Officia quidem delectus nemo magni doloribus facilis iste rerum cum eum soluta!
Omnis laboriosam illo nisi! Unde tempora exercitationem culpa, architecto dignissimos eum ratione amet doloremque, quam expedita laboriosam voluptas laborum ipsam aliquid sit saepe hic suscipit quidem illum molestiae nisi soluta.
Eveniet natus autem vitae, quasi praesentium pariatur nulla dolorem repellat? Quidem eos eum consectetur eaque mollitia laboriosam vitae libero fugit perspiciatis debitis officiis beatae, commodi odio id reprehenderit tenetur tempora.
Deserunt assumenda debitis, ullam mollitia molestias neque iste obcaecati commodi, vitae quasi laborum aperiam libero itaque eveniet eaque nihil explicabo impedit maxime, ducimus dolores. Rerum voluptate praesentium doloremque dolor autem!
Vitae eius adipisci quisquam, aliquid nemo nostrum inventore rerum molestiae iure vel officia, delectus reiciendis autem dolore, enim earum. Doloremque autem vero amet enim, possimus animi temporibus consequatur aperiam cum.
Fugit aperiam minus expedita voluptates dolor! Quia nihil ducimus dolores error aliquid totam eos alias non, cupiditate tenetur officia necessitatibus odio distinctio sequi quas nostrum, esse dolore vero consectetur earum.
Sunt ratione id totam, itaque doloremque, consectetur pariatur, quisquam deleniti expedita asperiores molestias perspiciatis eius. Rem ratione sapiente rerum eum accusamus maxime quos. Corporis, autem ipsum. At velit sunt tempora!
Animi blanditiis officia, reiciendis hic totam amet ea repellendus voluptatem quae eos! Sunt debitis pariatur perferendis harum consequatur natus cumque sapiente minus ut quae, quo reprehenderit ratione exercitationem omnis tenetur!
Nesciunt enim mollitia non rerum similique rem nisi ab corrupti, ea commodi quas! Commodi repudiandae alias reprehenderit deleniti magni repellendus voluptatibus quod aperiam, veniam laborum distinctio molestiae consequuntur corporis soluta.
Possimus dolore dolores neque distinctio obcaecati praesentium, perspiciatis saepe autem mollitia repellendus quos nulla aliquam alias temporibus, illum deleniti nesciunt, veritatis et odio. Tempore aspernatur odit, explicabo nulla totam cupiditate.
</div>
<div class="secondary">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Sequi doloremque tempore dicta nisi vel omnis, rem repudiandae explicabo provident voluptatibus ut magnam atque natus cumque necessitatibus quisquam. Nesciunt, minus maiores.</div>
</div>
This appears to work for me using your snippet if I simply remove the grid-template-rows and increase the height of that container:
.grid {
display: grid;
column-gap: 1rem;
padding: 2rem;
grid-template-columns: repeat(2, 1fr);
}
.primary {
grid-row: 1 / -1;
position: relative;
max-height: 500px;
background: #cecece;
overflow: hidden;
}
.primary:after {
content: "";
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: linear-gradient(transparent 200px, #fff);
}
.secondary {
grid-column-start: 2;
background: #aaa;
margin-block-end: 1rem;
}
.secondary:last-child {
margin-block-end: 0;
}
<div class="grid">
<div class="primary">
Lorem ipsum, dolor sit amet consectetur adipisicing elit. A illo nisi, sint odio repellat id enim totam. Aliquid nobis ducimus veniam totam eos et reiciendis porro illum sequi distinctio? Aliquam.
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Necessitatibus nulla amet perferendis iure veniam? Obcaecati molestiae laborum similique voluptatibus vel libero? Molestias deserunt nemo et consequuntur quam, saepe quo ratione?
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nostrum ut aperiam molestiae cumque nam reprehenderit repellat, quas omnis, delectus possimus id. Enim delectus quasi et cumque quas, temporibus odio alias?
Sequi ullam nostrum nesciunt. Sed distinctio illo eos odit repellendus eum incidunt ex libero mollitia rerum, veritatis cumque pariatur sapiente aliquid autem maiores quia itaque voluptates quidem dolore ratione doloremque!
Ea, illum quibusdam dolores enim ex laborum voluptate repellendus nostrum dicta magnam est temporibus ipsa quisquam aut placeat cupiditate animi earum optio maiores. Eos voluptatibus ad, provident optio eligendi numquam.
Aliquam, consectetur iste eveniet ipsam iusto pariatur exercitationem, incidunt perspiciatis nostrum repudiandae, dignissimos sint quo odit! Hic unde tempore veniam temporibus dolorem totam! Velit at in, distinctio accusamus quasi minima.
Officiis fuga natus assumenda ipsa quaerat, voluptatem rerum voluptas, dicta minus odit, sit earum nobis! Recusandae labore minus rerum modi minima est totam deleniti, eligendi sint quasi adipisci at iure?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias suscipit dignissimos porro nihil commodi et libero, mollitia ipsa. Officia quidem delectus nemo magni doloribus facilis iste rerum cum eum soluta!
Omnis laboriosam illo nisi! Unde tempora exercitationem culpa, architecto dignissimos eum ratione amet doloremque, quam expedita laboriosam voluptas laborum ipsam aliquid sit saepe hic suscipit quidem illum molestiae nisi soluta.
Eveniet natus autem vitae, quasi praesentium pariatur nulla dolorem repellat? Quidem eos eum consectetur eaque mollitia laboriosam vitae libero fugit perspiciatis debitis officiis beatae, commodi odio id reprehenderit tenetur tempora.
Deserunt assumenda debitis, ullam mollitia molestias neque iste obcaecati commodi, vitae quasi laborum aperiam libero itaque eveniet eaque nihil explicabo impedit maxime, ducimus dolores. Rerum voluptate praesentium doloremque dolor autem!
Vitae eius adipisci quisquam, aliquid nemo nostrum inventore rerum molestiae iure vel officia, delectus reiciendis autem dolore, enim earum. Doloremque autem vero amet enim, possimus animi temporibus consequatur aperiam cum.
Fugit aperiam minus expedita voluptates dolor! Quia nihil ducimus dolores error aliquid totam eos alias non, cupiditate tenetur officia necessitatibus odio distinctio sequi quas nostrum, esse dolore vero consectetur earum.
Sunt ratione id totam, itaque doloremque, consectetur pariatur, quisquam deleniti expedita asperiores molestias perspiciatis eius. Rem ratione sapiente rerum eum accusamus maxime quos. Corporis, autem ipsum. At velit sunt tempora!
Animi blanditiis officia, reiciendis hic totam amet ea repellendus voluptatem quae eos! Sunt debitis pariatur perferendis harum consequatur natus cumque sapiente minus ut quae, quo reprehenderit ratione exercitationem omnis tenetur!
Nesciunt enim mollitia non rerum similique rem nisi ab corrupti, ea commodi quas! Commodi repudiandae alias reprehenderit deleniti magni repellendus voluptatibus quod aperiam, veniam laborum distinctio molestiae consequuntur corporis soluta.
Possimus dolore dolores neque distinctio obcaecati praesentium, perspiciatis saepe autem mollitia repellendus quos nulla aliquam alias temporibus, illum deleniti nesciunt, veritatis et odio. Tempore aspernatur odit, explicabo nulla totam cupiditate.
</div>
<div class="secondary">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Sequi doloremque tempore dicta nisi vel omnis, rem repudiandae explicabo provident voluptatibus ut magnam atque natus cumque necessitatibus quisquam. Nesciunt, minus maiores.</div>
<div class="secondary">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Consequuntur voluptas vel blanditiis corrupti earum, ipsa quasi corporis dignissimos doloribus sunt, laudantium exercitationem natus, sit accusamus facere quisquam suscipit reiciendis mollitia.</div>
<div class="secondary">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab porro, animi a, molestiae expedita veritatis recusandae repudiandae eligendi id deserunt tempore tenetur unde iste, earum sed nulla quis. Fuga, minus!</div>
</div>
Here it is full height, if you didn't want to fade out the content:
.grid {
display: grid;
column-gap: 1rem;
padding: 2rem;
grid-template-columns: repeat(2, 1fr);
}
.primary {
grid-row: 1 / -1;
position: relative;
background: #cecece;
overflow: hidden;
}
.secondary {
grid-column-start: 2;
background: #aaa;
margin-block-end: 1rem;
}
.secondary:last-child {
margin-block-end: 0;
}
<div class="grid">
<div class="primary">
Lorem ipsum, dolor sit amet consectetur adipisicing elit. A illo nisi, sint odio repellat id enim totam. Aliquid nobis ducimus veniam totam eos et reiciendis porro illum sequi distinctio? Aliquam.
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Necessitatibus nulla amet perferendis iure veniam? Obcaecati molestiae laborum similique voluptatibus vel libero? Molestias deserunt nemo et consequuntur quam, saepe quo ratione?
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nostrum ut aperiam molestiae cumque nam reprehenderit repellat, quas omnis, delectus possimus id. Enim delectus quasi et cumque quas, temporibus odio alias?
Sequi ullam nostrum nesciunt. Sed distinctio illo eos odit repellendus eum incidunt ex libero mollitia rerum, veritatis cumque pariatur sapiente aliquid autem maiores quia itaque voluptates quidem dolore ratione doloremque!
Ea, illum quibusdam dolores enim ex laborum voluptate repellendus nostrum dicta magnam est temporibus ipsa quisquam aut placeat cupiditate animi earum optio maiores. Eos voluptatibus ad, provident optio eligendi numquam.
Aliquam, consectetur iste eveniet ipsam iusto pariatur exercitationem, incidunt perspiciatis nostrum repudiandae, dignissimos sint quo odit! Hic unde tempore veniam temporibus dolorem totam! Velit at in, distinctio accusamus quasi minima.
Officiis fuga natus assumenda ipsa quaerat, voluptatem rerum voluptas, dicta minus odit, sit earum nobis! Recusandae labore minus rerum modi minima est totam deleniti, eligendi sint quasi adipisci at iure?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias suscipit dignissimos porro nihil commodi et libero, mollitia ipsa. Officia quidem delectus nemo magni doloribus facilis iste rerum cum eum soluta!
Omnis laboriosam illo nisi! Unde tempora exercitationem culpa, architecto dignissimos eum ratione amet doloremque, quam expedita laboriosam voluptas laborum ipsam aliquid sit saepe hic suscipit quidem illum molestiae nisi soluta.
Eveniet natus autem vitae, quasi praesentium pariatur nulla dolorem repellat? Quidem eos eum consectetur eaque mollitia laboriosam vitae libero fugit perspiciatis debitis officiis beatae, commodi odio id reprehenderit tenetur tempora.
Deserunt assumenda debitis, ullam mollitia molestias neque iste obcaecati commodi, vitae quasi laborum aperiam libero itaque eveniet eaque nihil explicabo impedit maxime, ducimus dolores. Rerum voluptate praesentium doloremque dolor autem!
Vitae eius adipisci quisquam, aliquid nemo nostrum inventore rerum molestiae iure vel officia, delectus reiciendis autem dolore, enim earum. Doloremque autem vero amet enim, possimus animi temporibus consequatur aperiam cum.
Fugit aperiam minus expedita voluptates dolor! Quia nihil ducimus dolores error aliquid totam eos alias non, cupiditate tenetur officia necessitatibus odio distinctio sequi quas nostrum, esse dolore vero consectetur earum.
Sunt ratione id totam, itaque doloremque, consectetur pariatur, quisquam deleniti expedita asperiores molestias perspiciatis eius. Rem ratione sapiente rerum eum accusamus maxime quos. Corporis, autem ipsum. At velit sunt tempora!
Animi blanditiis officia, reiciendis hic totam amet ea repellendus voluptatem quae eos! Sunt debitis pariatur perferendis harum consequatur natus cumque sapiente minus ut quae, quo reprehenderit ratione exercitationem omnis tenetur!
Nesciunt enim mollitia non rerum similique rem nisi ab corrupti, ea commodi quas! Commodi repudiandae alias reprehenderit deleniti magni repellendus voluptatibus quod aperiam, veniam laborum distinctio molestiae consequuntur corporis soluta.
Possimus dolore dolores neque distinctio obcaecati praesentium, perspiciatis saepe autem mollitia repellendus quos nulla aliquam alias temporibus, illum deleniti nesciunt, veritatis et odio. Tempore aspernatur odit, explicabo nulla totam cupiditate.
</div>
<div class="secondary">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Sequi doloremque tempore dicta nisi vel omnis, rem repudiandae explicabo provident voluptatibus ut magnam atque natus cumque necessitatibus quisquam. Nesciunt, minus maiores.</div>
<div class="secondary">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Consequuntur voluptas vel blanditiis corrupti earum, ipsa quasi corporis dignissimos doloribus sunt, laudantium exercitationem natus, sit accusamus facere quisquam suscipit reiciendis mollitia.</div>
<div class="secondary">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab porro, animi a, molestiae expedita veritatis recusandae repudiandae eligendi id deserunt tempore tenetur unde iste, earum sed nulla quis. Fuga, minus!</div>
</div>
Hello I've just started learning and I'm trying to build a layout on HTML5 but I don't exactly understand how can I put the paragraph to the place I want. For example, I'm floating some paragraphs to the left and then floating some other paragraphs to the right but it turns out like this:
I want purple and green paragraphs to be on the left and the rest to be on the right.
.hersey {
width: 1140px;
margin-left: auto;
margin-right: auto;
}
.ilk {
background-color: darkmagenta;
float: left;
}
.iki {
background-color: green;
float: left;
}
.thr {
background-color: hotpink;
float: right;
}
.author {
background-color: yellow;
}
<div class="hersey">
<div class="ilk">
<h1>Document</h1>
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Suscipit, consequuntur? Suscipit qui, molestiae beatae non eaque id, vitae nesciunt in eveniet voluptatibus natus molestias quis.</p>
<p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Officiis adipisci possimus illum quidem nulla, dolores omnis est quibusdam commodi, qui hic expedita blanditiis repellat reprehenderit doloribus iure suscipit, molestias placeat et rem dignissimos
cum sint! Consequatur dignissimos laboriosam beatae dolor ut a, necessitatibus corporis quidem quas? Dicta excepturi dolore ipsam dignissimos, amet blanditiis libero illum, voluptate vero temporibus laudantium fuga illo aperiam exercitationem! Voluptatum,
aliquid vero cupiditate, eveniet quasi velit nisi architecto quis eaque magni, iure adipisci sint perferendis similique!</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi laborum dignissimos corporis omnis earum hic illum sint. Qui sequi dolor hic eos ad labore dolorum repellendus recusandae, officiis excepturi in laudantium ullam ratione neque ipsam ea
minima vero numquam tempore perferendis. Aliquam asperiores temporibus quaerat molestiae id adipisci. Officiis impedit, explicabo nam eligendi possimus cumque ipsa nobis omnis, rem, natus reprehenderit minus in veritatis qui? Temporibus iure, doloremque
reprehenderit, voluptate tenetur assumenda quas, incidunt repudiandae minus recusandae ratione minima. Cum commodi itaque voluptatibus odit quisquam minus obcaecati consequuntur ex consequatur?</p>
</div>
<div class="iki">
<h2>Other Documents For U</h2>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Magni, sed? Est quaerat corrupti aspernatur eos quae sequi magni esse labore magnam, impedit neque cupiditate incidunt asperiores. Facere quas temporibus quos numquam maxime eius aliquid alias
earum! Necessitatibus illo aut molestiae id repudiandae laboriosam, totam ipsa, ut debitis qui libero odit suscipit dolorem, porro perspiciatis nemo veritatis similique reiciendis ex? Dolore qui, eos, quisquam voluptas voluptates earum suscipit
quas sequi ad et iusto quasi corrupti ipsam labore non natus, odit architecto aperiam a tempora quidem quae obcaecati consequuntur! Est, incidunt obcaecati? Corrupti, fugiat nostrum nemo recusandae rem tempora vel reprehenderit, itaque natus consequatur
at possimus eius dolorum magnam cum, impedit mollitia maxime delectus repudiandae qui. Quae natus quibusdam illum aliquid cum.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Sapiente alias corrupti autem? Nostrum commodi reprehenderit laudantium quam dolores deserunt officia obcaecati error quo atque, sunt inventore, iusto accusantium repellendus ipsam animi aliquam.
Accusamus eum, reprehenderit harum corrupti magni, cumque vitae reiciendis quod, enim consequatur ipsum molestias totam quis! Non, earum necessitatibus fuga velit nostrum eius fugiat minima vero eos, voluptatum praesentium vel iure dolorum cupiditate
libero veritatis quo illum tempore! Qui nesciunt necessitatibus dignissimos dolorem ea dolor neque nam tempora officiis numquam dolorum aliquam aspernatur eum deserunt sed alias error eos, voluptatem odit nemo, possimus incidunt repellendus sint
placeat. Fugit sequi provident, ipsam possimus inventore fuga facilis tempore, illum quis!</p>
</div>
<div class="thr">
<p>Lorem ipsum dolor sit amet.</p>
</div>
<div class="author">
<h4>Writer</h4>
<p>Babark17</p>
<p><img src="me2.jpg" alt=""></p>
</div>
Appreciate your help, I know it's a beginners question but I really couldn't understand how to do it.
I think you're looking for the text-align propriety in CSS.
Simply, text-align: right; puts an element's contents into the right, don't use float: right because it doesn't do that for the contents.
Here's your code:
.hersey {
width: 1140px;
margin-left: auto;
margin-right: auto;
}
.ilk {
background-color: darkmagenta;
text-align: left;
}
.iki {
background-color: green;
text-align: left;
}
.thr {
background-color: hotpink;
text-align: right;
}
.author {
background-color: yellow;
width: 100%;
text-align: right;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="styl.css">
</head>
<body>
<div class="hersey">
<div class="ilk">
<h1>Document</h1>
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Suscipit, consequuntur? Suscipit qui, molestiae beatae non eaque id, vitae nesciunt in eveniet voluptatibus natus molestias quis.</p>
<p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Officiis adipisci possimus illum quidem nulla, dolores omnis est quibusdam commodi, qui hic expedita blanditiis repellat reprehenderit doloribus iure suscipit, molestias placeat et rem dignissimos cum sint! Consequatur dignissimos laboriosam beatae dolor ut a, necessitatibus corporis quidem quas? Dicta excepturi dolore ipsam dignissimos, amet blanditiis libero illum, voluptate vero temporibus laudantium fuga illo aperiam exercitationem! Voluptatum, aliquid vero cupiditate, eveniet quasi velit nisi architecto quis eaque magni, iure adipisci sint perferendis similique!</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi laborum dignissimos corporis omnis earum hic illum sint. Qui sequi dolor hic eos ad labore dolorum repellendus recusandae, officiis excepturi in laudantium ullam ratione neque ipsam ea minima vero numquam tempore perferendis. Aliquam asperiores temporibus quaerat molestiae id adipisci. Officiis impedit, explicabo nam eligendi possimus cumque ipsa nobis omnis, rem, natus reprehenderit minus in veritatis qui? Temporibus iure, doloremque reprehenderit, voluptate tenetur assumenda quas, incidunt repudiandae minus recusandae ratione minima. Cum commodi itaque voluptatibus odit quisquam minus obcaecati consequuntur ex consequatur?</p>
</div>
<div class="iki">
<h2>Other Documents For U</h2>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Magni, sed? Est quaerat corrupti aspernatur eos quae sequi magni esse labore magnam, impedit neque cupiditate incidunt asperiores. Facere quas temporibus quos numquam maxime eius aliquid alias earum! Necessitatibus illo aut molestiae id repudiandae laboriosam, totam ipsa, ut debitis qui libero odit suscipit dolorem, porro perspiciatis nemo veritatis similique reiciendis ex? Dolore qui, eos, quisquam voluptas voluptates earum suscipit quas sequi ad et iusto quasi corrupti ipsam labore non natus, odit architecto aperiam a tempora quidem quae obcaecati consequuntur! Est, incidunt obcaecati? Corrupti, fugiat nostrum nemo recusandae rem tempora vel reprehenderit, itaque natus consequatur at possimus eius dolorum magnam cum, impedit mollitia maxime delectus repudiandae qui. Quae natus quibusdam illum aliquid cum.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Sapiente alias corrupti autem? Nostrum commodi reprehenderit laudantium quam dolores deserunt officia obcaecati error quo atque, sunt inventore, iusto accusantium repellendus ipsam animi aliquam. Accusamus eum, reprehenderit harum corrupti magni, cumque vitae reiciendis quod, enim consequatur ipsum molestias totam quis! Non, earum necessitatibus fuga velit nostrum eius fugiat minima vero eos, voluptatum praesentium vel iure dolorum cupiditate libero veritatis quo illum tempore! Qui nesciunt necessitatibus dignissimos dolorem ea dolor neque nam tempora officiis numquam dolorum aliquam aspernatur eum deserunt sed alias error eos, voluptatem odit nemo, possimus incidunt repellendus sint placeat. Fugit sequi provident, ipsam possimus inventore fuga facilis tempore, illum quis!</p>
</div>
<div class="thr">
<p>Lorem ipsum dolor sit amet.</p>
</div>
<div class="author">
<h4>Writer</h4>
<p>Babark17</p>
<img src="me2.jpg" alt="">
</div>
</div>
</body>
</html>
A living demo: https://codepen.io/marchmello/pen/zYvxbdO
I want to make a page something similar to this one. I want all the content on this page has margins to the most left side and most right side of the page. What should I put into my code?
The code I have now will make the paragraph fit the width of the webpage which I don't like.
You should create a global container for your content, give it a max-width and then set its margins to 0 auto.
You can try looking at the following snippet in full screen; since I'm telling the .container class to have a maximum width of 600px, the left and right margins will automatically distribute the available space that remains to center the content with margin: 0 auto
.container {
max-width: 600px;
margin: 0 auto;
}
<div class="container">
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem quo a repellat consequuntur sapiente distinctio, voluptate hic facilis veritatis impedit sed sunt delectus blanditiis soluta tempore cupiditate fugiat ut excepturi accusantium harum neque
eius ex! Ipsum, ratione. Natus, veritatis et vitae, sint explicabo cum iusto, provident laudantium culpa consectetur corrupti exercitationem deserunt hic error quibusdam. Similique officia tenetur suscipit voluptatum hic maiores, eum possimus, aspernatur
fugit ad porro sequi? Assumenda impedit maiores, consectetur beatae expedita in libero! Officia modi officiis harum ratione consectetur, doloribus molestiae, quam animi possimus similique, recusandae a deserunt tenetur aliquam fuga! Modi reprehenderit
placeat natus a laborum nihil voluptatum facere, alias aliquid dolor velit minus libero, corrupti fuga tenetur sapiente est, quo explicabo consequatur? Repellat, adipisci ipsa, saepe praesentium odio, consequatur quia temporibus nemo tempora illo
suscipit beatae. Voluptates corporis, ipsa officiis, ex accusamus assumenda dolor debitis perferendis voluptas quo quisquam tenetur molestias pariatur doloremque dolorem.
</p>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem quo a repellat consequuntur sapiente distinctio, voluptate hic facilis veritatis impedit sed sunt delectus blanditiis soluta tempore cupiditate fugiat ut excepturi accusantium harum neque
eius ex! Ipsum, ratione. Natus, veritatis et vitae, sint explicabo cum iusto, provident laudantium culpa consectetur corrupti exercitationem deserunt hic error quibusdam. Similique officia tenetur suscipit voluptatum hic maiores, eum possimus, aspernatur
fugit ad porro sequi? Assumenda impedit maiores, consectetur beatae expedita in libero! Officia modi officiis harum ratione consectetur, doloribus molestiae, quam animi possimus similique, recusandae a deserunt tenetur aliquam fuga! Modi reprehenderit
placeat natus a laborum nihil voluptatum facere, alias aliquid dolor velit minus libero, corrupti fuga tenetur sapiente est, quo explicabo consequatur? Repellat, adipisci ipsa, saepe praesentium odio, consequatur quia temporibus nemo tempora illo
suscipit beatae. Voluptates corporis, ipsa officiis, ex accusamus assumenda dolor debitis perferendis voluptas quo quisquam tenetur molestias pariatur doloremque dolorem.
</p>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem quo a repellat consequuntur sapiente distinctio, voluptate hic facilis veritatis impedit sed sunt delectus blanditiis soluta tempore cupiditate fugiat ut excepturi accusantium harum neque
eius ex! Ipsum, ratione. Natus, veritatis et vitae, sint explicabo cum iusto, provident laudantium culpa consectetur corrupti exercitationem deserunt hic error quibusdam. Similique officia tenetur suscipit voluptatum hic maiores, eum possimus, aspernatur
fugit ad porro sequi? Assumenda impedit maiores, consectetur beatae expedita in libero! Officia modi officiis harum ratione consectetur, doloribus molestiae, quam animi possimus similique, recusandae a deserunt tenetur aliquam fuga! Modi reprehenderit
placeat natus a laborum nihil voluptatum facere, alias aliquid dolor velit minus libero, corrupti fuga tenetur sapiente est, quo explicabo consequatur? Repellat, adipisci ipsa, saepe praesentium odio, consequatur quia temporibus nemo tempora illo
suscipit beatae. Voluptates corporis, ipsa officiis, ex accusamus assumenda dolor debitis perferendis voluptas quo quisquam tenetur molestias pariatur doloremque dolorem.
</p>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Autem quo a repellat consequuntur sapiente distinctio, voluptate hic facilis veritatis impedit sed sunt delectus blanditiis soluta tempore cupiditate fugiat ut excepturi accusantium harum neque
eius ex! Ipsum, ratione. Natus, veritatis et vitae, sint explicabo cum iusto, provident laudantium culpa consectetur corrupti exercitationem deserunt hic error quibusdam. Similique officia tenetur suscipit voluptatum hic maiores, eum possimus, aspernatur
fugit ad porro sequi? Assumenda impedit maiores, consectetur beatae expedita in libero! Officia modi officiis harum ratione consectetur, doloribus molestiae, quam animi possimus similique, recusandae a deserunt tenetur aliquam fuga! Modi reprehenderit
placeat natus a laborum nihil voluptatum facere, alias aliquid dolor velit minus libero, corrupti fuga tenetur sapiente est, quo explicabo consequatur? Repellat, adipisci ipsa, saepe praesentium odio, consequatur quia temporibus nemo tempora illo
suscipit beatae. Voluptates corporis, ipsa officiis, ex accusamus assumenda dolor debitis perferendis voluptas quo quisquam tenetur molestias pariatur doloremque dolorem.
</p>
</div>