Тест вашего примера кода (добавление подходящего элемента div с идентификатором вокруг него), кажется, работает нормально:
http://jsfiddle.net/44ndf/1/
Его стиль по умолчанию, конечно, будет таким же, как и якорь, поэтому вам, возможно, придется переопределить все обратно на нормальное. Вам нужно будет предоставить работающий (или, точнее, неработающий) образец, чтобы мы могли точно определить суть вашей проблемы.
В заключение, хотя вещи для проверки включают в себя:
1) То, что ваши селекторы определенно указывают на правильные элементы (например, в вышеупомянутом я должен был включить div с id "leftNav", чтобы селектор поднял его
2) То, что у вас определенно нет конфликтующих стилей - возможно, что-то с более высоким приоритетом или, возможно, что-то с! Важный, переопределяющим.
3) Используйте Firebug, чтобы точно определить, какие стили применяются из каких селекторов CSS, чтобы определить, в чем заключаются ваши проблемы.
Edit:
В случае подчеркивания кажется, что невозможно (или, по крайней мере, так, как я нашел) переопределить стиль. Поэтому вместо этого я немного изменил разметку:
http://jsfiddle.net/44ndf/2/
<a href="#"><span>A </span><span class="subTitle">Subtitle</span></a>
С помощью этой разметки вы можете установить стили следующим образом:
#leftNav ul li a span.subTitle
{
text-decoration: none;
}
#leftNav ul li a span
{
text-decoration: underline;
}
#leftNav ul li a
{
text-decoration: none;
}
Это в основном говорит якору не иметь подчеркивания. Все промежутки должны иметь подчеркивания, а затем ваш диапазон субтитров не иметь подчеркивания. Очевидно, вам нужно убедиться, что каждый знак, который хочет подчеркнуть, находится в промежутке (все, что не в промежутке, не будет подчеркнуто).
Для меня это выглядит как ошибка браузера, так как IE, кажется, ведет себя хорошо - http://jsfiddle.net/44ndf/5/ не подчеркивает субтитры в IE, но делает это в Firefox. Я подозреваю, что есть некоторые специальные замечания, которые подчеркивают, что якоря не отменяются.