Hacker News new | ask | show | jobs
by bct 4588 days ago
You don't need responsive CSS, all you need is max-width.

The (technically) ideal place to solve this is in your browser's user stylesheets (then you can have the page look however you like!), but that's a bad solution right now for obvious reasons (how many people even know that they exist?).

1 comments

User stylesheets will always suck, because the pages you're depending on for your stylesheets to work is a concretion, not an abstraction. You're just going to have constant problems with the user CSS conflicting with the creator's styling.

The right way to do this would involve an evolution in the community where you could easily get the content you need in JSON format or similar. Then you can create your own presentation, or, more likely, subscribe to a site/service that collects user-created presenters.

> easily get the content you need in JSON format or similar

When user stylesheets were conceived this is what HTML was.

JSON is a data format. HTML is a markup language. You don't store data as HTML, because it's not intended to store data, only presentational markup.
> You don't store data as HTML

You do if your data is a document.

And after CSS was introduced, HTML was definitely not supposed to be presentational.

> You do if your data is a document.

A document mixes information with presentation. It's not data. Because it mixes information with presentation, you have to re-prepare it for each medium you intend to display it on.

HTML is a poor document format. If you store your document as HTML, then you also have to store the CSS along with it or it won't be a complete document. Unless you want to include the styling in the HTML file, a kludge which violates the Single Responsibility Principle.

There are plenty of document formats out there that don't have this issue, like PDF or RTF.

If you want your document to look more like data, then what you do is factor out all the atomic bits of information into values that you can then input into a database. Then write code to present it. Works well for structured documents like orders, invoices, or reports, less so for unstructured information like blog posts. For these, mixing presentation with information is unavoidable, just adding bold-face to a word means you'll need to store presentation information in your data. The "semantic web" is intended to address this.

> And after CSS was introduced, HTML was definitely not supposed to be presentational.

Presentation involves more than just style. CSS handles the style of web content, HTML handles the structure.

I'm familiar with the distinction between document and data. I'm talking about a site like a blog, where the document is the data. That was the original context of this conversation, IIRC.

HTML is emphatically not a poor document format, but it satisfies different requirements than PDF and RTF do. The weak connection between structure and what you call "style" (what I would call presentation) is a feature; it allows clients to modify the presentation to suit their needs. If I want a bigger font or higher contrast or a smaller column width, I'm able to do that because of the separation between structure and style.

But (as you rightly pointed out) this is a lot harder than it should be (and harder than it used to be). As a result, when an HTML document doesn't work for someone (due to its presentation) they have to complain to document creators instead of merely configuring their client (once) to suit their needs. This sucks.