Выпадающий список с ссылками html: Select option с ссылками (JS/JQuery)

html — Выпадающие меню по клику (без JS)

Вопрос задан

Изменён 5 лет 3 месяца назад

Просмотрен 2k раз

Здравствуйте,

Мне нужно сделать выпадающие меню по клику использую только HTML/CSS. В принципе, я его создал, но есть проблема в том что я не использую id, а без него не получилось.

Вопрос: Как сделать такой вариант меню без использования id?

Спасибо!

Код HTML:

<nav>
    <label for="checkbox"><img src="http://placehold.it/59x59" alt="Icon of menu"></label>
    <input type="checkbox">
        <ul>
            <li><a href="#">Страница</a></li>
            <li><a href="#">Страница</a></li>
            <li><a href="#">Страница</a></li>
        </ul>
</nav>
  • html
  • css
  • меню

1

label {cursor: pointer;}
ul {list-style: none;}
. list {display: none;}
.checkbox {display: none;}

.checkbox:checked ~ .list {
  display: block;
}
<nav>
  <label><img src="http://placehold.it/59x59" alt="Icon of menu">
    <input type="checkbox">
 
    <ul>		
      <li><a href="#">Страница</a></li>
      <li><a href="#">Страница</a></li>
      <li><a href="#">Страница</a></li>
    </ul> 
  </label>
</nav>

не самий лутший вариант но я думаю подойдет

Родственные селекторы по своему поведению похожи на соседние селекторы (запись вида E + F), но в отличие от них стилевые правила применяются ко всем близлежащим элементам. К примеру, для селектора h2~p стиль будет применяться ко всем элементам

, располагающихся после заголовка . При этом и

должны иметь общего родителя, так что если

вставить внутрь , то стили применяться уже не будут.

2

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

Переход при выборе пункта из выпадающего списка

Опубликовано Автор: Николай Короткин

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

Нижеприведенный способ отлично подходит для создания элемента навигации по сайту или же как способ выбора альтернативной языковой/географической версии сайта.

В начале вставим в код страницы скрипт, написанный на языке JavaScript, который будет отвечать за переход.

<script language="JavaScript" type="text/javascript">
<!--
function linklist(what){
var selectedopt=what.options[what.selectedIndex]
if (document.getElementById && selectedopt.getAttribute("target")=="new")
window.open(selectedopt.value)
else
window.location=selectedopt.value
}
-->
</script>

В третьей сточке у нас указывается имя функции («linklist» в данном случае), которое можно задать произвольно, главное чтобы не странице не существовало ещё одной функции с таким же именем.

Далее вставляем сам код выпадающего списка.

<form name="menu">
<select name="sel" onChange="linklist(document.menu.sel)">
<option value="#">Выберите раздел для перехода</option>
<option title="Переход на главную страницу (откроется в новом окне)" 
        value="http://www.redsimple.ru/" target="new">Главная страница</option>
<option title="Переход к портфолио по сайтам" value="http://www.redsimple.ru/sites/">Сайты</option>
<option title="Переход к странице с изображениями" value="http://www.redsimple.ru/foto/">Фото</option>
<option title="Переход к архиву ссылок" value="http://www.redsimple.ru/links/">Линки</option>
</select>
</form>

Имя формы (<form name=»имя_формы»>) и имя списка (<form name=»имя_списка» … >) указываются произвольными, главное чтобы были уникальными. Самое важное — не напутать их в параметрах вызова нашей функции перехода. Прописывается вызов в атрибутах списка (вторая строчка):

onChange=»имя_функции(document. имя_формы.имя_списка)»

В нашем случае onChange=»linklist(document.menu.sel)»

Если прописать тэгу элемента (<option>)списка атрибут target=»new», то ссылка будет открываться в новом окне (пятая строчка).

В атрибуте title=»…» указываем всплывающую подсказку для ссылки (точно так же, как для тэга <a>).

Так же можно сделать, чтобы переход по ссылке осуществлялся не сразу, а после нажатия кнопки. Скрипт остается тем же самым:

<script language="JavaScript" type="text/javascript">
<!--
function linklist(what){
var selectedopt=what.options[what.selectedIndex]
if (document.getElementById && selectedopt.getAttribute("target")=="new")
window.open(selectedopt.value)
else
window.location=selectedopt.value
}
-->
</script>

А в коде списка меняем событие OnChange на OnClick

<form name="menu">
<select name="sel">
<option value="#">Выберите раздел для перехода</option>
<option title="Переход на главную страницу (откроется в новом окне)" 
        value="http://www. redsimple.ru/" target="new">Главная страница</option>
<option title="Переход к портфолио по сайтам" value="http://www.redsimple.ru/sites/">Сайты</option>
<option title="Переход к странице с изображениями" value="http://www.redsimple.ru/foto/">Фото</option>
<option title="Переход к архиву ссылок" value="http://www.redsimple.ru/links/">Линки</option>
<input type="button" value="Переход">
</select>
</form>

Ну и конечно же смотрим, чтобы на одной странице не было функций, форм и списков с одинаковыми именами.

И ещё, визуальные редакторы Joomla режут JavaSrcipt, по этому необходимо сохранять материал с этим списком в режиме «Без редактора».

Posted in HTML/xHTML.

Выпадающее меню для ссылки? — HTML и CSS — Форумы SitePoint

Stomme_poes

#5

Ладно, может это форма поиска.

Если они переходят на сайт для варианта А… они могут выбрать его в раскрывающемся списке, и он отправит их на страницу с <Вариант А>. Надеюсь, это прояснит ситуацию, но я считаю, что мне все равно понадобится java.

Если вариант А является URL-адресом, то это все равно гиперссылка. Большинство веб-сайтов разбиты на разные страницы, представляющие разные разделы.

s/java/javascript/g, но в целом это никогда не должно быть необходимым для базовой функциональности сайта… HTTP и HTML делают все необходимое, за исключением динамических обновлений страниц, которые сами по себе являются не чем иным, как улучшением, которое вы можете добавить к уже работающему Настройка HTTP-HTML в любом случае (Hijax, наложение ajax/Javascript поверх рабочей формы).

В любом случае, если предположить, что это форма поиска:

Лично мне нравится PRG, потому что она сохраняет функциональность кнопки «Назад».

Ваша форма является POST-запросом к вашему серверному сценарию и отправляет два значения. Работа бэкэнд-скрипта на самом деле может заключаться не в том, чтобы построить URL-адрес из параметров/значений, если это поиск… возможно, ему придется передать эти значения вашей поисковой функции, я не знаю, что вы настроили. Кстати, я не вижу опции «ничего» в вашем выборе. Это означает, что люди всегда будут отправлять два варианта. Если нужно использовать значение по умолчанию, присвойте ему атрибут selected=»selected». В противном случае создайте другой параметр, установите его первым и присвойте ему то, что ваш скрипт знает как нулевое значение.

В любом случае, независимо от того, что должен делать ваш скрипт, он отправит обратно URL в браузер в качестве ответа, как если бы браузер выполнил GET. Это означает, что если пользователь нажмет кнопку «Назад», то попадет на исходную страницу (и если вы не используете сеансы для хранения того, что они выбрали, то это будет зависеть от браузера, останутся ли выбранные значения выбранными). в виде).

Вот пример вашего HTML

<набор полей> Что делает эта форма
(необязательный div здесь для стиля) <выбрать имя="типполе"> (закрыть необязательный div) (необязательный div здесь для стиля) <выбрать имя="стильполе"> (закрыть необязательный div)

Нужен ли вам атрибут имени в отправке, я полагаю, зависит от того, хотите ли вы, чтобы сама отправка была частью того, что вы отправляете в скрипт. Обычно людям это не нужно, но ребята из PHP могли бы сказать вам наверняка, если бы вы объяснили, что именно вам нужно.

Легенда необходима, если вы используете fieldset с HTML4. Это не требуется, если вы используете XHTML1, хотя это настоятельно рекомендуется. Если у вас уже есть тег заголовка перед формой, объясняющей, что он делает, вы можете обернуть текст внутри легенды и вытащить его за пределы экрана с абсолютным позиционированием.
Что делает эта форма

Ярлыки — это хорошая идея в формах, даже если вам кажется, что функция раскрывающихся списков очевидна. Прежде чем делать такое предположение, проверьтесь на бабушке. Если она знает, отлично: скройте метки за кадром, используя ту же технику abso-po, и используйте атрибут for на метках, чтобы они соответствовали идентификатору выбранных элементов.
Атрибуты имени при выборе должны отправлять значение атрибута value параметров при отправке.

Этот HTML по умолчанию довольно уродлив сам по себе, но CSS может заставить его выглядеть так, как вы хотите (включая удаление за пределы экрана того, что вы не хотите отображать визуально). Элементы div, обернутые вокруг каждой пары метка-выбор, могут упростить стилизацию, поскольку элементы div являются блоками, а метки и элементы выбора являются встроенными (или, в некоторых браузерах, элементы выбора и другие входные данные являются встроенными блоками).

Как твой CSS?

Выпадающее меню ссылок | Developer.com

Поиск


Tehp…

Я не уверен, сколько разных способов я смогу придумывать, чтобы исправлять орфографические ошибки и играть со словом «чаевые».

ОК! Начинаем новую подсказку. Этот совет представляет собой базовое раскрывающееся меню ссылок. Я очень хорошо помню, когда появилась эта форма создания ссылок. Все хотели знать, как это сделать. Из-за этого все сразу попробовали, и множество различных методов заставить выпадающее меню на основе FORM действовать, когда ссылки начали плавать в Интернете. Это очень простой формат. Я думаю, что это хорошо, но просто имейте в виду, что это, безусловно, не единственный способ выполнить работу.

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

Этот формат работает вне фреймов. После версии без кнопок мы снова изменим его, чтобы он работал в формате фреймов, загрузив его URL-адреса в отдельное окно фреймов. По сути, мы собираемся забить это выпадающее меню до смерти.

Вот первая версия Скрипта и его эффект:


Эффект Скрипта



]]>
<ЯЗЫК СКРИПТА="javascript">
функция LinkUp()
{
номер переменной = document.DropDown.DDlinks.selectedIndex;
location.href = document.DropDown.DDlinks.options[число]. значение;
}

<ИМЯ ФОРМЫ="Раскрывающийся список">
<ВЫБЕРИТЕ ИМЯ="DDlinks">
<ВАРИАНТ ВЫБРАН> --> Выберите ссылку <--


Начнем с того, что снова начнем снизу вверх. Вот код HTML, создающий раскрывающийся список и кнопку:


.
<ИМЯ ФОРМЫ="Раскрывающийся список">
<ВЫБЕРИТЕ ИМЯ="DDlinks">
<ВАРИАНТ ВЫБРАН> --> Выберите ссылку <--

Вы уже должны быть хорошо знакомы с форматом раскрывающегося списка. Начнем с установки FORM и присвоения ей имени. Эта форма будет называться

DropDown

. Видите это выше?

Далее мы настроим поле выбора и дадим ему имя. Мы назовем его DDlinks . Все еще со мной?

Первая «опция» будет отображаться, поэтому мы не будем присваивать ей ЗНАЧЕНИЕ. Он отобразит текст:
«–> Выберите ссылку &lt–».

Далее мы начинаем перечислять параметры, которые будут использоваться для создания ссылок. Каждому дается ЗНАЧЕНИЕ, представляющее ссылку, на которую он будет указывать. Теперь у меня есть только это имя страницы, потому что файлы, на которые я ссылаюсь, находятся в одном каталоге. Если вы хотите установить это для ссылок за пределами вашего сайта, просто введите полный URL-адрес для VALUE. Например:


<ОПЦИОНАЛЬНОЕ ЗНАЧЕНИЕ="http://www.yahoo.com">
 

У меня есть три предмета на выбор.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *