#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:
Ответ №3:
CSS в основном предназначен для оформления ваших веб-страниц, в то время как JavaScript в основном предназначен для придания им другого поведения и интерактивности.
Тем не менее, CSS3 многое делает, чтобы изменить это. Но, если вам нужна веб-страница с какой-либо кроссбраузерной поддержкой в настоящее время, это не совсем вариант.
Как вы сказали, у пользователей есть возможность отключить JavaScript, что хорошо для безопасности. Это, однако, означает, что вы всегда должны пытаться сделать любой JavaScript дополнительным к вашей странице, чтобы сохранить некоторую функциональность, даже если JavaScript отключен.
Если вам нужны какие-либо интересные эффекты в вашем меню, вам понадобится некоторое сочетание CSS и JavaScript, и если вы определите и примените свои стили в своих документах CSS, а не в своем JavaScript, вы все равно сохраните некоторый уровень удобства использования