Вопросы о JavaScript и вертикальной многоуровневой панели навигации

#javascript #html #css

#javascript #HTML #css

Вопрос:

Возможно ли создать вертикальную многоуровневую панель навигации, используя только CSS и БЕЗ использования JavaScript?

Как здесь:

http://www.dhtmlgoodies.com/scripts/slidedown-menu2/slidedown-menu2.html#

Я пытаюсь избегать использования JavaScript, потому что в современных браузерах есть опция, которая может отключать коды JavaScript. Я не хочу, чтобы мои веб-страницы были повреждены из-за этих настроек. Должен ли я вообще думать об этом? Или я должен просто использовать JavaScript в любом случае?

Я надеялся использовать для этого только CSS, хотя я не уверен, достаточно ли для этого CSS.

РЕДАКТИРОВАТЬ: Кстати, есть ли CSS-селектор при нажатии на <a> тег? Что-то вроде ‘a:click’. Я знаю только: hover.

Комментарии:

1. Вы можете использовать CSS для создания многоуровневых меню в любом направлении / методом, но без JS вы не сможете создавать какие-либо необычные эффекты, такие как скольжение.

2. Функции, которые позволяют использовать некоторые элементы CSS3, которые вы захотите использовать, не в полной мере присутствуют в устаревших браузерах, таких как IE6 / 7 / 8.

Ответ №1:

Вы не сможете создать какую-либо анимацию, подобную этому примеру, если только вы не используете анимации CSS3, и в этом случае у вас будет МЕНЬШЕ поддержки, чем если бы вы использовали JavaScript.

На моем месте я бы просто использовал JavaScript для этого. Если пользователь отключил ее, он все равно получит меню, но не анимацию (если вы правильно ее закодируете).

Комментарии:

1. Означает ли это, что JavaScript используется (или должен использоваться) в основном только для небольших анимаций?

2. JavaScript можно использовать не только для анимации. С учетом сказанного, его можно использовать для небольших анимаций, подобных этой. Вопрос, который следует задать себе: нужна ли анимация этому меню для функционирования?

3. Не обязательно, хотя я бы хотел. 🙂 Лично я думаю, что если в примерном меню по ссылке выше не будет анимации, не будет ли это сложным (даже раздражающим) в использовании? Я имею в виду, что подменю отображается при наведении курсора мыши. Если для этого есть альтернатива, например, какой-нибудь «a: click»

4. Это вопрос, который вы должны задать — пострадает ли пользовательский интерфейс, если я не добавлю это? Также, в качестве некоторой пищи для размышлений, у Yahoo есть статистика, которая показывает, что в США у 2% их посетителей отключен JS, а за пределами США — около 1%. Сколько будет 1 или 2% ваших посетителей?

5. На самом деле я не думаю, что «обычные» пользователи отключают свой JavaScript. Я просто не хочу никаких дыр на своих веб-страницах. 🙂

Ответ №2:

Здесь приведено несколько примеров того, что вы можете сделать с помощью CSS:

http://www.cssmenus.co.uk/dropdown.html

Ответ №3:

CSS в основном предназначен для оформления ваших веб-страниц, в то время как JavaScript в основном предназначен для придания им другого поведения и интерактивности.

Тем не менее, CSS3 многое делает, чтобы изменить это. Но, если вам нужна веб-страница с какой-либо кроссбраузерной поддержкой в настоящее время, это не совсем вариант.

Как вы сказали, у пользователей есть возможность отключить JavaScript, что хорошо для безопасности. Это, однако, означает, что вы всегда должны пытаться сделать любой JavaScript дополнительным к вашей странице, чтобы сохранить некоторую функциональность, даже если JavaScript отключен.

Если вам нужны какие-либо интересные эффекты в вашем меню, вам понадобится некоторое сочетание CSS и JavaScript, и если вы определите и примените свои стили в своих документах CSS, а не в своем JavaScript, вы все равно сохраните некоторый уровень удобства использования