Show HN: A visual guide to the most popular CSS properties
cssreference.io
cssreference.io
A) How has the web been around for this long and nobody has done this before, i.e. there isn't at least some kind of authoritative reference like this?
B) Having worked with many UI/layout paradigms, and full aware of the fact that none of them are very good - css is indeed perhaps the worst. It takes quite a lot of abstraction on top of it to make sense of it.
But it's what we have - so good work.
* Index of CSS Properties by W3C https://www.w3.org/Style/CSS/all-properties.en.html
* CSS Reference by Mozilla Developer Network https://developer.mozilla.org/en/docs/Web/CSS/Reference
* CSS Reference by Tympanus http://tympanus.net/codrops/css_reference/
* CSS Almanac by CSS-Tricks https://css-tricks.com/almanac/
Even MDN, which is probably the closest thing to 'standard' has very few examples, missing definitions, nothing interactive.
W3C is only really the basic stuff.
Let's face it: the tool we all use for showing our stuff to the world basically has no documentation. It's a mess.
The Mac/Safari documentation is literally blank for tons of objects. I mean - $100B billion in the bank and they can't make docs. Even swift documentation is totally lacking in examples and hard to read (they're still depending on your ability to read Objective-C stuff).
Would be particularly nice to have a direct link to edit every particular property on its section, e. g. https://github.com/jgthms/css-reference/edit/master/property...
Most browsers are OK these days, but IE/Edge is where I've encountered the most problems with compatability. There are ways to work around it, but that takes a bit of additional effort. CSS tools, e.g., Autoprefix are useful.
My comment with browsers, is more about knowing your audience. Most of the evergreen browsers do support flexbox but...
Well, I maintain a website for a company.
97.3% of visitors, are return visitors.
69.77% of the visitors are using a version of Internet Explorer.
69.03% of the visitors are using Internet Explorer 7.0.
I have no hope of getting to use flexbox to simplify managing the website, which makes me very sad.
(By the way, I'm sympathetic with you. When I deployed a big feature in an intranet web application in 2012, it broke for dozens of users, and it took me days to track down the misplaced comma that broke the neck of the IE 7 JS parser.)
However, that particular site is Australian, where Chrome makes up ~50% of traffic.
However, that said, the majority of components I build are still not in flexbox. It's a useful tool in the toolset, but not sure I'd call it the new default yet.
They are supported in all self-updating browsers, so unless you have to support IE<=10 they are safe to use and extremely convenient. Replacing a classic grid-based layout with flexbox saves an astonishing amount of markup. I've been using it exclusively for the last six months or so.
I found this CSSTricks article helpful when I was building my first flexbox layouts: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
- https://css-tricks.com/almanac/ - http://tympanus.net/codrops/css_reference/
For those from React world, there is really awesome component, for rendering large sets of data: https://github.com/bvaughn/react-virtualized.
No it shouldn't. Split up large chunks if it impacts performance.
I'd probably do a full load for the text, with specifying the height for the examples inline, and then lazy-render the examples once they're visible.
The problem with this site is not that it has too much context. Just too much new and crazy styles.
Very lazy on the part of the developer to code it that way.
It would require setting section heights to fixed values so you can know which section is visible and enable and disable styles for them without changing the sites height.
Thanks for the report. Hopefully the author will almost fix it.
And why should it render all examples on one page?
They could have a static page for every property so one could link to http://cssreference.io/align-content instead of http://cssreference.io/#align-content and get just that static page. That should be pretty quick, especially with long caching of all other resources than the actual page content.
There's lots of different ways to have done it without having to do it all at once.
Or, would have complained that it was stupid to actually use an anchor tag to link to god forbid another complete page load.
Or, if they used a javascript framework to make deep links someone would have complained that they used a javascript framework for a static page, or even maybe they used the wrong JavaScript framework.
I took that image from a non-laptop desktop machine, by the way.
You ignored the half of the sentence following the 'or'. To me, that's unfair.
> if the excuse is [...]
It's not an excuse, it's context.
The performance is a low priority compared to the content, when the site is a developer resource.
In many places, perf is still important, and one of the reasons, I believe, that GNU offers its manuals in various formats: [0]
I know of a few devs that work for web, but due to their nations economics, work:
* On a smartphone
* Via a satellite connection
Despite being in a first world country, I've had to do both at various times whilst working from remote areas.
The GNU manuals have a huge wealth of information, but they load fast by following simple-first policies.
caniuse.com is a SPA, but they load damn fast.
I'm not saying that this page is insanely slow, but that it is slow at all is still a surprise.
And not every dev in the world gets to have broadband.
Do all GNU projects keep there documentation i one big file? I wanted to contribute some recently but got lost in a complex help file.
* HTML - entirely on one web page.
* HTML - one web page per node.
* HTML compressed (gzipped tar file) - with one web page per node.
* Info document (gzipped tar file).
* ASCII text compressed (gzipped).
* TeX dvi file (gzipped).
* PDF file.
* Texinfo source (gzipped tar file).
If the one big file (great for grepping) was too confusing, you probably want to opt for HTML, with one file per node. For example, the Sockets/Local Namespace page for glibc: [0]
[0] http://www.gnu.org/software/libc/manual/html_node/Local-Name...
Edit:
And it appears the help files are seperate inside the source code as well. [1]
[1] https://sourceware.org/git/?p=glibc.git;a=tree;f=manual;h=71...
Thanks. It appears that this wasn't the case for make.
That really sucks.
Again, I'm merely replying to the initial comment which was needlessly negative and frankly a tiring trope on HN (rudely criticising something unimportant about the site regardless of its intended use).
If you don't like sub-threads I suggest you get an HN-reader than can collapse comments.
You should consider serving a separate page for each property in addition to one big list. This would be more useful for quick Google lookups.
Changes daily. More work to keep that accurate than to make the page in the first place :(
My other wish to really really learn CSS.... A list of CSS problems to solve ala project Euler. You get a visual example and you have to make it look identical. Then you get to see other solutions for the same problem.
This online book was helpful for me: http://book.mixu.net/css/
But for actual coding people would still Google for css-tricks or stackoverflow because Googling is faster than opening this website and searching.
Ace work on the site!
I would request/suggest an option to have one-per-page display of attributes - currently there's a lot of scrolling if you want to move between things.
Great site though.
Minor bug (?): your lorem ipsum is showing when viewing via http://hn.premii.com/
PS. Note to everyone - whitelist this in your ad blocker as author asks you to do!
How does it compare to table HTML vs. div HTML?
What are the benefits vs. div HTML & Bootstrap .. is it just the new thing to learn?
Flexbox is supported in:
* Internet Explorer 11, but only partially
* Edge 14+
* Firefox 52+ (Everything but buttons in Firefox 50)
* Chrome 51+ (50 had it, but had a bug that still plagues Safari)
* Safari 9.1 (but Safari has a couple huge bugs [1][2])
* Opera 41+
* Safari iOS 9.3+ (but see [1] & [2])
* Every version of Opera mini
* Android Browser 4.4+
* Android Chrome 53+
A great bullet-point list of why not to use tables for layout can be found here [3].
Flexbox is designed to enhance and make easier some of the CSS that we already use today, so they go hand in hand.
As to Bootstrap, as of v4, it will include Flexbox as an opt-in option (in case you support old browsers where it wouldn't work). [4]
[0] http://caniuse.com/#search=flexbox
[1] https://bugs.webkit.org/show_bug.cgi?id=136041
[2] https://bugs.webkit.org/show_bug.cgi?id=137730
[3] http://phrogz.net/css/WhyTablesAreBadForLayout.html
[4] http://v4-alpha.getbootstrap.com/getting-started/flexbox/
For me CSS has been largely very unintuitive, and part of that has been because of the adversarial evolutionary race of browsers.