At 01:11 AM 1/7/2006, Rahul Gonsalves wrote:
>>>[1] http://www.littleandreid.com/mentaidyn/about
>>>
>>><ul class="mainnav">
>>><li><a href="/" id="menu_default"><span>Home</span></a></li>
>>><li><a href="about" class="active"
>>>id="menu_about"><span>About</span></a></li>
>>>[--more links--]
>>></ul>
>>>
>>>Now, I want to assign the class "Active" to have the different
>>>background. What should I do? This changes from page to page,
>>>dynamically, so I can't use the ID property.
>>
>>Actually, you can. IDs can be used once PER PAGE. So long as you
>>use the ID only once on each page (which should be the case in this
>>situation, unless I am badly misunderstanding you),
>
>Yup. :-)
>
>But that's because I was unclear about _what_ I want to do. I want
>the active link to be highlighted with a different colour from the other links.
So I assumed.
>The "active" class is generated dynamically by the CMS. Therefore,
>by just adding the .active class in my global CSS, each page now has
>the active link highlighted.
Yes, but you had a specificity problem using just ".active" as your
selector, correct?
>I can't see how I would use the ID class, unless I wrote a little
>CSS header for each page, with the background for the currently
>active ID specified. Not my idea of fun, even on the admittedly
>small site, as above.
Uh, oh. Now we're in trouble. The phrase "ID class" doesn't really
make sense. Let me see if I can clarify with example code, again,
mostly so newbies checking the archives can follow along. Your HTML
(as noted above) had this:
<li><a href="about" class="active"
id="menu_about"><span>About</span></a></li>
The class="active" part is generated by your CMS, and you presumably
had something in your global CSS file that said something like this:
.active {background-color: foo;}
Your original problem was that this selector was not sufficiently
specific to override your other declarations for the anchor. I am
suggesting that your content management system should generate
something like this, instead:
<li><a href="about" id="active"
id="menu_about"><span>About</span></a></li>
Note we have just changed the class="active" to id="active". Your
global CSS file would then include something like this:
ul li a#active {background-color: foo;}
You should have only one active link per page, so this is legal in
CSS/HTML terms, and it makes your selector a whole level of
specificity higher. See
<http://www.w3.org/TR/CSS21/cascade.html#specificity> for more information.
There is at least one CMS system that doesn't like to generate
elements with ID attributes. However, that is a flaw with the CMS,
not with this use of an ID in this situation.
Perhaps that is more clear.
-Adam Kuehn
______________________________________________________________________
css-discuss [EMAIL PROTECTED]
http://www.css-discuss.org/mailman/listinfo/css-d
List wiki/FAQ -- http://css-discuss.incutio.com/
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/