I have a page that presents a long article for comfortable reading. I would like to break the text into columns on wide screens, but I don't want to make users scroll all the way to the bottom of the page and then back up to the top again after finishing each column.

Is there a way, without using JavaScript, to automatically split the article into vertical sections ('pages') that are short enough to fit entirely within the viewport? Here's some ASCII art to illustrate:

```
+-------------------------------------------------------------+
|                       === Some Title ===                    |
|                                                             |
| You think water moves fast?    it out. Now we took an oath, |
| You should see ice. It moves   that I'm breaking now. We    |
| like it has a mind. Like it    said we'd say it was the     |
| knows it killed the world      snow that killed the other   |
| once and got a taste for       two, but it wasn't. Nature   |
| murder. After the avalanche,   is lethal but it doesn't     |
| it took us a week to climb     hold a candle to man.        |
| out. Now, I don't know                                      |
| exactly when we turned on      Like you, I used to think    |
| each other, but I know that    the world was this great     |
| seven of us survived the       place where everybody lived  |
| slide... and only five made    by the same standards I did, |
+-------------------------------------------------------------+
| then some kid with a nail     Dr. Wu inserted a gene that   |
| showed me I was living in     makes a single faulty enzyme  |
| his world, a world where      in protein metabolism. The    |
| chaos rules not order, a      animals can't manufacture the |
| world where righteousness is  amino acid lysine. Unless     |
| not rewarded. That's Cesar's  they're continually supplied  |
| world, and if you're not      with lysine by us, they'll    |
| willing to play by his rules, slip into a coma and die.     |
| then you're gonna have to pay                               |
| the price.                    Do you see any Teletubbies in |
| The lysine contingency -      here? Do you see a slender    |
| it's intended to prevent the  plastic tag clipped to my     |
| spread of the animals is case shirt with my name printed on |
| they ever got off the island. it?                           |
+-------------------------------------------------------------+

```

The lines represent the height of the viewport. The columns end at the bottom of the viewport and the text flows to the top of the next column, which begins at the top of the viewport. Once that 'page' of text has been read, the user scrolls down to the next one and begins again. This allows the text to be split into columns without requiring lots of extra scrolling. On a large screen, the 'pages' would be tall, but on a small screen they would be short enough to fit within the viewport.

A good solution doesn't have to be perfectly semantic, but shouldn't require any JavaScript.