Создание всплывающего списка в html. Элементы HTML форм — выпадающий список (теги select, option, optgroup), текстовое поле (textarea), а также применение label, fieldset и legend. Группирование элементов списка

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

Раскрывающийся список

Первый пункт в списке, как правило, отображается как выбранный, но вы можете добавить к этому элементу атрибут selected , чтобы задать предопределенный вариант.

Давайте

Пример использования элемента Tupac Amaru Shakur Curtis Jackson Calvin Cordozar Broadus, Jr.

В этом примере мы тегом создали раскрывающийся список, внутри него мы поместили три элемента , которые определяют его пункты. Атрибутом selected указали, что третий пункт предопределен (будет выбран по умолчанию вместо первого).

Обращаю Ваше внимание на то, что необходимо использовать атрибут value (значение) тега , чтобы указать какое значение отправляется на сервер для дальнейшей обработки.

Отключение пункта меню

С помощью логического атрибута disabled (HTML тега ) допускается отключать определенный пункт меню (параметр). Атрибут может использоваться совместно со скриптами, например, пока какое-то условие не выполнено параметр неактивен.

в раскрывающемся списке Option A Option B Option C

В браузере это выглядит следующим образом:

Группировка пунктов меню

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

Пример использования:

Пример использования HTML тега Tupac Amaru Shakur Curtis Jackson Calvin Cordozar Broadus, Jr. Marshall Bruce Mathers III

В данном примере мы выделили 2 группы тегом . Атрибут label элемента задает наименование выделенной группы, выполненное полужирным начертанием:

В следующем примере с использованием логического атрибута disabled мы отключим одну группу ("Group B "):

Пример использования атрибута disabled HTML тега A.1 B.1 B.2 C.1 C.2 C.3

Результат нашего примера:

Отключение списка и мультивыбор Атрибуты disabled и multiple тега 1 2 3 A B C D

В этом примере мы создали два раскрывающихся списка. Для первого списка мы использовали атрибут disabled , который не дает взаймодействовать со списком (отключает его).

Для второго списка мы использовали атрибут multiple , который указывает, что допускается выбрать в списке несколько вариантов сразу (через Ctrl в Windows и через Command в Mac).

В браузере это выглядит следующим образом:

Текстовая область

Результат нашего примера:

Отключение текстовой области

По аналогии с ранее рассмотренными элементами тег имеет логический атрибут disabled , который указывает, что текстовая область должна быть отключена (недоступна для взаимодействия с пользователем). Атрибут может использоваться совместно со скриптами, например, пока какое-то условие не выполнено элемент неактивен.

Рассмотрим пример использования:

Атрибуты disabled и name тега Текстовое поле доступно к заполнению. Текстовое поле не доступно к заполнению.

), для первой и второй области атрибутом name мы задали уникальные имена. Для второй текстовой области атрибутом disabled мы указали, что она будет отключена при загрузке страницы.

Кроме того, мы разместили внутри формы кнопку, которая служит для отправки формы (элемент с типом кнопки "отправка формы": type = "submit" ).

Результат нашего примера:

Подсказка для текстовой области

И так мы с Вами рассмотрим заключительный пример и перейдем к практическому заданию статьи этого учебника.

Благодаря атрибуту (HTML тега ) допускается указывать текст подсказки, которая описывает ожидаемое значение для ввода пользователем в элемент.

Текст подсказки скрывается, когда пользователь вводит значение (любой символ) в текстовое поле, если его убрать, то подсказка будет отображена снова.

Рассмотрим пример использования:

Атрибуты placeholder и readonly тега

В этом примере мы создали две текстовые области (элемент ), для первой и второй области атрибутом мы задали подсказку для пользователя, которая отображается бледным цветом текста внутри элемента. Для второй текстовой области атрибутом readonly мы указали, что оно будет доступно только для чтения (содержимое не может быть изменено).

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

Кроме того, мы разместили внутри формы кнопку, которая служит для отправки формы (элемент с типом кнопки "отправка формы": type = "submit" ).

Результат нашего примера:

Вопросы и задачи по теме

Перед тем как перейти к изучению следующей темы пройдите практическое задание:

  • Используя полученные знания составьте следующую форму размещения вакансии:

Прежде чем преступить к выполнению задания откройте пример в новом окне и внимательно рассмотрите форму, чтобы повторить все её моменты. Для выполнения задания Вам потребуются знания из статьи . Если вы пропустили её, то вернитесь для её изучения.

После того как вы выполните упражнение проинспектируйте код страницы, открыв пример в отдельном окне, чтобы убедиться, что вы все выполнили правильно.

Часто новички сталкиваются с проблемой оформления выпадающего списка. Так как с оригинальным select особенного ничего не сделаешь. Тогда на помощь приходит jQuery , и тогда можно сделать чуть ли не что угодно.

А что если я скажу, что можно и стандартный HTML выпадающий список не плохо оформить на чистом CSS ?

Выпадающий список на HTML

Цвет фона и текста можно менять, причем делается это очень просто.

Sherlock Holmes The Great Gatsby V for Vendetta The Wolf of Wallstreet Quantum of Solace

В span мы добавили 2 класса, один основной, на который ляжут все основные стили “custom-dropdown “, а второй big, который будет определять размер выпадающего списка . Мы можем заранее подготивить скажем 3 размера, big, medium, small , задать в стилях font-size . И в дальнейшем не заморачиваться. Это можно и пропустить, все зависит от вашего дизайна на сайте.

Body { background: #2a2a2b; color: #fff; text-align: center; font-family: Arial, Helvetica; } .big { font-size: 1.2em; } /* Custom dropdown */ .custom-dropdown { position: relative; display: inline-block; vertical-align: middle; margin: 10px; /* demo only */ } .custom-dropdown select { cursor:pointer; background-color: #2980b9; color: #fff; font-size: inherit; padding: .5em; padding-right: 2.5em; border: 0; margin: 0; border-radius: 3px; text-indent: 0.01px; text-overflow: ""; -webkit-appearance: button; /* hide default arrow in chrome OSX */ } .custom-dropdown::before, .custom-dropdown::after { content: ""; position: absolute; pointer-events: none; } .custom-dropdown::after { /* Custom dropdown arrow */ content: "\25BC"; height: 1em; font-size: .625em; line-height: 1; right: 1.2em; top: 50%; margin-top: -.5em; } .custom-dropdown::before { /* Custom dropdown arrow cover */ width: 2em; right: 0; top: 0; bottom: 0; border-radius: 0 3px 3px 0; } .custom-dropdown select { color: rgba(0,0,0,.3); } .custom-dropdown select::after { color: rgba(0,0,0,.1); } .custom-dropdown::before { background-color: rgba(0,0,0,.15); } .custom-dropdown::after { color: rgba(0,0,0,.4); }

Если вы не хотите заморачиваться и изучать стили, а просто добавить себе на сайт и поменять цвет под дизайн вашего сайта. То вам всего лишь в стиле “.custom-dropdown select ” нужно поменять значения background-color и color

Простейший выпадающий список в HTML легко создать, используя тег select. Это тег-контейнер, в него вкладываются теги option - именно они задают элементы списка.

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

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

Атрибуты тега select

1. Multiple - задает множественный выбор.

2. Size - задает количество видимых строк в списке, то есть высоту. И тут все зависит от того, присутствует атрибут multiple или нет. Если да, и вы не указываете size, то при наличии multiple пользователь увидит все возможные варианты выбора, если же multiple отсутствует, то показана будет всего одна строчка, а остальные посетитель сможет прочитать, когда нажмет на значок лифта с правой стороны. Если же высота size задана и она меньше количества вариантов, то справа появится полоса прокрутки.

3. Name - имя. Выпадающий список может обойтись и без него, но оно может быть необходимым для взаимодействия с программой-обработчиком на сервере. Как правило, имя все-таки указывают.

Тег select не имеет обязательных атрибутов в отличие от тега option.

Атрибуты вложенного тега option
  • Selected - предназначен для выделения пункта списка. Пользователь сможет выделять более одного пункта, если задан атрибут multiple (см. выше).
  • Value - значение. Этот атрибут обязателен. Веб-сервер должен понимать, какие именно пункты списка выбрал пользователь.
  • Label. С помощью этого атрибута можно сокращать слишком длинные элементы списков. Например, на экран будет выводиться «Милан», вместо указанного в теге option «Милан - административный центр Ломбардии. Северная Италия». Этот атрибут также используется для группировки пунктов в списке.
  • Что касается ширины списка, то она устанавливается по умолчанию по длине самого широкого текста в списке. Разумеется, ширину можно менять при помощи стилей HTML.

    Выпадающий список другими способами

    Его можно сделать при помощи CSS, например, список будет появляться при наведении курсора на элемент страницы. Отличные возможности для создания списков предоставляет JavaScript , работу которого упрощает библиотека Jquery. Выпадающий список, подключенный с помощью этой библиотеки, может быть очень сложным, например, каскадным. То есть при выборе элемента в одном списке появляется следующий список, например, существует пункт меню «Женская одежда» (при наведении выпадают затем при выборе одного из видов, например, «Верхняя одежда», выпадает список с элементами: куртки, парки, пальто, полупальто, шубы и т. п.

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

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

    Текст, видимый пользователю, может отличаться от текста, указанного в атрибуте value . Вот, как можно создать выпадающий список:

    Green Yellow Black

    • Выпадающий список создается с помощью тега ;
    • Внутри тега определяются варианты для выбора с помощью тега ;
    • В теге можно использовать атрибут value , чтобы получить доступ к выбранному варианту с помощью PHP , JS , Jquery и т.д.

    Также можно задать класс CSS вместо того, чтобы использовать идентификатор для определения стиля выпадающего списка.

    В следующем разделе я покажу примеры использования выпадающего списка HTML в JavaScript / JQuery . В примерах также будет показано, как задавать стили с помощью CSS / CSS3 и фреймворка Bootstrap .

    Пример создания простого выпадающего списка

    В этом примере HTML select option используется для создания выпадающего списка с тремя вариантами на выбор:


    В приведенном выше примере для создания выпадающего списка используется следующая разметка:

    5 10 15 20 25

    Использование атрибута value

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

    В следующем примере мы создадим выпадающий список с атрибутом value :


    Посмотреть онлайн демо-версию и код

    Для тега используется следующий код:

    Maroon Green Yellow Blue Red

    Пример получения доступа к выбранному варианту в JavaScript

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


    Посмотреть онлайн демо-версию и код

    Для option value HTML используется следующий код:

    Maroon Green Yellow Blue Red Other

    Следующая строка кода используется в JavaScript , чтобы получить доступ к значению атрибута value варианта :

    var seltheme = document.getElementById(“selcolor”).value;

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

    Получение доступа к видимому тексту в JQuery

    На этот раз я буду использовать JQuery , чтобы получить доступ к значению выбранного варианта: как к тексту, так и к value . В этой демо-версии я буду получать доступ к видимому тексту в теге option в HTML :


    Посмотреть онлайн демо-версию и код

    В коде для каждого варианта в теге значение отличается от текста. После того, как вы выберете цвет, jQuery отображает видимый текст в предупреждении. Код тега следующий:

    Maroon Green Yellow Blue Red

    Вот как обеспечивается доступ к этому значению в HTML select option selected JavaScript :

    var selectedcolor = $("#jqueryselect option:selected").text();

    Также можно получить доступ к значению с помощью JQuery-метода $.val() :

    var selectedcolor = $("#jqueryselect").val();

    Замените эту строку в приведенном выше примере, и код будет отображать шорткод / значение цвета в атрибуте value , а не видимый текст.

    Пример получения значения в скрипте PHP

    В этом примере получения значения выбранного из выпадающего списка варианта форма создается с помощью тега в разделе разметки. После выбора цвета из выпадающего списка нажмите на кнопку “Submit ”. Данные формы будут передаваться в тот же PHP-файл , после чего отобразится выбранный цвет:


    Посмотреть онлайн демо-версию и код

    Метод формы, используемый в примере — POST , поэтому можно получить значения формы с помощью массива PHP $_POST[“”] . Это код формы, используемый в примере:

    Select A Color: Maroon Green Yellow Blue Red

    А вот как PHP-скрипт используется, чтобы получить значение HTML select option :

    Если в форме указан метод GET , тогда используйте PHP-массив $_GET[“”] .

    Определение стилей выпадающего списка с помощью CSS

    Теперь рассмотрим, как определить стили выпадающего списка , используя возможности CSS . В следующей демо-версии я использовал несколько простых свойств CSS и свойства градиента CSS3 :


    Посмотреть онлайн демо-версию и код

    Вместе с linear-gradient здесь использовано свойство box-shadow . Полный код CSS выглядит следующим образом:

    Selcls { padding: 3px; border: solid 1px #517B97; outline: 0; background: -webkit-gradient(linear, left top, left 25, from(#FFFFFF), color-stop(4%, #CAD9E3), to(#FFFFFF)); background: -moz-linear-gradient(top, #FFFFFF, #CAD9E3 1px, #FFFFFF 25px); box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; -moz-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; -webkit-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; width:150px; }

    Закругленные углы с помощью свойства border-radius

    Для HTML select option мы зададим свойство CSS3 border-radius , чтобы сделать закругленные углы. Цветовая гамма также изменяется. Вы можете экспериментировать с рамками, шириной, полями и другими свойствами, как захотите:


    Посмотреть онлайн демо-версию и код Использование нескольких атрибутов и стилей CSS

    Чтобы дать пользователям возможность выбирать из списка несколько вариантов, нужно использовать атрибут multiple . В приведенном выше примере может быть выбран только один вариант. При использовании multiple можно выбрать несколько вариантов, нажав клавишу CTRL :


    Посмотреть онлайн демо-версию и код Использование фреймворка Bootstrap и плагинов для создания красивых выпадающих списков

    Если вы используете фреймворк Bootstrap , то у вас есть возможность применять плагины для создания крутых option HTML .

    Древовидный вид HTML списков является лучшим вариантом визуального обзора и изучения их иерархической структуры. Рассмотрим несколько преобразований обычного HTML списка в более наглядное древовидное состояние при помощи магии CSS стилей.

    1. Пример обычного HTML списка
    • Главное меню
      • База знаний
        • Компоненты
        • Плагины
        • Модули
      • Отзывы
      • Контакты
    HTML разметка списка
    • Главное меню
      • База знаний
        • Компоненты
        • Плагины
        • Модули
      • Отзывы
      • Контакты
    2. Пример HTML списка с соединительными линиями

    Присвоим тегу

      класс treeline для создания соединительных линий каждого раздела списка.

      • Главное меню
        • База знаний
          • Компоненты
          • Плагины
          • Модули
        • Отзывы
        • Контакты
      HTML разметка списка с соединительными линиями
        /* Присваиваем класс treeline */
      • Главное меню
        • База знаний
          • Компоненты
          • Плагины
          • Модули
        • Отзывы
        • Контакты
      CSS стили списка с соединительными линиями .treeline, .treeline ul, .treeline li { margin: 0; padding: 0; line-height: 1.2; list-style: none; } .treeline ul {margin: 0 0 0 15px; /* отступ вертикальной линии */} .treeline > li:not(:only-child), .treeline li li { position: relative; padding: 3px 0 0 20px; /* отступ текста */ } /* Стиль вертикальной линии */ .treeline li:not(:last-child) { border-left: 1px solid #ccc;} /* Стили горизонтальной линии*/ .treeline li li:before, .treeline > li:not(:only-child):before { content: ""; position: absolute; top: 0; left: 0; width: 1.1em; height: .7em; border-bottom:1px solid #ccc; } /* Вертикальная линия последнего пункта в списка */ .treeline li:last-child:before { width: calc(1.1em - 1px); border-left: 1px solid #ccc; } 3. Пример раскрывающегося HTML списка
      • Главное меню
        • База знаний
          • Компоненты
          • Плагины
          • Модули
        • Отзывы
        • Контакты
      HTML разметка раскрывающегося списка

      К предыдущей разметке добавляем + для реализации функции раскрытия элементов древовидного списка.

      • Главное меню
        • +База знаний /* Блок раскрытия списка */
          • Компоненты
          • Плагины
          • Модули
        • Отзывы
        • Контакты

      CSS стили раскрывающегося списка

      К CSS из предыдущего примера необходимо дописать следующие стили:

      Treeline .drop { position: absolute; left: -6px; top: 5px; width: 11px; height: 11px; line-height: 1em; text-align: center; background: #9F9F9F; color: #fff; /* Фон и цвет кнопки, раскрывающей список */ font-size: 78%; /* Размер +/- */ cursor: pointer; -webkit-user-select: none; -moz-user-select: none; } .treeline li:last-child > .drop {margin-left: 1px;} .treeline .drop + ul {display: none;} .treeline .dropM + ul {display: block;}

      Скрипт, реализующий функцию раскрывающегося списка

      Помимо HTML и CSS, данный способ оформления древовидных списков требует использование JS:

      $(function() { var ul = document.querySelectorAll(".treeline > li:not(:only-child) ul, .treeline ul ul"); for (var i = 0; i < ul.length; i++) { var div = document.createElement("div"); div.className = "drop"; div.innerHTML = "+"; ul[i].parentNode.insertBefore(div, ul[i].previousSibling); div.onclick = function() { this.innerHTML = (this.innerHTML == "+" ? "−" : "+"); this.className = (this.className == "drop" ? "drop dropM" : "drop"); } } })();

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

      4. Пример вертикального древовидного списка
      • Главное меню
        • База знаний
          • Компоненты
          • Плагины
          • Модули
        • Отзывы
        • Контакты
      HTML разметка вертикального древовидного списка
        /* Присваиваем класс treevertical */
      • Главное меню
        • База знаний
          • Компоненты
          • Плагины
          • Модули
        • Отзывы
        • Контакты
      CSS стили вертикального древовидного списка .treevertical, .treevertical ul { position: relative; display: table; margin: 5px 0 0 0 !important; padding: 6px 0 0 0 !important; line-height: normal; text-align: center; word-wrap: break-word; word-break: break-all;} .treevertical li { position: relative; display: table-cell;} /* Отступ между пунктами */ .treevertical li:not(:only-child) {padding: 0 .5em;} .treevertical li:last-child {padding-right: 0;} .treevertical li:first-child {padding-left: 0;} /* Стили линий */ .treevertical ul:before, .treevertical ul li:before, .treevertical ul li:after { content: ""; position: absolute; top: -5px; left: 0; width: 50%; height: 5px; border-right: 1px solid #999;} .treevertical ul:before {top: -4px;} .treevertical ul li:not(:only-child):before {border-top: 1px solid #999;} .treevertical ul li:not(:only-child):first-child:before { right: 0; left: auto; border-left: 1px solid #999; border-right: none;} .treevertical ul li:not(:only-child):first-child:before, .treevertical ul li:not(:only-child):last-child:before { width: calc(50% + .5em/2); } .treevertical ul li:after {border: none;} .treevertical ul li:not(:last-child):not(:first-child):after { width: 100%; border-top: 1px solid #999; }