tags:

views:

121

answers:

9

Should we learn all CSS (till version3) even if all browser don't support and we don't use?

Here mentioned http://meiert.com/en/indices/css-properties/ all css properties I don't know about all even in 2.1 , should we learn about each css property of all version even if they are not in use.

I haven't learn about these CSS 2.1 properties.

caption-side
clip
counter-increment
counter-reset
cue
cue-after
cue-before
direction
elevation
orphans
page-break-after
page-break-before
page-break-inside

pause
pause-after
pause-before

pitch
pitch-range
play-during
richness
right

size 
speak
speak-header
speak-numeral
speak-punctuation
speech-rate
stress

table-layout

unicode-bidi

voice-family
+2  A: 

Learn what you need. You can always learn the rest later.

Robert Harvey
A: 

The more you know, the better.
Even if you're not going to use this knowledge right now.
If you don't have the knowledge at all, you're never going to use it.
If it seems useless doesn't seem useful to you right now, don't dive too deep into the details until you need it. But at least try to have heard of it.

The question is, why wouldn't you learn about them?

deceze
Because learning something half-assedly leads us to the current situations with...say...(X)HTML, design patterns (singleton abuse, anyone?), databases that take 150 years to look up a single record cause someone said "Indexes?...Who needs it? The DB will find my data anyway"...and, of course, the weenies creating bad code in every language in existence. Learning half of something can often be worse than not learning it at all.
cHao
@cHao I'd say CSS is a little different in that you can use CSS2 features as you always have and gradually introduce CSS3 features. I see your point though and have clarified my wording a bit. I never meant to say you should learn it half-assed, just that you may not need to learn everything in the list in full detail all at once.
deceze
@chao: yeah.. but in this case its not a complex system, it is individual rules that are either supported, or they aren't. the fundamental ideas of css haven't changed with V3, our toolbox just got a bit bigger.
Matt Briggs
And i should add, just to bring this little rant back to the topic... everyone supports the "normal", everyday properties. The more exotic stuff that no one uses...that's the stuff that's either not implemented, or broken in this browser or that. Unless it's supported in all the major browsers, and consistent across them, it'll take some "hack" to get it to work elsewhere -- and if you're gonna do it some other way there (that works), what's the point if not a slavish devotion to the W3C?
cHao
@Matt: Your toolbox can be as big as you like, but it won't matter if no one can see your work -- or worse, if it breaks because the W3C can't seem to write in plain English.
cHao
@chao: so all major browsers except for IE have supported border-radius for awhile. The current techniques for rounded borders are either use javascript to cram hundreds of divs together of different sizes to create the effect, to have a designer just draw it for you, or use a table with border sprites. The first is not performant and is error prone, the second will break any time any dimensions change, and the third will result in pages that load slowly and have 3-4x the markup they should have. OR use something that all modern browsers support, and will fail gracefully for old browsers.
Matt Briggs
@Matt: If stuff failed gracefully, i'd be all for it. But it's way too common for people to follow the latest new "standard" -- virtually requiring support for it -- then when it looks like crap, say "Yeah...your browser sucks. Get Firefox." (Not just a random example, either. I've heard it more often from FF weenies than anyone else. Even IE weenies.) That's the biggest problem i have with the more exotic stuff, i guess -- not the stuff itself, but the people who use it without caring to make it not look horrid if your browser doesn't support it perfectly. And that, IMO, is just wrong.
cHao
A: 

I have to go with Robert Harvey on learning what you need. However, it would greatly behoove everyone to at least read over all the properties so they can know what is available and they might learn something which will speed up their development.

percent20
A: 

Since CSS3 hasn't really been officially released, I would lean towards no. But some stuff is worth looking at, especially the properties that are likely to be included.

edl
+3  A: 

I would suggest downloading a "cheat sheet" (example) as a reference for those properties that you don't use very frequently rather than attempting to memorize things that you don't use. It's good to try and familiarize yourself with all the capabilities -- I'd suggest looking through tutorials (example, and another, and one more oriented toward design), though, and learning techniques that seem interesting rather than the standard. Eventually, you'll come to be familiar enough with the standards that you rarely need to use your cheat sheet.

tvanfosson
A: 

I'll have to disagree with everyone here. There are a great many css properties that add a really nice touch (text-shadow, box-shadow, border-radius, rgba, gradients, etc), and if the specific browser doesn't support them, will just make things look not quite as nice. Not only that, but a great deal of CSS3 is already supported by everyone except for IE.

It all comes down to what you are doing, and what your target audience is. If it is developers, I wouldn't think twice about using things that are only available with recent versions of firefox, safari, chrome, and opera. If it is a computer tutorial site for the elderly, I would think twice about using a css based div layout.

As soon as you take IE and obsolete browser versions out of the equation, what you can do with css increases dramatically.

All that being said, your list of unknown properties is mostly corner case stuff that I wouldn't bother with.

Matt Briggs
A: 

Many of those properties have very specific use cases. If you're implementing some sort of HTML5 media player (or whatever) and didn't know the specific ones you needed, it would take about a coffee break to learn them enough to fiddle. I wouldn't worry about memorizing anything you can't see an immediate use for, just remember they're there for when the time comes.

mVChr
A: 

I scan the properties occasionally just to be aware of their existence and when they come into being. Then, if something comes up where it can be used, I'll at least be aware of that tool and can then spend some time learning it.

Rob
+1  A: 

To achieve CSS Tao, you must understand something more than a list of syntax. You must learn:

1. Brute force logic will not work. Cross browser quirks, the "C" in CSS, and the lag of Internet Explorer support will make you mad. Understand that CSS is a way and embrace that if something works, you do not necessarily need to know why. Embrace the nuances and accept IE.

2. Learn multiple ways of debugging. I see so many questions on S.O. like "My CSS won't work in IE". Asking S.O. users to debug your code does not teach you how to fish. Debugging is nearly as important as building. Learn several methods, one being, strip everything out and put back a style piece-by-piece, another method is FireBug's real-time adjustments, and another method is temporary inline styles. If you are powerful at debugging, then you can write code quickly.

3. Typically the less amount of CSS you write, the better the code. A primitive to CSS is cascade. If you are not using it, then what is the point. Understand the document object model, the node tree, and place your selectors wisely.

Bonus: Figure out why they are called "sheets" and please leave a comment when you know the answer.

Christopher Altman
Embrace IE? x_x But I really like this answer even though it's not very directed to the question.
ANeves