I think your 'semantics' arugment may be confusing two orthogonal sets of semantics, but I do see where you're coming from.

We're well off-topic so I'm keeping this brief, but feel free to follow up off-list if you want to discuss further.

L.

Frank W. Zammetti wrote:

On Wed, September 14, 2005 6:35 am, Laurie Harper said:

I never said you *shouldn't* use 'class' to style elements :-)


True enough :)


That's the right answer when you want to apply the same set of styles to
multiple elements (although even without the 'class' attribute here,
you'd still only need to define one rule in the stylesheet... it would
just jave 3 selectors).


Yeah, that's true.  Even still though, 3 selectors feels like a little
more complexity than there needs to be.  I suppose it's like preferring
a++; over a=a+1; ... neither is complicated by any stretch, but the
postfix just seems slightly cleaner.  I know some people feel the exact
opposite though, so I'm coming down to personal preference, not the basis
of a strong argument :)


Specifically, the first sentence of the last paragraph:

"The use of ID is appropriate when a style only needs to be applied once
in any document."

That's another way of saying what I was trying to say above :)

Note that there's no corollary there that this is in any way
inappropriate, though. If I only *want* to apply styles to one element
in the document, this is the way to do it.


Yes, I definitely agree there is nothing saying that is inappropriate.  I
would still make the argument however that it semantically doesn't feel
right... it's almost as if instead of saying:

class B extends A { }

...I instead did something like:

B b(extendsA) = new B();

That's of course not real syntax, but pretend it is :)  What I'm trying to
say is that it's almost like I'm tying what class B extends into the
identification of an instance of B.  That's what using the ID feels like
to me.


There's a difference between class and style, though. Class and ID are
two different 'hooks' by which you can associate style with (one or
more) elements. CSS provides all sorts of selectors besides class
selectors, after all.


True enough :)


'id' is guaranteed unique in any valid document, whereas 'class' is
(obviously) not. So, if I know that the thing I want to style should
occur exactly once (for example, a title at the start of an article) I
can assign it an ID. By attaching styles via the ID, I can be sure those
styles will never be applied anywhere else in the document, because the
ID must be unique. If it's not, I'll get an error when I validate the
document.

On the other hand, if I use 'class' instead of 'id', that class could be
re-used elsewhere in the document. That won't be caught by validation,
or anything else but visual inspection of the result.


Ah, gotcha.


OK, so it probably not something you care about very often ;-) My point
was just that, while IDs must be unique and that uniqueness is checked
during validation, no such restriction applies to 'class'.


Makes sense.  Yeah, I'm not sure how often it would come up, but if
someone knew it would be a concern, and I could see where it might be if
you have a lot of page designers working in parallel, you might be able to
convince me on this basis.


Heh :) Have you had any experiences where using CSS ID selectors was
actually bad, or caused problems?


No, I can't say that I have.

Ok, I will amend my original comment after this discussion...

It's considered a bad practice, but only by me :)  And not for any real,
concrete technical reasons, just because it doesn't quite *feel* right :)


L.


(F)rank :)


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to