Sticky problem caused by default content overflow?

4 hours ago 3
ARTICLE AD BOX

Goal: a simple content-on-right-menu-on-left grid layout where the menu sticks to the bottom of the sidebar. But the final project requires the main content to overflow to the right, sometimes quite far.

The simple and obvious worked fine in desktop browsers. Then I went to check things in responsive mode (in FF and Edge, numbers here are from iPad Mini presets). There, grid-template-column: 12em auto; still works fine. But I'll have to breach the right edge of the viewport. Replace auto with anything that makes the grid wider than the viewport, and the sticky goes haywire, inconsistently between browser emulators. 12em 80% creates a second sticky point ~3em higher or lower (depending on browser emulator). Scrolling up, it will stick at one; scrolling down, it will stick at the other (directions and positions reversed in the other browser). If I add, say, a 20em empty row to the grid, the menu will still catch the bottom of its cell as expected, and in the correct position, even though it was in the wrong position until then. 12em 100% does the same, but with a difference of ~16em instead of ~3em. At 12em 200% it seems that sticky stops working completely and there's an almost-viewport-height whitespace below the grid. In Firefox emulation, the menu starts at the bottom of the viewport, but scrolls as if not sticky. In Edge emulation, the menu starts at the bottom of the grid, scrolling as if not sticky.

Something similar happens when playing instead with, say, the h1 font-size and nowrap until the text flows past the edge, the effect varying with the length of overflow. I'll stick to the grid size issue, here. But there might be a clue in that.

I'm aware of issues with sticky and overflow. But I haven't set overflow anywhere, and the stickiness still works in a range of cases. I tried looking for browser bug reports, but came up empty. And I have problems with two unrelated browsers, anyway.

Why does the stickiness starts behaving oddly with even a little horizontal overflow, and then stop completely when the whitespace issue also appears?

I'll put down a minimal version of the HTML/CSS here. But the Snippet might not show the problem. The HTML has a bunch of "content" to fill out the page.

body { margin: 0; padding: 0; display: grid; /* grid-template-columns: 12em auto; */ /* grid-template-columns: 12em 80%; */ grid-template-columns: 12em 100%; /* grid-template-columns: 12em 150%; */ /* grid-template-columns: 12em 200%; */ grid-template-areas: "sidebar page"; } .menu { grid-area: sidebar; align-self: end; } .content { grid-area: page; align-self: start; } .menu { position: sticky; bottom: 0em; } <!DOCTYPE html> <html lang="en-CA" dir="ltr"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="style1.css" /> <title>Max Default</title> </head> <body> <nav class="menu"> <ol> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li><li>Menu Item</li> <li>Menu Item</li><li>Menu Item</li> </ul> </nav> <main class"content"> <h1>The Title of the Article on This Page</h1> <h2>Chapter 1 (Probably)</h2> <p>One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me? " he thought.</p> <p>It wasn't a dream. His room, a proper human room although a little too small, lay peacefully between its four familiar walls. A collection of textile samples lay spread out on the table - Samsa was a travelling salesman - and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in a nice, gilded frame. It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that covered the whole of her lower arm towards the viewer.</p> <p>Gregor then turned to look out the window at the dull weather. Drops of rain could be heard hitting the pane, which made him feel quite sad. "How about if I sleep a little bit longer and forget all this nonsense", he thought, but that was something he was unable to do because he was used to sleeping on his right, and in his present state couldn't get into that position. However hard he threw himself onto his right, he always rolled back to where he was.</p> <h2>Chatper 2 (Note: <em>not</em> "Chapter")</h2> <h3>Because It's Just a Test Heading</h3> <p>He must have tried it a hundred times, shut his eyes so that he wouldn't have to look at the floundering legs, and only stopped when he began to feel a mild, dull pain there that he had never felt before. "Oh, God", he thought, "what a strenuous career it is that I've chosen! Travelling day in and day out.</p> <p>Doing business like this takes much more effort than doing your own business at home, and on top of that there's the curse of travelling, worries about making train connections, bad and irregular food, contact with different people all the time so that you can never get to know anyone or become friendly with them. It can all go to Hell!</p> <p>"He felt a slight itch up on his belly; pushed himself slowly up on his back towards the headboard so that he could lift his head better; found where the itch was, and saw that it was covered with lots of little white spots which he didn't know what to make of; and when he tried to feel the place with one of his legs he drew it quickly back because as soon as he touched it he was overcome by a cold shudder. He slid back into his former position. "Getting up early all the time", he thought, "it makes you stupid.</p> <h3>H3 without an H2 Preceding</h3> <p>You've got to get enough sleep. Other travelling salesmen live a life of luxury. For instance, whenever I go back to the guest house during the morning to copy out the contract, these gentlemen are always still sitting there eating their breakfasts. I ought to just try that with my boss; I'd get kicked out on the spot. But who knows, maybe that would be the best thing for me.</p> <p>If I didn't have my parents to think about I'd have given in my notice a long time ago, I'd have gone up to the boss and told him just what I think, tell him everything I would, let him know just what I feel. He'd fall right off his desk! And it's a funny sort of business to be sitting up there at your desk, talking down at your subordinates from up there, especially when you have to go right up close because the boss is hard of hearing.</p> <p>Well, there's still some hope; once I've got the money together to pay off my parents' debt to him - another five or six years I suppose - that's definitely what I'll do. That's when I'll make the big change. First of all though, I've got to get up, my train leaves at five. " And he looked over at the alarm clock, ticking on the chest of drawers. "God in Heaven! " he thought. It was half past six and the hands were quietly moving forwards, it was even later than half past, more like quarter to seven. Had the alarm clock not rung?</p> <p>He could see from the bed that it had been set for four o'clock as it should have been; it certainly must have rung. Yes, but was it possible to quietly sleep through that furniture-rattling noise? True, he had not slept peacefully, but probably all the more deeply because of that. What should he do now? The next train went at seven; if he were to catch that he would have to rush like mad and the collection of samples was still not packed, and he did not at all feel particularly fresh and lively.</p> <p>And even if he did catch the train he would not avoid his boss's anger as the office assistant would have been there to see the five o'clock train go, he would have put in his report about Gregor's not being there a long time ago. The office assistant was the boss's man, spineless, and with no understanding. What about if he reported sick? But that would be extremely strained and suspicious as in fifteen years of service Gregor had never once yet been ill.</p> <p>His boss would certainly come round with the doctor from the medical insurance company, accuse his parents of having a lazy son, and accept the doctor's recommendation not to make any claim as the doctor believed that no-one was ever ill but that many were workshy. And what's more, would he have been entirely wrong in this case? Gregor did in fact, apart from excessive sleepiness after sleeping for so long, feel completely well and even felt much hungrier than usual. One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.</p> <p>He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me? " he thought. It wasn't a dream. His room, a proper human room although a little too small, lay peacefully between its four familiar walls.</p> <p>A collection of textile samples lay spread out on the table - Samsa was a travelling salesman - and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in a nice, gilded frame. It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that covered the whole of her lower arm towards the viewer. Gregor then turned to look out the window at the dull weather. Drops of rain could be heard hitting the pane, which made him feel quite sad.</p> <p>"How about if I sleep a little bit longer and forget all this nonsense", he thought, but that was something he was unable to do because he was used to sleeping on his right, and in his present state couldn't get into that position. However hard he threw himself onto his right, he always rolled back to where he was. He must have tried it a hundred times, shut his eyes so that he wouldn't have to look at the floundering legs, and only stopped when he began to feel a mild, dull pain there that he had never felt before. "Oh, God", he thought, "what a strenuous career it is that I've chosen!</p> <p>Travelling day in and day out. Doing business like this takes much more effort than doing your own business at home, and on top of that there's the curse of travelling, worries about making train connections, bad and irregular food, contact with different people all the time so that you can never get to know anyone or become friendly with them. It can all go to Hell!</p> <p>"He felt a slight itch up on his belly; pushed himself slowly up on his back towards the headboard so that he could lift his head better; found where the itch was, and saw that it was covered with lots of little white spots which he didn't know what to make of; and when he tried to feel the place with one of his legs he drew it quickly back because as soon as he touched it he was overcome by a cold shudder. He slid back into his former position. "Getting up early all the time", he thought, "it makes you stupid. You've got to get enough sleep. Other travelling salesmen live a life of luxury.</p> <p>For instance, whenever I go back to the guest house during the morning to copy out the contract, these gentlemen are always still sitting there eating their breakfasts. I ought to just try that with my boss; I'd get kicked out on the spot. But who knows, maybe that would be the best thing for me. If I didn't have my parents to think about I'd have given in my notice a long time ago, I'd have gone up to the boss and told him just what I think, tell him everything I would, let him know just what I feel. He'd fall right off his desk!</p> <p>And it's a funny sort of business to be sitting up there at your desk, talking down at your subordinates from up there, especially when you have to go right up close because the boss is hard of hearing. Well, there's still some hope; once I've got the money together to pay off my parents' debt to him - another five or six years I suppose - that's definitely what I'll do. That's when I'll make the big change. First of all though, I've got to get up, my train leaves at five. " And he looked over at the alarm clock, ticking on the chest of drawers. "God in Heaven! " he thought. It was half past six and the hands were quietly moving forwards, it was even later than half past, more like quarter to seven.</p> </main> </body> </html>
Read Entire Article