That page is a little misleading in places.
In the section on Limitations it notes: “Some noted disadvantages of using “pure” CSS include:”… but doesn’t explain “as opposed to what”?
They can only be limitations if they can be done better and easier by other methods (e.g. tables). If I make a new car that can drive at 200mph then I could say the disadvantage is that it doesn’t go at 300mph
For example:
Selectors are unable to ascendCSS offers no way to select a parent or ancestor of an element that satisfies certain criteria.
Tables can’t ascend either. Scripting can target the parent but scripting can’t make the monitor swivel automatically or fly off the ground. It seems a senseless comment as there are many other things that css can’t do. It’s called cascading style sheets for a reason not “floating upstream without a paddle”.
Cannot explicitly declare new scope independently of position Scoping rules for properties such as z-index look for the closest parent element with a position:absolute or position:relative attribute.
That is just plain incorrect as positioned elements get z-index of auto by default and the z-index of children are not trapped by their positioned parent unless that has a z-index applied other than auto. (Older IE gets this wrong which is probably where they got the error from but has nothing to do with css itself)
Simple tasks, such as … getting a footer to be placed no higher than bottom of viewport, either require complicated and unintuitive style rules, or simple but widely unsupported rules.
Tables can’t do this either which brings me back to my first question. How can this be a limitation when nothing else can do it either (apart from scripting).
Of course it can be done in CSS because I did it back in 2002 when it was actually a lot easier to implement than the current version.
With the current CSS, the process is often done using floating elements, which are often rendered differently by different browsers, different computer screen shapes, and different screen ratios set on standard monitors.
Floats are pretty consistent across all browsers apart from old versions of IE.
Pseudo-class dynamic behavior not controllable CSS implements pseudo-classes that allow a degree of user feedback by conditional application of alternate styles. One CSS pseudo-class, “:hover”, is dynamic (equivalent of javascript “onMouseOver”) and has potential for abuse (e.g., implementing cursor-proximity popups),[30] but CSS has no ability for a client to disable it (no “disable”-like property) or limit its effects (no “nochange”-like values for each property).
Wrong a user stylesheet can control all those.
I just find the limitation section rather misleading as it is assuming that all these things are possible more easily by other methods and they are not.