Simple HTML/CSS alignment resize - css

The following code is working fine on every navigator and a screen resolution above 600px width. But, on small screens, my image is getting under the text when I'm resizing the window or viewing it on small smartphone screen...
<div id="messagedisp">
<div id="messagedisp-left">
<img src="http://lorempixel.com/400/200" width="86" height="185" id="messagedisp-inner">
</div>
<div id="messagedisp-right"><p>Long paragraph text about 500 chars</p>
</div>
</div>
You can exactly simulate the problem by resizing the width of your screen by hand. Here you have: https://jsfiddle.net/ch7fuc8o/1/
Do you have any idea how to fix this with the more "simple" way?

I have a couple of suggestions to make the code better and easier to mentain:
use semantics tags
use flexbox for organizing instead of floating.
use media query to adapt to phone screen
/* default appearance */
article > * {
padding: 20px;
}
/* Flexbox */
article {
display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
flex-direction: column;
}
#media screen and (min-width: 600px) {
article {
-webkit-flex-direction: row;
flex-direction: row;
}
article > * {
-webkit-flex: 1;
flex: 1;
}
article > div {
-webkit-flex: 3;
flex: 3;
}
}
#media screen and (max-width: 600px) {
article {
-webkit-flex-direction: column;
flex-direction: column;
}
}
<article>
<img src="http://lorempixel.com/400/200" width="86" height="185" />
<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dicta sint, quis animi! Eum illum mollitia odit at cupiditate quas qui animi, voluptas harum maxime? Architecto vitae sint id libero! Minima harum facere, corporis consequuntur ipsa dicta neque
incidunt illo ad inventore iusto, soluta, enim blanditiis tempora ratione? Deleniti nihil, aspernatur facilis fuga quasi ipsam earum animi optio asperiores ut temporibus explicabo nisi maxime dicta illo assumenda? Accusantium reiciendis quasi modi!
Qui voluptas, voluptatem aut reprehenderit magni cupiditate omnis odit? Blanditiis, suscipit, odit? Rerum distinctio quos veritatis necessitatibus recusandae fugit dolore, quia, incidunt, odit labore laborum accusamus aliquid similique voluptas libero
ratione ullam doloremque quaerat porro rem, blanditiis fugiat est. Aliquid dolorum fuga praesentium expedita odit, fugit ipsam ullam eligendi impedit, inventore qui veritatis odio cum sapiente at dolorem ex, excepturi. Tempore eum tenetur illum rerum
dolore aperiam id ex assumenda eligendi ad nulla repellendus expedita officia provident fuga ipsa quibusdam, nesciunt sequi delectus, adipisci veritatis suscipit qui. Atque a aliquam magni culpa eum vero autem distinctio provident, omnis exercitationem?
Saepe dolor voluptas voluptatum iusto quidem nostrum, rerum incidunt beatae alias ipsum sunt non in distinctio debitis provident minima hic deserunt soluta. Architecto unde eligendi iure esse omnis ab, nam accusamus recusandae! Sapiente, dolorum corporis
debitis laudantium fuga soluta rem sunt reiciendis similique? Esse vero vel obcaecati quam asperiores doloremque odit dolores pariatur ut assumenda ullam repellat dicta, iste modi est, dolorem consequuntur, molestias vitae. Voluptatem officia, explicabo!
Sint perspiciatis ab odit maxime totam id eum ipsum assumenda suscipit! Praesentium, a, aliquid sit laudantium minus odio excepturi nobis, nihil fugiat soluta quo tenetur debitis aperiam officia facilis! Porro in, ut et omnis. Earum pariatur quae,
nulla quibusdam quidem fuga molestias, vero eius harum praesentium ratione magni culpa quia distinctio ducimus ea eos doloremque unde similique asperiores repellat, necessitatibus dolorum sunt? Quidem, aliquam. Cum corrupti eveniet laborum! Ex porro
commodi adipisci, laudantium inventore temporibus tempora quo voluptate omnis saepe ab at aliquid, incidunt deleniti optio perspiciatis obcaecati! Veniam id, nostrum obcaecati rerum harum necessitatibus! Aliquid aspernatur nam saepe dolores ipsam
voluptas reiciendis molestiae modi neque sunt, nobis, consequatur sed aliquam. Ut, tenetur dolor delectus at, sit repellendus veniam nam cumque itaque tempore facilis et atque dignissimos consectetur libero harum! Consequatur iure sequi, ratione tempora.
Totam doloremque, sequi voluptate maiores. Illo natus corporis pariatur vel cumque molestiae hic saepe illum nemo voluptatem tempore, sequi repellat impedit optio molestias eaque iure quas dolor, assumenda veritatis laborum fugit porro sed. Necessitatibus
quisquam maiores ut neque soluta harum, odit deleniti labore, culpa illum ad explicabo doloremque! Beatae culpa debitis, natus excepturi adipisci magni, iste dolor dolorem odio rerum! Id suscipit itaque accusamus incidunt, laborum blanditiis deserunt
rem totam doloribus debitis non molestiae perferendis vitae necessitatibus corporis eum quas explicabo ab odio. Fuga porro iure corporis vitae cumque in quod deleniti autem ducimus alias perspiciatis cupiditate distinctio dignissimos doloribus ipsam,
delectus quam blanditiis accusantium inventore nesciunt. Excepturi reprehenderit laborum doloremque voluptatibus. Temporibus, sed, maiores. Illo dolorum cum culpa ratione, nam amet dicta vero ut reiciendis, dolor facilis.</div>
</article>

Should make the job.
CSS
.imagecss{
max-width: 100%;
}
HTML
<div id="messagedisp">
<div id="messagedisp-left">
<img src="http://lorempixel.com/400/200" class="imagecss" id="messagedisp-inner">
</div>
<div id="messagedisp-right"><p>Long paragraph text about 500 chars</p>
</div>
</div>

Related

CSS: Scroll container horizontally instead of page? (display: grid break) [duplicate]

This question already has answers here:
Prevent content from expanding grid items
(3 answers)
Closed 12 months ago.
I'm trying to get the cyan box to scroll horizontally instead of triggering a horizontal scrollbar on the page.
It seems to break when I try using a grid layout; I had to horizontally scrolling before when I didn't use a grid.
How can I fix this? .page-wrap should fill the whole window and add vertical scrollbar as needed. Only the .boxs should scroll horizontally.
html {
overflow: hidden;
}
.page-wrap {
display: grid;
grid-template-areas:
"sidebar main"
"footer footer";
grid-template-columns: 250px 1fr;
grid-template-rows: auto 60px;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: auto;
}
.sidebar {
background-color: green;
grid-area: sidebar;
}
.footer {
background-color: red;
grid-area: footer;
}
.main {
background-color: yellow;
grid-area: main;
}
.box {
background-color: cyan;
margin: 10px;
overflow-x: scroll;
}
<div class="page-wrap">
<div class="sidebar">sidebar</div>
<div class="main">
<div class="box">
<table>
<tr>
<td>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis, modi laudantium facilis. Cum quasi dolore quam doloribus reprehenderit illum nostrum id quas ea. Nostrum adipisci dolor nulla veniam exercitationem ipsa.</td>
<td>Accusamus deserunt voluptatibus rem, aspernatur enim dolores, amet illum accusantium! Tempora, repellendus, fuga. Ex, consectetur mollitia reprehenderit qui, consequuntur ipsam maiores excepturi sapiente tempore odit repudiandae facere incidunt! Vero, beatae.</td>
<td>Et minus eaque corrupti voluptas, earum ex non similique. Officiis a dignissimos veritatis quas provident sunt? Fuga vel officia qui, numquam eos sint, totam aspernatur, commodi quis, temporibus animi excepturi!</td>
<td>Natus quaerat, sint nemo quia laudantium dolorem asperiores deserunt neque porro esse iusto reprehenderit et assumenda ipsum saepe consequuntur soluta officiis illum maiores cumque quos voluptate expedita tenetur eum autem!</td>
<td>Asperiores ducimus accusantium aliquid nemo aliquam fugiat culpa maxime repudiandae pariatur minus. Eum incidunt iste molestias officiis sunt nostrum facilis velit. Reprehenderit quis aut officia quas beatae assumenda esse asperiores.</td>
<td>Architecto, nam consequuntur odit distinctio! Suscipit fuga nam reprehenderit, nostrum modi provident iusto aperiam alias qui. Optio repudiandae reiciendis, omnis esse maiores! A blanditiis ducimus voluptate nobis exercitationem. Temporibus, vel!</td>
<td>Similique et est omnis fuga, ad earum sapiente. Nam qui est quidem. Dignissimos amet harum voluptate a, sint culpa autem et neque, natus quod cum eos laudantium molestias, dolorem optio.</td>
<td>Saepe aspernatur consequuntur sint nisi dolores nihil ab repudiandae, odio dolor, assumenda culpa corporis fugiat ullam officia quibusdam eaque enim, harum voluptatem eveniet reprehenderit natus consectetur deleniti nesciunt et! Omnis!</td>
<td>Nihil quas quod numquam ut fugiat doloremque repudiandae animi iusto. Ullam quidem ipsa dolorem quos veritatis adipisci quisquam obcaecati culpa et consequatur, aspernatur unde eligendi rerum labore ab odit asperiores.</td>
<td>Hic, aliquam, harum? Harum tempora accusantium animi ratione id perspiciatis quasi maiores iste odio quisquam, adipisci, laudantium cupiditate voluptatem mollitia soluta sunt eveniet facere quibusdam aspernatur? Suscipit obcaecati dolorum eligendi.</td>
<td>Possimus natus, dignissimos vero nesciunt cum voluptatibus reiciendis commodi maxime voluptates qui illo quia distinctio tempora perferendis fugit modi itaque, quis recusandae quisquam quos ullam alias! Voluptatum repellat mollitia incidunt.</td>
<td>Quod in ducimus, saepe obcaecati, eius vero ipsa ea cum reprehenderit velit sunt numquam eaque sapiente dolorem, possimus id nostrum natus eligendi accusamus nulla voluptatibus necessitatibus harum vitae. Dolorum, praesentium.</td>
<td>Ab iusto, dicta deleniti explicabo perspiciatis pariatur deserunt blanditiis vel accusantium. Tempore architecto fugit cum similique laudantium et veritatis id, quos deleniti eaque voluptatum laboriosam, natus commodi itaque veniam vel.</td>
<td>Dignissimos, quis excepturi, ratione nemo minima tenetur possimus. Quos eum placeat veniam voluptas, tempora, aliquam? Dolores ipsum obcaecati nisi itaque dolor, officiis quidem minima, nesciunt molestias facilis cupiditate repellat sequi.</td>
<td>Dolores asperiores quidem totam illo veniam! Natus architecto nulla et asperiores modi quaerat, sed! Quam cum rem voluptatibus, rerum pariatur deserunt fugit odit, totam blanditiis animi nulla nisi facilis saepe.</td>
<td>Quibusdam dolor explicabo soluta adipisci est quis aliquam tempora non, sint laudantium tempore minima inventore dolorum magni ad a rem magnam dignissimos expedita maxime numquam voluptas facere, quidem harum aliquid.</td>
<td>Facere dolorem, ullam quasi. Numquam alias maiores harum voluptate delectus quos totam architecto voluptatum, sapiente pariatur modi, autem culpa omnis facere commodi unde assumenda. Quaerat, rem deserunt. Beatae, voluptates, cum.</td>
<td>Magni pariatur eos quo perspiciatis ipsam a modi accusantium nulla fugiat officiis dolor ducimus hic, provident eius facilis quibusdam molestiae quasi, sunt, quis repellat nesciunt! Enim ipsum ducimus cumque placeat?</td>
<td>Recusandae porro, consectetur placeat, temporibus delectus nesciunt aliquid nam incidunt at ipsa accusantium hic maxime tempora dolorum! Totam reiciendis, consequatur deserunt eveniet natus, vitae ipsa voluptate repudiandae velit, quia aspernatur!</td>
<td>Et iusto ab repellat quae? Quas, ratione sapiente a, fuga voluptates, unde ullam dolores, fugit sint magnam perferendis ad quae. Magnam consequatur nisi quisquam, maiores quasi qui provident similique nobis.</td>
<td>Ab qui hic, incidunt consequuntur officia exercitationem laboriosam suscipit veritatis est deleniti, debitis reiciendis at quidem consequatur iure ut quisquam tempore delectus aut soluta sequi tenetur sed magnam nostrum. Ab?</td>
<td>Earum quis perspiciatis perferendis, rem, fugit cumque reiciendis! Porro consequatur quam consequuntur quaerat, atque praesentium adipisci fugit, dignissimos, ab labore reprehenderit provident temporibus, totam magnam illum pariatur deserunt alias cum!</td>
<td>Officiis sit quam vero nobis doloribus necessitatibus possimus. Veniam, totam! Illo magnam, ipsum consequuntur at, ipsam sit fuga rerum architecto eum libero officiis, nobis! Obcaecati incidunt, mollitia placeat eaque atque.</td>
<td>Nisi nam assumenda laudantium quos non quasi. Fuga enim, voluptatibus possimus tempora numquam dolores maiores, eum quaerat sit odit distinctio saepe optio aut accusamus explicabo, dolorem quidem consequatur. Maxime, similique!</td>
<td>Autem inventore expedita quibusdam ipsum. Consequuntur nulla in vero blanditiis deleniti dignissimos, earum eligendi voluptatibus, minus illo, perspiciatis doloremque nisi sed maiores tempora. Excepturi minima, officia incidunt vitae pariatur illo!</td>
<td>Sequi delectus dolorum, ea rem quis voluptatem accusantium quibusdam suscipit corrupti est laborum adipisci tenetur optio expedita inventore quam molestiae cupiditate totam. Rem sed, odit blanditiis eius quia vel eos.</td>
<td>Vero dolor nam quisquam reiciendis quibusdam id sapiente quia est veritatis facilis, expedita recusandae sequi iste tempora harum illum nihil. Amet laborum, accusamus soluta dolores et iure? Possimus, et? Iusto.</td>
<td>Ullam ipsum blanditiis obcaecati, rem aliquam voluptates fuga quo praesentium quia cum dignissimos debitis laboriosam itaque? Nostrum explicabo quae, rem praesentium accusantium dicta officia veritatis magni earum officiis. Inventore, ut.</td>
<td>Quisquam, ex, dolore. Voluptates porro eum, blanditiis ullam non sequi suscipit iste eius! Soluta, nam quia impedit veritatis laudantium id ea iure autem magnam sapiente, a modi omnis. Optio, animi!</td>
<td>Consequuntur amet, tenetur quidem consequatur doloremque distinctio ipsum minima, incidunt, fuga voluptatibus placeat quae autem recusandae quasi. Nihil, dolorum? Aliquid eligendi hic expedita saepe recusandae suscipit tempora tempore illum tenetur.</td>
</tr>
</table>
</div>
</div>
<div class="footer">footer</div>
</div>
Figured it out.
html {
overflow: hidden;
}
.page-wrap {
display: grid;
grid-template-areas:
"sidebar main"
"footer footer";
grid-template-columns: 250px 1fr;
grid-template-rows: auto 60px;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow-y: scroll;
overflow-x: auto;
}
.sidebar {
background-color: lime;
grid-area: sidebar;
}
.footer {
background-color: orange;
grid-area: footer;
}
.main {
background-color: yellow;
grid-area: main;
min-width: 0;
}
.box {
background-color: cyan;
margin: 10px;
overflow-x: scroll;
max-width: 100%;
}
<div class="page-wrap">
<div class="sidebar">sidebar</div>
<div class="main">
<div class="box">
<table>
<tr>
<td>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veritatis, modi laudantium facilis. Cum quasi dolore quam doloribus reprehenderit illum nostrum id quas ea. Nostrum adipisci dolor nulla veniam exercitationem ipsa.</td>
<td>Accusamus deserunt voluptatibus rem, aspernatur enim dolores, amet illum accusantium! Tempora, repellendus, fuga. Ex, consectetur mollitia reprehenderit qui, consequuntur ipsam maiores excepturi sapiente tempore odit repudiandae facere incidunt! Vero, beatae.</td>
<td>Et minus eaque corrupti voluptas, earum ex non similique. Officiis a dignissimos veritatis quas provident sunt? Fuga vel officia qui, numquam eos sint, totam aspernatur, commodi quis, temporibus animi excepturi!</td>
<td>Natus quaerat, sint nemo quia laudantium dolorem asperiores deserunt neque porro esse iusto reprehenderit et assumenda ipsum saepe consequuntur soluta officiis illum maiores cumque quos voluptate expedita tenetur eum autem!</td>
<td>Asperiores ducimus accusantium aliquid nemo aliquam fugiat culpa maxime repudiandae pariatur minus. Eum incidunt iste molestias officiis sunt nostrum facilis velit. Reprehenderit quis aut officia quas beatae assumenda esse asperiores.</td>
<td>Architecto, nam consequuntur odit distinctio! Suscipit fuga nam reprehenderit, nostrum modi provident iusto aperiam alias qui. Optio repudiandae reiciendis, omnis esse maiores! A blanditiis ducimus voluptate nobis exercitationem. Temporibus, vel!</td>
<td>Similique et est omnis fuga, ad earum sapiente. Nam qui est quidem. Dignissimos amet harum voluptate a, sint culpa autem et neque, natus quod cum eos laudantium molestias, dolorem optio.</td>
<td>Saepe aspernatur consequuntur sint nisi dolores nihil ab repudiandae, odio dolor, assumenda culpa corporis fugiat ullam officia quibusdam eaque enim, harum voluptatem eveniet reprehenderit natus consectetur deleniti nesciunt et! Omnis!</td>
<td>Nihil quas quod numquam ut fugiat doloremque repudiandae animi iusto. Ullam quidem ipsa dolorem quos veritatis adipisci quisquam obcaecati culpa et consequatur, aspernatur unde eligendi rerum labore ab odit asperiores.</td>
<td>Hic, aliquam, harum? Harum tempora accusantium animi ratione id perspiciatis quasi maiores iste odio quisquam, adipisci, laudantium cupiditate voluptatem mollitia soluta sunt eveniet facere quibusdam aspernatur? Suscipit obcaecati dolorum eligendi.</td>
<td>Possimus natus, dignissimos vero nesciunt cum voluptatibus reiciendis commodi maxime voluptates qui illo quia distinctio tempora perferendis fugit modi itaque, quis recusandae quisquam quos ullam alias! Voluptatum repellat mollitia incidunt.</td>
<td>Quod in ducimus, saepe obcaecati, eius vero ipsa ea cum reprehenderit velit sunt numquam eaque sapiente dolorem, possimus id nostrum natus eligendi accusamus nulla voluptatibus necessitatibus harum vitae. Dolorum, praesentium.</td>
<td>Ab iusto, dicta deleniti explicabo perspiciatis pariatur deserunt blanditiis vel accusantium. Tempore architecto fugit cum similique laudantium et veritatis id, quos deleniti eaque voluptatum laboriosam, natus commodi itaque veniam vel.</td>
<td>Dignissimos, quis excepturi, ratione nemo minima tenetur possimus. Quos eum placeat veniam voluptas, tempora, aliquam? Dolores ipsum obcaecati nisi itaque dolor, officiis quidem minima, nesciunt molestias facilis cupiditate repellat sequi.</td>
<td>Dolores asperiores quidem totam illo veniam! Natus architecto nulla et asperiores modi quaerat, sed! Quam cum rem voluptatibus, rerum pariatur deserunt fugit odit, totam blanditiis animi nulla nisi facilis saepe.</td>
<td>Quibusdam dolor explicabo soluta adipisci est quis aliquam tempora non, sint laudantium tempore minima inventore dolorum magni ad a rem magnam dignissimos expedita maxime numquam voluptas facere, quidem harum aliquid.</td>
<td>Facere dolorem, ullam quasi. Numquam alias maiores harum voluptate delectus quos totam architecto voluptatum, sapiente pariatur modi, autem culpa omnis facere commodi unde assumenda. Quaerat, rem deserunt. Beatae, voluptates, cum.</td>
<td>Magni pariatur eos quo perspiciatis ipsam a modi accusantium nulla fugiat officiis dolor ducimus hic, provident eius facilis quibusdam molestiae quasi, sunt, quis repellat nesciunt! Enim ipsum ducimus cumque placeat?</td>
<td>Recusandae porro, consectetur placeat, temporibus delectus nesciunt aliquid nam incidunt at ipsa accusantium hic maxime tempora dolorum! Totam reiciendis, consequatur deserunt eveniet natus, vitae ipsa voluptate repudiandae velit, quia aspernatur!</td>
<td>Et iusto ab repellat quae? Quas, ratione sapiente a, fuga voluptates, unde ullam dolores, fugit sint magnam perferendis ad quae. Magnam consequatur nisi quisquam, maiores quasi qui provident similique nobis.</td>
<td>Ab qui hic, incidunt consequuntur officia exercitationem laboriosam suscipit veritatis est deleniti, debitis reiciendis at quidem consequatur iure ut quisquam tempore delectus aut soluta sequi tenetur sed magnam nostrum. Ab?</td>
<td>Earum quis perspiciatis perferendis, rem, fugit cumque reiciendis! Porro consequatur quam consequuntur quaerat, atque praesentium adipisci fugit, dignissimos, ab labore reprehenderit provident temporibus, totam magnam illum pariatur deserunt alias cum!</td>
<td>Officiis sit quam vero nobis doloribus necessitatibus possimus. Veniam, totam! Illo magnam, ipsum consequuntur at, ipsam sit fuga rerum architecto eum libero officiis, nobis! Obcaecati incidunt, mollitia placeat eaque atque.</td>
<td>Nisi nam assumenda laudantium quos non quasi. Fuga enim, voluptatibus possimus tempora numquam dolores maiores, eum quaerat sit odit distinctio saepe optio aut accusamus explicabo, dolorem quidem consequatur. Maxime, similique!</td>
<td>Autem inventore expedita quibusdam ipsum. Consequuntur nulla in vero blanditiis deleniti dignissimos, earum eligendi voluptatibus, minus illo, perspiciatis doloremque nisi sed maiores tempora. Excepturi minima, officia incidunt vitae pariatur illo!</td>
<td>Sequi delectus dolorum, ea rem quis voluptatem accusantium quibusdam suscipit corrupti est laborum adipisci tenetur optio expedita inventore quam molestiae cupiditate totam. Rem sed, odit blanditiis eius quia vel eos.</td>
<td>Vero dolor nam quisquam reiciendis quibusdam id sapiente quia est veritatis facilis, expedita recusandae sequi iste tempora harum illum nihil. Amet laborum, accusamus soluta dolores et iure? Possimus, et? Iusto.</td>
<td>Ullam ipsum blanditiis obcaecati, rem aliquam voluptates fuga quo praesentium quia cum dignissimos debitis laboriosam itaque? Nostrum explicabo quae, rem praesentium accusantium dicta officia veritatis magni earum officiis. Inventore, ut.</td>
<td>Quisquam, ex, dolore. Voluptates porro eum, blanditiis ullam non sequi suscipit iste eius! Soluta, nam quia impedit veritatis laudantium id ea iure autem magnam sapiente, a modi omnis. Optio, animi!</td>
<td>Consequuntur amet, tenetur quidem consequatur doloremque distinctio ipsum minima, incidunt, fuga voluptatibus placeat quae autem recusandae quasi. Nihil, dolorum? Aliquid eligendi hic expedita saepe recusandae suscipit tempora tempore illum tenetur.</td>
</tr>
</table>
</div>
</div>
<div class="footer">footer</div>
</div>
I remembered an annoying quirk with flexbox, thought it might apply to grid too.
The trick is to add min-width: 0 to .main.

How to make a div individually scrollable in React Bootstrap

So im currently trying to use React Bootstrap for my website. I'm confused how to make only one div to be scrollable and the others not. Here's my code in App.js
import * as React from 'react'
import Container from 'react-bootstrap/Container'
import Button from 'react-bootstrap/Button'
import Row from 'react-bootstrap/Row'
import Col from 'react-bootstrap/Col'
function App() {
return (
<Container fluid>
<Row style={{height: "100vh"}}>
<Col sm={4} className="border border-primary">
<div>Avatar</div>
</Col>
<Col className="border border-primary">
test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>
<div className="position-sticky">
stick please
</div>
</Col>
</Row>
</Container>
);
}
export default App
In the image, the <div>please stick</div> is not seen because it's far below and the <Col>avatar</Col> is scrollable when I wanted to make the text Avatar to stick.
Does anyone know how to make one div scroll independently while the other divs stays and cannot be scrolled? Thanks in advance
Give the scrollable div overflow-y: auto. One child of a container won't scroll until you give the height to its parent. In the following example, I've given height: 100%, because I want to divide the page into 2 parts which will take full height i.e (100vh). You can also give custom height i.e height: 300px;
Just add height on parent cotainer and overflow-y: auto to child element that you want to scroll.
body,
html {
height: 100%;
margin: 0;
}
div.container {
height: 100%;
display: grid;
grid-template-columns: 1fr 1fr;
}
div.first {
background-color: burlywood;
padding: 1rem;
}
div.second {
background-color: darkcyan;
padding: 1rem;
overflow-y: auto;
}
<div class="container">
<div class="first">
first
</div>
<div class="second">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut totam nulla quae accusantium sunt provident saepe, quis fugit delectus? Possimus sed id dolore omnis facere harum vitae dolor reprehenderit. Tenetur. Ipsa quasi rem deleniti quidem ut corporis
s officia minima est labore dignissimos quia exercitationem unde! Libero deleniti in laudantium harum nihil reiciendis autem dolorum vero, non blanditiis sapiente quibusdam tenetur animi, dicta laboriosam quisquam sint repellat natus eius nostrum
reprehenderit. Veniam recusandae quod quaerat quis. Cumque eum ducimus, at deserunt nemo minus neque similique dolores rerum voluptas, necessitatibus quis aperiam consequuntur, error quo accusamus. Cum doloremque ut deserunt. Cupiditate, possimus
delectus. Dignissimos minima perspiciatis fugiat. Minima quaerat laborum veniam reprehenderit, ea reiciendis expedita explicabo nemo, recusandae harum, dolores vitae tenetur dolore itaque ducimus odit deserunt pariatur dolor facere molestiae unde
quos et. Ut, consectetur neque! Debitis dicta doloremque eaque ex aspernatur odit saepe omnis dignissimos veritatis ut. Earum dolores mollitia dolorem eligendi ad molestiae, saepe exercitationem harum magni doloribus, natus minima ratione aliquam
laudantium expedita! Nam odit harum consequuntur eaque quas, magni atque tenetur veniam dolor ipsum fuga sapiente vero molestias at consectetur ratione! Ex obcaecati nihil sed eum dicta impedit asperiores dolorum reiciendis vitae! Velit, qui esse
quos eveniet voluptas quia ipsum minus asperiores. Quas, deserunt hic nihil quam eligendi, voluptatem dolores ducimus nesciunt enim saepe officia eos quia blanditiis esse neque omnis aliquam! Ab quod harum maxime illum quam commodi cupiditate eaque,
esse vero nostrum, deleniti ut eum recusandae. Quos asperiores distinctio a debitis? Expedita illum minus modi facere reprehenderit animi, voluptate ipsum? Quis vel, voluptatem veniam, accusamus pariatur delectus aliquam voluptatum quisquam voluptatibus
odio earum itaque praesentium! Voluptate voluptatem expedita reiciendis pariatur aspernatur accusamus ut nihil! Cum id veniam repellendus. Sed, corrupti. Quam laborum corporis, ipsum iste ex, quas est nihil ipsa architecto tenetur, exercitationem
qui commodi repellat. Laboriosam sit nesciunt, quidem ipsum, similique vero optio vel aperiam nemo deleniti quas voluptas? Inventore nesciunt facere consequatur tempora ad ullam sint, commodi voluptate rem temporibus repellat aut dolores accusamus,
tenetur deleniti non quam necessitatibus praesentium fugiat harum iusto eveniet? Hic suscipit corrupti libero. Ipsa dignissimos optio et eveniet nulla itaque assumenda, voluptate a nostrum quisquam consectetur eum eaque magnam nobis provident, distinctio
omnis unde eius ipsam at labore enim iusto accusantium. Beatae, ut. Odio fugit atque, ad nobis incidunt tempora vitae ullam sapiente perferendis non quas aut eos animi minus optio aspernatur voluptates debitis! Nisi, sed a exercitationem ea iure ipsa
iste accusantium. Porro, distinctio voluptatem sequi qui dolore quidem quia odio optio ullam soluta adipisci perferendis, illum reiciendis temporibus quis atque quibusdam possimus laboriosam quae id consequuntur tempore! Ipsum excepturi sapiente iure!
Modi atque provident aut accusamus est, blanditiis architecto, nulla quis quibusdam, hic nobis eligendi explicabo dolorum voluptatem beatae voluptatum sunt repellendus quam! Suscipit eum cupiditate tempore illum sed modi expedita! Eos quas dolorum
id, consectetur recusandae aliquam error nisi labore autem ullam inventore deserunt consequuntur nihil dolore tenetur sit soluta tempore quod quis doloribus sequi! Accusamus repudiandae est possimus facilis! Ab error a, culpa eaque inventore sit amet
dolorum rem, quae omnis aperiam aut nesciunt voluptas ullam dolore reprehenderit ratione et enim magnam eveniet sint iste ipsam deserunt excepturi. Ratione. Harum corporis sunt autem aperiam provident pariatur dolore eveniet consequatur repellendus
voluptate ipsa impedit, numquam illo doloremque velit excepturi quo saepe. Obcaecati, dolore neque quas eum nisi at ducimus recusandae! Debitis rerum a sapiente numquam aut doloremque cum nemo eaque, incidunt at recusandae repellat odit aspernatur
nesciunt obcaecati non velit cumque blanditiis omnis facere vero quis eos ab? Magnam, earum. Iusto voluptates repellendus facere possimus porro ducimus dicta illo, repellat ab. Iste, at obcaecati quis, fuga accusantium molestias consectetur, nobis
praesentium recusandae deleniti ut veniam. Optio debitis labore odit doloremque. Adipisci ullam repellat provident culpa ab molestias autem voluptates tempore aspernatur delectus obcaecati, corrupti nesciunt aperiam? Perspiciatis, est doloribus quam
non hic minus at laudantium unde enim voluptates sapiente officia. Aut, fugit libero, voluptatem eum ipsum consectetur vitae dolores optio modi soluta reiciendis! Sunt eum explicabo reprehenderit iure ut ab. Corrupti eligendi fugit rem sunt libero
aperiam veritatis accusamus nesciunt! Doloremque praesentium eaque nulla itaque autem eum modi maiores, nobis aperiam odio ipsam dolorem optio est nesciunt dolores, sequi beatae corrupti voluptate fuga voluptatem nemo, error ullam debitis? Incidunt,
adipisci. Vitae enim, accusantium autem aspernatur voluptatum ullam aliquam eum reprehenderit repellat hic voluptatem porro quos sunt cumque quisquam incidunt sint blanditiis sapiente odio! Eius nostrum cumque, impedit omnis saepe rem. At excepturi
enim nihil quia laudantium architecto, velit blanditiis mollitia saepe repellat iste natus ipsam! Dolor repellat illo atque ut ducimus impedit similique porro. Delectus sed nihil voluptas ducimus perspiciatis. Ex cupiditate ipsum minima veritatis
recusandae? Soluta porro magnam itaque beatae quis! Facere nesciunt dicta minus blanditiis tempora cum, nisi, a asperiores quis recusandae dolor illum non sint vero hic?</div>
</div>

Firefox 33: Flexbox issue with 100% height, justify-content: space-between and child larger than 100%

I have a demo here:
https://codepen.io/EightArmsHQ/live/351dcdcc863e14419121099f647998c3
In all modern browsers, there is a red button in the sidebar after all the list items
This is done by something along these lines:
<div class="menu">
<ul />
<button />
</div>
And then the following CSS:
.menu{
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
The problem is in older versions of firefox, these lines:
height: 100%;
justify-content: space-between;
Put the button a sort of "position: absolute; bottom: 0" style of positioning.
Does anyone know of any firefox workarounds for this sort of issue? The last 36 versions of the browser work well 😂
Stack snippet
document.querySelector("#toggle").addEventListener('click', function(){
document.body.classList.toggle("toggle");
});
main {
width: 600px;
margin: 0 auto;
}
.menu {
position: fixed;
left: 0;
top: 0;
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
overflow-y: scroll;
background: #fafafa;
}
.menu li {
padding: 40px 0;
}
.menu .example-a {
display: none;
}
.menu .example-b {
display: block;
}
.toggle .menu .example-a {
display: block;
}
.toggle .menu .example-b {
display: none;
}
button {
background: red;
padding: 20px;
}
<div class="menu">
<ul class="example-a">
<li>Ipsa.</li>
<li>Non.</li>
</ul>
<ul class="example-b">
<li>Beatae.</li>
<li>Consequatur.</li>
<li>At!</li>
<li>Nam.</li>
<li>Quidem.</li>
<li>Accusamus!</li>
<li>Ipsum.</li>
<li>Cumque.</li>
<li>Recusandae.</li>
<li>Veniam.</li>
<li>Omnis?</li>
<li>Vitae?</li>
<li>Ut.</li>
<li>Alias.</li>
</ul>
<button>Action</button>
</div>
<main>
<button id="toggle">Toggle demo</button>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Debitis voluptatum facere minus sit hic ipsum eligendi officiis reprehenderit recusandae tenetur quaerat, provident exercitationem ex impedit beatae commodi voluptate quia sequi.</p>
<p>Tenetur sapiente minima quia labore repudiandae est, facilis laborum voluptas? Ut sequi earum, magni natus ad a doloremque non, quam sint molestiae consequatur consectetur unde. Nihil nemo voluptatem reiciendis repudiandae?</p>
<p>Laboriosam esse eius, dignissimos quasi asperiores ea doloribus, eligendi velit, deserunt eum repellendus. Sit et illum voluptatum. Inventore doloremque atque laudantium, esse id dolore itaque placeat quasi veritatis, quae sequi?</p>
<p>Ea architecto voluptate id blanditiis beatae quas dolore amet mollitia maiores error deserunt nulla enim natus dicta, sint accusamus minus quis quam! Dignissimos officia blanditiis dicta nulla consequuntur eum error?</p>
<p>Reiciendis voluptates quae adipisci perferendis ullam molestiae, sint corporis laudantium vitae alias blanditiis iure voluptatum voluptas autem? Alias iste numquam porro voluptatem provident pariatur possimus sequi dignissimos. Fuga, molestias ex?</p>
<p>Consectetur non laborum mollitia optio accusantium, ratione provident voluptas exercitationem soluta quam totam harum quaerat vel fugiat modi minima ab fuga. Dolore velit deserunt numquam nostrum in vero impedit. Maiores.</p>
<p>Saepe consequuntur dignissimos, maxime distinctio est commodi aspernatur, inventore dolorem ducimus, cumque odio nisi reprehenderit animi? Earum alias maiores, adipisci quis enim iure? Dolorum explicabo ipsa accusamus, vero corporis earum?</p>
<p>Eos aperiam nisi debitis accusantium suscipit soluta dolorum fuga quas? Nesciunt a nisi alias officia saepe esse excepturi tenetur accusamus minus autem, earum corporis impedit ipsum veniam voluptates magni aperiam!</p>
<p>Vero ipsum ab repellat dolores rem odit quis aperiam dolore, esse dolorum eveniet dicta, quo aliquam numquam quam voluptates. Officia deserunt quisquam dicta voluptatibus molestias, nulla tempora sit voluptates vitae!</p>
<p>Sint a eligendi magnam, voluptatum accusamus adipisci enim consequatur labore pariatur, id nostrum omnis maxime quae ipsam fugiat fugit? Rerum in repellendus libero porro veritatis nam odio consequatur et nobis!</p>
<p>Dolorum vero tempore aspernatur, quos saepe minus ratione, officiis eveniet numquam quibusdam maxime obcaecati facilis similique? Nesciunt maxime officiis voluptatem amet dignissimos illum quos maiores, veniam consequuntur quisquam doloribus delectus!</p>
<p>Alias voluptate id optio, illo aperiam libero cum repudiandae impedit porro officiis iste enim officia! Reprehenderit quidem qui nobis, sed, reiciendis repudiandae rerum, consequuntur doloribus consequatur eos id molestias officiis?</p>
<p>At vel quo beatae laborum eius, quaerat distinctio eveniet eaque veritatis, doloremque quae minus illo numquam harum labore suscipit quasi fuga quas quisquam saepe. Quisquam id excepturi quae veniam officia.</p>
<p>Ex rem animi voluptatibus. Sunt maxime impedit quae neque nesciunt reprehenderit inventore obcaecati eaque corrupti, labore distinctio consectetur quod? Voluptate, error. Aut hic eos dolor praesentium modi porro non temporibus?</p>
<p>Ipsa accusantium, quod aliquid esse est velit tempora nam rerum sequi magni minima assumenda asperiores dolorem dolorum dolore molestiae corrupti nemo nulla quos beatae expedita vel laudantium numquam! Ipsum, recusandae.</p>
<p>Architecto ipsam quia laborum repudiandae a similique ducimus vitae explicabo excepturi ut quos repellendus velit iure, quis quo, eligendi illo pariatur mollitia. Iusto aperiam quibusdam quae libero natus quasi repellendus.</p>
<p>Distinctio consequatur nihil voluptatum itaque esse dolore neque eum voluptate, laborum officiis veritatis reiciendis eos! Tempore perferendis excepturi ratione culpa repellat quae eaque. Officia rem, suscipit aut sunt assumenda repellat!</p>
<p>Modi, vitae veritatis officiis perferendis cupiditate itaque labore, maiores fugit tenetur deserunt ipsam, consectetur fuga delectus nisi reprehenderit! Aut error eligendi assumenda modi rem necessitatibus praesentium vel, quos tenetur recusandae?</p>
<p>Perspiciatis iure nihil velit repellat, voluptas similique nesciunt aliquam itaque possimus facere, dolorem et dolor repellendus impedit. Quia voluptatum, nesciunt itaque recusandae esse provident temporibus quos. Deleniti architecto fugit magnam.</p>
<p>Voluptates, fugit culpa est commodi, unde suscipit porro officia ut obcaecati possimus exercitationem assumenda beatae aut, rerum non velit repellat odit earum nihil! Mollitia pariatur beatae tenetur aliquam optio provident?</p>
<p>Ipsum velit atque debitis magnam, natus recusandae cumque, assumenda harum in eaque nisi eos sint, quidem corrupti! Quos officiis ipsa quasi neque sed commodi repellendus, adipisci ut minus? Repellat, qui.</p>
<p>Rem labore voluptatibus maiores molestiae, harum repudiandae est, deleniti, numquam odit ut nesciunt adipisci? Ea, accusamus quaerat! Quam doloribus, error sapiente enim voluptatem laborum architecto consequatur a maiores harum asperiores!</p>
<p>Blanditiis explicabo tempora saepe consequuntur sunt eligendi nobis. Impedit debitis autem ea animi, recusandae in quia inventore, veniam, velit cumque vero aut? Earum adipisci omnis temporibus consequatur natus, accusantium rem!</p>
<p>Totam, hic velit quaerat incidunt fugiat corrupti soluta culpa earum est excepturi inventore obcaecati omnis vero at veniam nisi vitae, atque similique ullam nemo molestias nesciunt sint. Temporibus, aperiam earum.</p>
<p>Voluptates molestias architecto est nesciunt amet commodi similique omnis. Soluta hic corrupti dignissimos. Sed officiis aliquam fugit, libero odio maiores alias recusandae deserunt incidunt, saepe reiciendis modi voluptatem praesentium id!</p>
<p>Impedit porro velit illo tempore veniam saepe, ea nesciunt deserunt repellendus accusantium aliquam quam dolor quisquam voluptas quis. Eaque iusto provident ipsum officia odio maxime dolorum expedita ducimus tempore molestiae?</p>
<p>Culpa fugit autem aspernatur, assumenda ex ut rem repellendus vero consequatur laboriosam labore dolorem. Quia voluptas est commodi sit sequi veniam nobis nam, nisi soluta ducimus reiciendis, voluptatibus earum praesentium!</p>
<p>Eaque amet ab porro provident laudantium alias, deserunt consequatur error optio nihil incidunt repudiandae mollitia, laboriosam, sunt voluptatum eos magnam odit molestias. Quia eveniet facilis inventore, eum ipsam dolorum officia!</p>
<p>Beatae possimus fugit saepe! Saepe, porro quisquam. Nemo molestias assumenda aut, ullam deserunt cumque porro architecto harum. Nam soluta, repellat voluptatem nihil minima nemo tempore perspiciatis, beatae deleniti, a deserunt?</p>
<p>Eveniet nesciunt eaque quis eum? Non facere voluptatem eveniet adipisci labore sit, impedit dolor iusto odio totam beatae tenetur possimus assumenda porro sint ab debitis maxime quasi. Sapiente, tenetur asperiores?</p>
<p>Voluptatem quidem illum atque ipsam tenetur voluptas. Voluptate debitis sunt numquam? Similique aliquam, illo porro ab doloribus tempora, distinctio error officia quidem, culpa in dolores consequatur neque reiciendis quia soluta.</p>
<p>Laboriosam consequuntur nihil inventore repudiandae cumque eum animi beatae quibusdam, exercitationem perferendis harum reprehenderit, iusto nemo! Ipsum ad at assumenda nisi sapiente eos aut reiciendis, eum est? Ducimus, numquam odit?</p>
<p>Corporis nihil eligendi nam doloribus sed explicabo minima, expedita optio omnis aliquam. Nulla autem harum cum odio quam quas aperiam quae, deleniti ea assumenda. Porro et sed dicta quos nihil.</p>
<p>Perferendis minima quasi debitis! Deleniti aut consequuntur ratione modi sit, sapiente itaque doloremque fuga, expedita atque consectetur nulla error illo rerum ullam iste fugiat dolorum blanditiis architecto magni. Provident, magnam.</p>
<p>Facere itaque ipsa laboriosam, vero explicabo illum optio consectetur quas et harum quis hic ullam nihil debitis sit veritatis delectus, nam ducimus adipisci, excepturi fugiat! Optio eius alias non explicabo.</p>
<p>Consequuntur voluptatibus, temporibus sint rem error voluptatem nisi totam harum perspiciatis. Quis rerum vero aperiam ea? Cumque iure non animi reiciendis dolorem quia vitae, aspernatur magnam asperiores optio distinctio necessitatibus.</p>
<p>Obcaecati placeat nihil doloribus eligendi in nobis porro. Nesciunt, dolorem veniam perferendis laboriosam tempore sequi pariatur provident quis voluptatibus officia suscipit nostrum rem quos, unde animi nulla minus ullam aliquid.</p>
<p>Dolorem asperiores earum nobis repellat laboriosam hic nihil, rem eveniet harum dicta ullam amet modi laudantium! Nemo inventore, quis praesentium ipsa saepe eveniet non recusandae dolorum? Doloribus voluptatum optio veniam.</p>
<p>Similique vero laborum in dolor, at dolores. Suscipit quidem aut consequuntur? Deserunt modi aliquid quisquam in iure eaque fugiat ipsam unde, laborum magni optio, amet illum labore neque natus maxime.</p>
<p>Voluptatem et dolorum vero quo cupiditate deserunt atque suscipit sit nobis qui saepe reiciendis dicta, dignissimos harum, nostrum ipsam! Sed rem corporis maiores labore porro accusamus, atque aspernatur libero magnam!</p>
<p>Veritatis, non? Libero, reiciendis asperiores! Amet placeat at, quo quis molestiae et, odio odit molestias excepturi modi explicabo perspiciatis itaque numquam eius doloremque in repellat eveniet temporibus qui dolor totam.</p>
<p>Ducimus, accusantium doloremque error deserunt recusandae doloribus ut delectus veritatis libero illo? Molestiae, recusandae dolore ut enim veniam, totam omnis explicabo, ducimus provident beatae odit atque expedita dignissimos optio animi.</p>
<p>Corporis quidem quas odit blanditiis possimus dicta in, ad consectetur accusantium est facere vitae distinctio obcaecati quasi praesentium officiis quaerat debitis sint error cum laudantium nesciunt nisi. Cupiditate, officia a.</p>
<p>Hic ratione pariatur magni veniam optio, repellendus, adipisci soluta perferendis beatae eligendi numquam, facere eum inventore aperiam. At officiis ad facere officia corporis id reprehenderit, sapiente illum aperiam obcaecati nam!</p>
<p>Neque consequuntur, error nisi earum tempore cupiditate illum eligendi vel ducimus accusamus cumque optio, magnam sint voluptas? Perferendis provident sunt aperiam repellendus at placeat nesciunt repudiandae nostrum, laudantium officiis architecto!</p>
<p>Commodi aut soluta ducimus repudiandae aliquam ipsa. Laboriosam, asperiores? Possimus, ut, ratione alias necessitatibus dolorem, quas nostrum dolor architecto voluptas reiciendis eveniet natus suscipit ipsa labore odit nemo repellat. Maxime.</p>
<p>Rem dolore explicabo optio vitae repudiandae nam non similique quisquam dolorum inventore est iure ut architecto, voluptatum minima sapiente nesciunt nobis, atque ratione, incidunt exercitationem? Numquam omnis consequatur at architecto.</p>
<p>Perferendis ipsam, magnam maxime eligendi aliquam quae qui illo magni rerum, sequi unde fuga natus vero a numquam tenetur nisi distinctio ad ab quidem. Fugit ut earum natus magni in.</p>
<p>Optio nihil, beatae veniam cupiditate id facere delectus earum at, magnam, voluptatibus veritatis aliquid excepturi aperiam repudiandae esse tempora animi obcaecati! In fuga rem quisquam iste beatae odio magni sit!</p>
<p>Quaerat sequi ea distinctio voluptas odio excepturi ducimus aspernatur, itaque possimus, molestias ut voluptatum quam earum in aperiam blanditiis assumenda voluptatibus tenetur, doloremque pariatur illo inventore esse laborum vel! Esse.</p>
</main>
I specially download Firefox V.33 and find solution, Below is my code.
But i must say please update your browser, the latest version is 70 approx so, i hope you understand.
Here we go.
Create a div inside main class and give css it:--
display: flex;
flex-direction: column; justify-content: space-between; min-height:
100%;
You can put my code and check in your browser and do let me know it's help or not.
HTML
<div class="menu">
<div class="outer" style="display: flex; flex-direction: column; justify-content: space-between; min-height: 100%;">
<ul class="example-a">
<li>Lorem.</li>
<li>Rerum.</li>
</ul>
</div>
</div>
CSS
.menu {
position: fixed;
left: 0px;
top: 0px;
overflow-y: scroll;
height: 100vh;
}
.outer {
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 100%;
}

Dropdown contents are fixed to the screen when vertical scrolling

i want to display dropdown menu upon clicking a button. But the dropdown menu is displayed not close to the button clicked and remains fixed when scrolling page vertically. Below is the code
<div>
<div onClick={this.handle_click}>
{toggle}
</div>
{this.movie_list.opened &&
<div className="dropdown_contents">
{React.Children.map(
contents,
(child, index) => { return (
child && <div
key={index}
className="dropdown_item"
onClick={this.handle_item_click}>{child}
</div>); }
)}
</div>
}
</div>);
css is as below
.dropdown_wrapper {
position: relative;
}
.dropdown_contents {
position: absolute;
background-color: $white;
/*position: absolute;*/
box-shadow: 0 8px 14px 0 rgba(6,28,63,0.3);
z-index: 10;
}
.dropdown_item {
min-width: 150px;
min-height: 40px;
display: flex;
padding: 8px;
align-items: center;
cursor: pointer;
}
when i add the class dropdown-wrapper to the topmost div element like below in the above code
<div className="dropdown_wrapper">
<div onClick={this.handle_click}>
{toggle}
</div>
The dropdown menu is not visible properly. I see that its hidden between some other element. Could some pls help with this. thanks.
You set the position on your wrapper to relative and set the z-index for your absolute positioned dropdown element.
.dropdown_wrapper {
position: relative;
}
.dropdown_contents {
background-color: orange;
width: 100px;
position: absolute;
top: 100%;
left: 0;
z-index: 100;
}
<div class="dropdown_wrapper">
<button>
Button
</button>
<div class="dropdown_contents">
<div>Item</div>
</div>
</div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Modi consequatur perspiciatis suscipit labore accusamus debitis adipisci praesentium accusantium dolor, possimus, itaque? Accusantium voluptate autem aperiam, recusandae facere ea eligendi temporibus qui deserunt nam commodi rerum aspernatur hic repellendus numquam odio deleniti. Modi beatae voluptate similique illo necessitatibus in, vero eaque. Aspernatur quis vero architecto natus laudantium non ullam necessitatibus, dolores commodi doloremque beatae? Atque reiciendis, minima deserunt ipsa temporibus perferendis facilis magnam ratione, nemo nobis. Placeat veritatis sunt officiis at officia dolore porro, obcaecati vero! Aspernatur magni sapiente quisquam maiores ducimus cumque sunt eos modi amet reiciendis, et, laudantium nihil.</p>
<p>Quis incidunt numquam, illum aut perspiciatis quae eum pariatur reprehenderit laborum a consequuntur aspernatur, atque ratione rem nisi unde quidem harum ab dignissimos consectetur cupiditate earum maxime temporibus. Illum rem, fugit, quidem tempore excepturi necessitatibus minima enim id similique esse, inventore, quod! Consequatur est ea, in deserunt? Fugiat assumenda omnis illo eveniet suscipit commodi nostrum quos cum odit earum. A, natus iusto repellat sint aspernatur nobis nostrum, qui fuga fugiat eligendi molestiae eius rem reiciendis architecto id temporibus ratione. Quasi officia quia, dolorum voluptate, quam libero voluptates vitae error nostrum officiis in. Impedit eos hic fuga incidunt cum vitae ex.</p>
<p>Magnam ut, quidem fugit dignissimos! Debitis praesentium, sed laborum ea repellendus itaque quisquam nesciunt possimus veritatis reprehenderit unde quidem, dolorum iste! Neque quos voluptate odio iusto quis, corporis cupiditate qui provident similique, rerum ratione, minima aspernatur. Cupiditate est laudantium, accusamus cum quas, ab rerum, consequatur nihil et itaque excepturi debitis quod quidem ducimus eaque minima libero doloribus reprehenderit inventore. Fugiat nulla, cupiditate eum quam, non vero magnam accusantium, numquam, rem laborum rerum quaerat. Nulla fugit repellendus iusto neque expedita esse ullam pariatur, quae fugiat modi asperiores unde alias voluptates quas ad quos dicta, soluta voluptatibus. Itaque totam quisquam modi temporibus.</p>
<p>Atque amet ducimus quibusdam voluptas, recusandae natus, doloremque reiciendis. Est sit non possimus libero at animi illo beatae nihil excepturi quos omnis, atque repellendus esse harum similique debitis delectus voluptate! Fugit saepe incidunt eos voluptatibus, dignissimos excepturi obcaecati velit expedita odit ipsum placeat molestias unde esse cupiditate laborum ratione nihil veniam totam rem magnam recusandae itaque, doloribus aut commodi. Amet, illum quae necessitatibus sint similique, velit officiis tempora neque corporis rem, ipsam ad maxime distinctio ea. Eius, inventore? Amet corporis fuga sed, perferendis quam ut dignissimos a molestiae. Cupiditate, saepe, totam. Ratione laborum a eaque. Recusandae, illum incidunt eum eveniet?</p>
<p>Porro autem veniam doloribus aliquam, repellat excepturi libero maiores soluta cumque impedit eligendi cupiditate quo, recusandae nesciunt ex optio, voluptas quia sit. Nobis nisi soluta, ab odit quae. Quia, minus placeat numquam, quisquam adipisci vel quaerat omnis quae! Ut odit, rerum. Fugiat totam dolores itaque sint repellat quo, aliquid obcaecati quasi ducimus architecto minima commodi eum quod qui laboriosam maiores voluptatibus. Debitis nulla autem soluta doloribus ipsa hic, harum mollitia incidunt sapiente, pariatur velit veniam maiores, repudiandae, consequatur quae accusantium at cupiditate illum dignissimos reprehenderit. Facere tenetur, voluptates dicta nesciunt, aliquam, neque cum est mollitia veritatis sequi magnam et cumque.</p>
<p>Explicabo possimus laboriosam quas facilis vero impedit modi enim iusto tempora magnam, at, ratione, amet qui consectetur. Alias est accusantium molestiae consectetur non enim ipsam harum, a, magnam sequi praesentium doloremque at iure iusto unde obcaecati veniam laudantium quidem quos molestias, doloribus quae id quod aliquid commodi. Unde sequi dicta doloremque dolorum repellat ipsam. Sit eos iusto reiciendis tempore hic magni corporis molestias, delectus consequuntur non obcaecati neque voluptatum assumenda, aut rerum iure autem tempora reprehenderit cumque tenetur quibusdam nihil facilis, nemo eveniet nesciunt. Totam, ea, explicabo. Iure veniam neque, consequuntur rem, libero obcaecati eius dignissimos exercitationem. Consequuntur, libero, temporibus.</p>
<p>Ad magnam corporis iure culpa dolorem vero quia, neque, ipsa quas. Qui odio perspiciatis debitis aperiam asperiores, nobis, velit ipsum tempora fuga possimus tenetur eos reprehenderit non ratione. Nesciunt inventore, suscipit architecto eligendi, nemo omnis minus. Quisquam et minima animi accusamus eligendi. Ullam pariatur, quia quidem molestias dolores, expedita. Vero magni tempore aliquid iure tenetur mollitia hic unde obcaecati enim at amet adipisci cum fugiat quam fuga eveniet saepe illum, reiciendis! Atque suscipit molestiae ex assumenda, consequuntur voluptates aliquid voluptatum excepturi optio velit facere reiciendis voluptate natus soluta asperiores praesentium necessitatibus id omnis. Explicabo laborum earum, dolore tenetur, ipsam numquam.</p>
<p>Dolorem eos, quaerat officiis nobis. Officiis rem eligendi temporibus dolore expedita, similique reiciendis ab magnam, inventore eaque fugiat nobis voluptatem voluptatum dolorum obcaecati excepturi molestias iusto unde aperiam a velit. Quasi minima perspiciatis dolor inventore, quisquam laudantium porro veniam possimus, dignissimos suscipit, ipsum aliquam iste nulla aut incidunt praesentium tenetur doloribus laborum ab animi. Neque hic, tempore enim eius accusantium fugiat architecto, assumenda laborum sit aut cumque natus, magni voluptatem iusto eligendi est modi unde aliquam quaerat. Perspiciatis quidem, cumque ex libero accusamus, magnam consequuntur quis similique facilis! Fuga dignissimos fugit suscipit harum hic blanditiis amet magnam nam cumque nostrum.</p>

What is the difference between background-attachment : scroll and local?

What is the difference between background-attachment : scroll and local?
I have been trying to read some blogs on these topics, but not able to construe the difference between them?.
From the spec:
fixed: The background is fixed with regard to the viewport. (...) Even if an element has a scrolling mechanism (...), a ‘fixed’ background doesn't move with the element.
local: The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents, and the background painting area and background positioning area are relative to the scrollable area of the element rather than to the border framing them. (...)
scroll: The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)
Demos: fixed, local, scroll.
fixed: the background image is fixed relative to the browser's window whether or not the element scrolls or the content within it scrolls. Demo
.box{
width: 400px;
height: 1000px;
background-color: #f2f2f2;
overflow: scroll;
background-image: url(http://i.imgur.com/9onLIRX.jpg);
background-attachment: fixed;
background-size: cover;
}
<div class="box">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt aperiam distinctio doloribus odio mollitia inventore ipsa necessitatibus alias ab, harum et dolorum iusto hic vel? Nobis tempora consequuntur ab, omnis quisquam nihil! Quod repudiandae provident mollitia architecto placeat nostrum, accusamus, non praesentium consequatur delectus tempore. Placeat aspernatur consequatur praesentium, exercitationem doloribus vel cum vitae in ducimus maiores, fugit repudiandae accusamus, quaerat, commodi explicabo eius beatae culpa distinctio! Eaque maxime dolorum ad nostrum cupiditate temporibus, doloribus, esse voluptatem minus explicabo cum atque sit adipisci quis magnam ea! Et pariatur nobis ad odit, nihil sunt nostrum unde ipsum, eligendi voluptatem libero nemo laudantium accusamus, tenetur atque. Totam reiciendis eveniet, dolorem cumque asperiores repellat vero. Inventore ducimus ratione vitae dolores alias ex officiis hic, quaerat voluptatibus nisi officia numquam quasi odio itaque repellat cumque animi, eius quod ipsum harum temporibus earum, ipsa illo libero. Odit nostrum fugiat aliquid porro labore blanditiis dolore quisquam accusantium voluptatibus minima voluptate itaque, a consequuntur aperiam sapiente quidem molestiae tenetur atque quia ducimus! Deleniti libero id laudantium! Deleniti, quos corporis unde consectetur vel possimus sed quidem aliquid ipsam mollitia alias id sapiente esse. Hic impedit, laudantium fugit adipisci commodi quaerat nihil tempore, eligendi explicabo beatae magni maiores ratione vel dolores omnis aperiam rerum corporis distinctio, cumque, repellat ducimus. Nisi, mollitia nostrum obcaecati ipsum quis repudiandae harum, nemo ex incidunt ipsam explicabo repellendus suscipit laboriosam accusamus, nihil tenetur quos. Totam modi velit sed ipsa consequatur quaerat excepturi iusto nesciunt quo maxime sint facilis officiis, eveniet quis libero possimus molestiae veniam harum illum quam assumenda dolorem nam voluptatum! A eligendi perferendis cum iusto! Possimus, neque! Recusandae nobis ut minima facilis quae, itaque vitae, magnam ea eum ab aliquid, ipsum porro laboriosam expedita nulla doloribus sit! Sunt ullam molestiae nulla maxime quis veniam rem at? Similique quidem commodi ducimus libero debitis ipsum expedita recusandae, suscipit minima eius obcaecati illum fugit, neque consequuntur iste iure rem iusto blanditiis eos vel velit perferendis unde sed. Voluptas non, minus placeat itaque animi facere numquam dolorem nisi, molestiae tenetur rem aliquam praesentium modi inventore et aut corrupti magni dolorum ipsam sequi incidunt fugiat explicabo at, alias. Minima quisquam alias ipsa esse saepe explicabo vel, sed modi incidunt commodi corporis ullam soluta, consequuntur optio. Aut facilis nam, eius, cum autem commodi libero tempora quisquam illum hic, quia tenetur! Mollitia, quas nisi ab, autem optio explicabo inventore. Ipsum voluptate ab magnam consequatur commodi nesciunt. Quae ex rerum sint quod, suscipit, doloremque corporis explicabo sunt, quasi odio accusantium, totam ullam fugiat distinctio soluta aliquam eos? Debitis nisi ab iusto dolores laboriosam natus, assumenda similique aliquam mollitia ea, libero quibusdam sint doloribus. Blanditiis, tempora, obcaecati. Eveniet distinctio, amet quidem non tempore expedita repellendus. Ab nobis, enim totam quae, fuga, ullam porro libero nemo deleniti eveniet obcaecati quasi? Quis vel voluptatum ipsa hic, possimus obcaecati laudantium aspernatur et. Fuga explicabo nobis quae pariatur doloremque natus id, perferendis corporis velit beatae consequuntur consequatur vero harum repudiandae nesciunt porro incidunt sit, ex, animi impedit dolorem deserunt molestiae, provident. Neque, nihil sunt voluptates.
</div>
local: the background image is fixed relative to the element but scrolls with element itself (thus scrollable relative to browser's window). Demo
.box{
width: 400px;
height: 1000px;
background-color: #f2f2f2;
overflow: scroll;
background-image: url(http://i.imgur.com/9onLIRX.jpg);
background-attachment: local;
background-size: cover;
}
<div class="box">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt aperiam distinctio doloribus odio mollitia inventore ipsa necessitatibus alias ab, harum et dolorum iusto hic vel? Nobis tempora consequuntur ab, omnis quisquam nihil! Quod repudiandae provident mollitia architecto placeat nostrum, accusamus, non praesentium consequatur delectus tempore. Placeat aspernatur consequatur praesentium, exercitationem doloribus vel cum vitae in ducimus maiores, fugit repudiandae accusamus, quaerat, commodi explicabo eius beatae culpa distinctio! Eaque maxime dolorum ad nostrum cupiditate temporibus, doloribus, esse voluptatem minus explicabo cum atque sit adipisci quis magnam ea! Et pariatur nobis ad odit, nihil sunt nostrum unde ipsum, eligendi voluptatem libero nemo laudantium accusamus, tenetur atque. Totam reiciendis eveniet, dolorem cumque asperiores repellat vero. Inventore ducimus ratione vitae dolores alias ex officiis hic, quaerat voluptatibus nisi officia numquam quasi odio itaque repellat cumque animi, eius quod ipsum harum temporibus earum, ipsa illo libero. Odit nostrum fugiat aliquid porro labore blanditiis dolore quisquam accusantium voluptatibus minima voluptate itaque, a consequuntur aperiam sapiente quidem molestiae tenetur atque quia ducimus! Deleniti libero id laudantium! Deleniti, quos corporis unde consectetur vel possimus sed quidem aliquid ipsam mollitia alias id sapiente esse. Hic impedit, laudantium fugit adipisci commodi quaerat nihil tempore, eligendi explicabo beatae magni maiores ratione vel dolores omnis aperiam rerum corporis distinctio, cumque, repellat ducimus. Nisi, mollitia nostrum obcaecati ipsum quis repudiandae harum, nemo ex incidunt ipsam explicabo repellendus suscipit laboriosam accusamus, nihil tenetur quos. Totam modi velit sed ipsa consequatur quaerat excepturi iusto nesciunt quo maxime sint facilis officiis, eveniet quis libero possimus molestiae veniam harum illum quam assumenda dolorem nam voluptatum! A eligendi perferendis cum iusto! Possimus, neque! Recusandae nobis ut minima facilis quae, itaque vitae, magnam ea eum ab aliquid, ipsum porro laboriosam expedita nulla doloribus sit! Sunt ullam molestiae nulla maxime quis veniam rem at? Similique quidem commodi ducimus libero debitis ipsum expedita recusandae, suscipit minima eius obcaecati illum fugit, neque consequuntur iste iure rem iusto blanditiis eos vel velit perferendis unde sed. Voluptas non, minus placeat itaque animi facere numquam dolorem nisi, molestiae tenetur rem aliquam praesentium modi inventore et aut corrupti magni dolorum ipsam sequi incidunt fugiat explicabo at, alias. Minima quisquam alias ipsa esse saepe explicabo vel, sed modi incidunt commodi corporis ullam soluta, consequuntur optio. Aut facilis nam, eius, cum autem commodi libero tempora quisquam illum hic, quia tenetur! Mollitia, quas nisi ab, autem optio explicabo inventore. Ipsum voluptate ab magnam consequatur commodi nesciunt. Quae ex rerum sint quod, suscipit, doloremque corporis explicabo sunt, quasi odio accusantium, totam ullam fugiat distinctio soluta aliquam eos? Debitis nisi ab iusto dolores laboriosam natus, assumenda similique aliquam mollitia ea, libero quibusdam sint doloribus. Blanditiis, tempora, obcaecati. Eveniet distinctio, amet quidem non tempore expedita repellendus. Ab nobis, enim totam quae, fuga, ullam porro libero nemo deleniti eveniet obcaecati quasi? Quis vel voluptatum ipsa hic, possimus obcaecati laudantium aspernatur et. Fuga explicabo nobis quae pariatur doloremque natus id, perferendis corporis velit beatae consequuntur consequatur vero harum repudiandae nesciunt porro incidunt sit, ex, animi impedit dolorem deserunt molestiae, provident. Neque, nihil sunt voluptates.
</div>
After reading the docs and clicking through the accepted answer's demos, I still felt confused. Sometimes you just want a jargon-free explanation!
CSS-Tricks to the rescue! 🎉
Either ☝️click this link, or 👇click the Run code snippet button for a superior demo.
Note: As you explore the demos, pause between clicks. Sometimes you need to give the browser a chance to figure out which thing it's going to scroll based on whether you're hovering over an image or the surrounding whitespace.
The rules, paraphrased
scroll — The background image travels with the page, no matter what.
fixed — The background image doesn't travel with anything. Feels kinda parallaxy.
local — The background image travels with whatever's under the current mouse position.
Tip: for each case…
1. Scroll over the white border.
2. Now stop, move the cursor over an image. Pause, then scroll.
Enjoy!
#import "compass/css3";
h2 {
text-align: center;
margin-top: 48px;
}
div {
height: 200px;
width: 50%;
max-width: 600px;
margin: 32px auto;
overflow-x: hidden;
overflow-y: scroll;
}
.with-image {
background: url('https://loremflickr.com/320/240/flower');
}
.content {
height: 400px;
width: 100%;
font-size: 3rem;
color: #ddd;
}
.extra-space {
margin-bottom: 50px;
}
<h2><code>scroll (default)</code></h2>
<div style="background-attachment: scroll;" class="with-image">
<div class="content">
scroll scroll scroll scroll scroll scroll scroll scroll scroll scroll
</div>
</div>
<div>Background fixed to the page's scrollview</div>
<h2><code>fixed</code></h2>
<div style="background-attachment: fixed;" class="with-image">
<div class="content">
fixed fixed fixed fixed fixed fixed fixed fixed fixed fixed
</div>
</div>
<div>Background fixed to the immobile window/viewport</div>
<h2><code>local</code></h2>
<div style="background-attachment: local;" class="with-image">
<div class="content">
local local local local local local local local local locala
</div>
</div>
<div>Background fixed to the element's scrollview (moves with other contents)</div>
<br class="extra-space">

Resources