Реферат: Навигация в списках и блочные ссылки

А вот стиль для такого эффекта (я добавил отступ у списка, чтобы граница подсвеченной ссылки не сливалась с границей списка):

<style>

ul {border:1px solid black; width:35%; padding:1em; margin:1em;}

ul li {list-style:none;}

ul li a {text-decoration:none; color:blue; display:block; border-width:0 0 1px 0.5em; border-style:solid; border-color:white}

ul li a:hover {color:red; border-color:#00f}

</style>

Похожего эффекта (маркер слева при выбранной ссылке) можно достичь с помощью ul li:hover {list-style:square}, но на даный момент это не сработает почти ни в одном браузере (в NS7, например, работает, а в NS6 - нет).

Рисуем кнопку

Вернемся на исходные позиции: представьте, что мы захотели оформить навигацию в виде кнопок (мне лично такой стиль не кажется привлекательным, но он бесспорно достоин обсуждения). Кнопка - это то, что покрашено серым цветом, выпукло и вдавливается. Все это вполне осуществимо с помощью CSS.

Я нарочно не хочу использовать сложных средств вроде малоизвестных border-style, и никогда не пользуюсь ими, поскольку они не слишком надежны: многие браузеры и с border-style:solid справляются с трудом. Все, что мне нужно - это solid рамка да небольшой padding.

<style>

ul {border:1px solid black; width:35%; padding:1em; margin:1em;}

ul li {list-style:none; margin:1px;}

ul li a {text-decoration:none; color:black; display:block; border-width:1px; border-style:solid; border-color:#eee #666 #666 #eee; background:#ccc; padding:2px 3px 3px 2px;}

ul li a:hover {color:black; border-color:#666 #eee #eee #666; padding:3px 2px 2px 3px;}

</style>

Тут нет ничего сложного: изменение цвета границы создает эффект нажимания кнопки, а изменение отступов необходимо для того, чтобы текст двигался вместе с "поверхностью кнопки", а не повисал в воздухе (к сожалению, в Opera изменение отступов отработано не будет, поэтому css-кнопки в ней выглядят немного хуже, чем в прочих браузерах). Кто-то сочтет мои комбинации цветов или размеры отступов неоптимальными - что ж, тут, как и в других эффектах, есть место фантазии.

Экстремальное вождение

Еще несколько идей, для тех, кто любит экспериментировать и не заботится о совместимости: стили, которые не сработают в большинстве браузеров.

Стиль, основанный на content'е. Это более требовательная (и более мощная) версия эффекта с передвигающимся маркером. Можно описывать свойство content для псевдоклассов :before и :after активной ссылки, добавляя маркер произвольного вида перед ссылкой или после нее.

Перенос на другую сторону. Несложный эффект, практическое применение которого, увы, исключено из-за глюка в MSIE, который я описывал в начале: изменять по :hover атрибут text-align, перенося активную ссылку слева направо (или наоборот). В Explorer'е вызывает хаотическое прыгание текста из стороны в сторону, если при переносе текст выходит из под курсора.

Игры с li:hover. Работает только с новейшими браузерами (все проверить не могу, но в NS6, как я уже говорил, не работает). Ключевой плюс - возможность менять маркер: его форму, цвет, расположение. Кстати, замечание: маркер, расположенный inside, принципиально конфликтует с a {display:block}, особенно перемены с outside на inside и обратно. Во всяком случае, мне не придумать эффект, в котором бы они разумно соседствовали. А вообще, на подходе XHTML2.0, где ссылками можно будет делать сами элементы списка, не вставляя в них <A>. Вот тогда-то и повеселимся.

К-во Просмотров: 303
Бесплатно скачать Реферат: Навигация в списках и блочные ссылки