Ползунок в HTML (оформление и вывод значения)
Всем привет!
Сделать ползунок в HTML – не проблема, для многих сделать это – проще простого. А вот оформить и красиво вывести значение ползунка умеют не все.
Так вот, в сегодняшней статье я расскажу, как создать ползунок, как вывести результат и как оформить ползунок.
С чего же начнем? Начнем с того, что я покажу, каким тегом создается ползунок, и какие атрибуты у него есть.
Для создания ползунка в HTML существует тег «input»:
<input ENGINE="range">
В результате получится вот такое:
Заметьте, что ручка ползунка всегда находится посредине, а специальным атрибутом это можно изменить, впрочем, не только это.
Атрибуты:
Пример:
<input type="range" min="0" max="10" list="rangeList1"> <datalist> <option value="0" label="0"> <option value="5" label="5"> <option value="10" label="10"> </datalist>
Обратите внимание на имя «rangeList1». Посмотрите, где я его прописал в коде. Это имя может быть любым, но должно быть уникальным и писаться латинскими буквами. Имя в id должно соответствовать имени «list».
Name — присваивает имя ползунку.
Step — устанавливает интервал увеличения значения (перемещения) ползунка.
Значение по умолчанию: «1».
Value — указывает числовое значение ползунка, отправляемое на сервер или используемое сценариями.
Как вывести значение ползунка?
Все, конечно, круто, но какой смысл в ползунке, если он ничего не выводит.
Сейчас мы все исправим и выведем значение средствами JavaScript без какой-либо магии.
onchange="document.getElementById('rangeValue').innerHTML = this.value;"
Вот этот код нужно вставить в ползунок.
Заметьте, если в скобках вы указали «rangeValue», тогда при выводе результата нужно тоже указать это же имя, а иначе работать не будет:
<span>5</span>
Полный пример:
<input type="range" step="5" min="0" max="10" list="rangeList" onchange="document.getElementById('rangeValue').innerHTML = this.value;"> <datalist> <option value="0" label="0"> <option value="5" label="5"> <option value="10" label="10"> </datalist> <span>5</span>
А вот и результат:
[ посмотреть демонстрацию ]
Также в интернете нашел вот такой способ, как мне показалось, очень интересный:
<form onsubmit="return false" oninput="level.value = flevel.valueAsNumber"> <input name="flevel" type="range" min="20" max="10000" value="20" step="10"> <output for="flying" name="level">20</output> </form>
Результат:
[ посмотреть демонстрацию ]
Итак, мы имеем стандартный ползунок, и отображается он на каждом браузере по-разному:
Приступим к изменению вида
В браузерах Chrome, Safari и Opera
Отменим стандартные стили Webkit/Chrome. Для этого зададим свойству «-webkit-appearance» значение «none»:
input[type=range] { -webkit-appearance: none }
Вот теперь можно добавить любые свойства, например, границу, цвет фона, закругление границы и так далее, что только душа пожелает:
input[type=range]::-webkit-slider-runnable-track { border-radius: 10px; height: 10px; border: 1px solid #000; background-color: #ccc; }
В результате это выглядит пока что вот так:
Теперь изменим ползунок:
input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; background-color: #000; border: 3px solid #0b6b00; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; margin-top: -5px; }
В результате:
В браузере Firefox
Псевдоэлемент «::-moz-range-track» повлияет на полосу ползунка, а «::-moz-range-track» повлияет на ручку ползунка.
Пробуем:
input[type=range]::-moz-range-track { border-radius: 10px; height: 10px; border: 1px solid #666; background-color: #ccc; } input[type=range]::-moz-range-thumb { background-color: #000; border: 3px solid #0b6b00; width: 20px; height: 20px; border-radius: 20px; cursor: pointer; }
В браузере Internet Explorer
Дошла очередь до самого известного и самого корявого, как по мне, браузера Internet Explorer:
input[type="range"]::-ms-track { border-radius: 10px; height: 10px; border: 1px solid #666; background-color: #ccc; } input[type="range"]::-ms-thumb { background-color: #000; border: 3px solid #0b6b00; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; }
Так что, если хотите, чтобы ползунки более-менее отображались одинаково на всех браузерах, придется писать большой код на CSS, для каждого браузера свой.
Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓
Последние новости категории:
Похожие статьи
Популярные статьи:
Добавить комментарий
Метки: css, html, javascript, Вебмастеру, для сайтаЭлемент input
Большинство элементов добавляется в форму с помощью элемента <input>. Назначение и внешний вид элемента <input> меняются в зависимости от значения атрибута type.
Значение атрибута type: text
Когда атрибуту tуре присваивается значение text, это значит, что будет создано однострочное поле ввода текста:
<input type="text">
Пример HTML:
Попробуй сам<form action="action_form.php" method="POST">
Имя пользователя:<br>
<input type="text" name="firstname"><br>
<input type="submit">
</form>
Значение атрибута type: password
Чтобы создать поле для ввода пароля, необходимо задать значениеpassword
атрибуту type (password (англ.) — пароль):<input type="password">
Пример HTML:
Попробуй сам<form action="" method="POST">
Имя пользователя:<br>
<input type="text" name="username" value="Ваше имя"><br>
Пароль:<br>
<input type="password" name="password"><br>
<input type="submit">
</form>
Значение атрибута type: radio
Элемент <input> типа radio создает переключатели, которые используют принцип логического «ИЛИ», позволяя выбрать только одно из нескольких значений: если вы выбираете одно положение, то все остальные становятся неактивными. Основной синтаксис элемента-переключателя:
<input type="radio" name="name" value="значение">
Пример: Использование переключателей
<form action="" method="POST">
<p>Сколько Вам лет?</p>
<ol>
<li><input type="radio" name="age" value="18" checked>младше 18</li>
<li><input type="radio" name="age" value="18-24">от 18 до 24</li>
<li><input type="radio" name="age" value="25-34">от 25 до 35</li>
<li><input type="radio" name="age" value="35-50">более 35</li>
</ol>
</form>
Значение атрибута type: checkbox
Элемент <input> типа checkbox создает флажки, которые напоминают переключатели тем, что дают пользователю возможность выбирать из предложенных вами вариантов. Главным отличием от переключателей является то, что посетитель может выбрать сразу несколько вариантов, а сами флажки обозначаются квадратиками, а не кружочками:
<input type="checkbox" name="name" value="значение">
Пример: Использование флажков
<form action="" method="POST"> <p>Какие музыкальные жанры Вы любите?</p> <ol> <li><input type="checkbox" name="musik" value="juze" checked>Джаз</li> <li><input type="checkbox" name="musik" value="bluse" checked>Блюз</li> <li><input type="checkbox" name="musik" value="rock">Рок</li> <li><input type="checkbox" name="musik" value="shanson">Шансон</li> <li><input type="checkbox" name="musik" value="kantry">Кантри</li> </ol> </form>
Значение атрибута type: submit
Элемент <input> типа submit создает кнопку, при нажатии которой происходит отправка браузером серверному сценарию на обработку данных, введенных пользователем в форму:
<input type="submit" name="name" value="значение">
Пример: Использование submit и reset
<form action="action_form.php" method="POST">
<p>Подпишись на рассылку новостей:</p>
<input type="text" name="email">
<input type="submit" name="podpisatsya" value="Подписаться">
<input name="reset" type="reset" value="Очистить">
</form>
Значение атрибута type: button
Элемент <input> типа button создает произвольную кнопку. Для таких кнопок действие по умолчанию не определено, а браузеры пользователей должны использовать в качестве надписи на кнопке значение атрибута value. С атрибутами событий каждой такой кнопки (щелчок мышью на кнопке или дрyrое событие) могyт быть связаны прогpаммы обработки этих событий, которые могyт выполнять определенные действия. Эти проrpаммы обычно называют сценариями, и выполняются они непосредственно браузером пользователя, без передачи данных на Web-cepBep.
<input type="button" name="name" value="имя_кнопки">
Пример: Использование произвольной кнопки
HTML5 Новые значения type
В HTML5 появились новые типы полей форм, позволяющие более точно описать вводимые пользователем данные. Более старые версии браузеров, не поддерживающие HTML5, будут визуализировать такие элементы формы просто как однострочные поля ввода текста.
Значение атрибута type: date
Для запроса ввода даты вы можете использовать элемент <input> со значением date атрибута type. Таким образом, в браузерах, поддерживающих элементы формы спецификации HTML5, будет выведено поле для ввода даты.
<input type="date">
Значение атрибута type: week
При использовании типа поля ввода week соответствующий инструмент-указатель позволит пользователю выбрать одну неделю в году, после чего обеспечит ввод данных в формате, например, Неделя 25, 2017.
<input type="week" name="week">
Значение атрибута type: month
Для запроса ввода определенного месяца года вы можете использовать элемент <input> со значением month атрибута type. Интерфейс позволит пользователю выбрать один месяц, после чего обеспечит ввод данных в виде года и месяца.
<input type="month" name="month">
Значение атрибута type: time
Поле ввода, относящееся к типу time, допускает ввод значений в 24-часовом формате, например 17:30. В поддерживающих браузерах оно отображается как элемент управления в виде числового поля ввода со значением, изменяемым с помощью мыши, и допускает ввод только значений времени.
<input type="time" name="time">
Значение атрибута type: datetime
<input type=»datetime»> создает элемент ввода сочетания даты и времени, который содержит информацию о часовом поясе. При вводе данных в поле типа datetime генерируются значения даты и времени разделенные буквой T, а в конце строки помечается часовой пояс буквой Z в случае с UTC (Universal Coordinated Time — универсальное координированное время). Учитывая, что UTC является практически эквивалентом GMT (Greenwich Mean Time — среднее время по Гринвичу), стандартное московское время на 3 часа опережает GMT (UTC + 3:00).
<input type="datetime" name="datetime">
Значение атрибута type: datetime-local
Тип ввода данных datetime-local работает точно так же, как и datetime, однако не включает информацию о часовом поясе. Значение представляет собой дату и время в формате ISO без учета часового пояса (ГГГГ-ММ-ДДТчч:мм:сс).
<input type="datetime-local" name="datetime-local">
Значение атрибута type: number
Элемент <input> типа number создает поле, в которое пользователь может вводить только числовое значение. Для типа ввода number браузер предоставляет виджет счетчика, который представляет собой поле, справа от которого находятся две кнопки со стрелками — для увеличения и уменьшения числового значения. В поле счетчика по умолчанию разрешен прямой ввод с клавиатуры. Для указания минимальных и максимальных допустимых значений ввода предназначены атрибуты min и max, а также можно установить шаг приращения с помощью атрибута step.
Синтаксис создания поля для ввода чисел следующий:
<input type="number" name="num" min="1" max="12" value="1" step="1">
Значение атрибута type: range
Поле ввода типа range элемента <input> позволит создать такой элемент интерфейса, как ползунковый регулятор. Ползунок предназначен только для выбора числовых значений в некоем диапазоне, при этом для пользователя не все браузеры отображают текущее числовое значение. Основной синтаксис создания ползунка:
<input type="range" min="0" max="100" step="1" value="50">
Нижняя и верхняя границы диапазона min и max ограничивают значения, которые могут храниться в поле формы. Диапазон по умолчанию — от 0 до 100. Атрибут step позволяет разработчикам указывать шаг изменения чисел (по умолчанию 1). Текущее значение задается в атрибуте value. По умолчанию value = (max + min)/2. Вышеперечисленные атрибуты не являются обязательными и, если их опустить, то в таком случае они принимают значения по умолчанию.
Значение атрибута type: color
Поле ввода type=»color» генерирует палитры цветов обеспечивая пользователям возможность выбирать значения цветов в шестнадцатеричном формате RGB (#RRGGBB). Синтаксис создания поля для задания цвета:
<input type="color" value="цвет" name="имя">
Атрибут value предназначен для задания исходного цвета (#RRGGBB) и не является обязательным. Атрибут name применяется для идентификации получаемого значения.
Значение атрибута type: email
Поле типа email представляет из себя однострочное текстовое поле и предназначено для ввода либо отдельного адреса, либо списка адресов электронной почты. Браузеры, поддерживающие язык HTML5, проверят, соответствует ли введенный посетителем адрес электронной почты принятому стандарту для данного типа адресов. Синтаксис создания поля следующий:
<input type="email">
Элемент <input type=»email»> может включать атрибуты свойственные типу text, а также добавлен атрибут multiple, который позволяет вводить сразу список из допустимых электронных адресов, разделенных запятыми.
Значение атрибута type: url
Элемент <input> типа url адаптирован для ввода URL-адресов, например адреса какой-либо страницы во всемирной паутине. Строка <input type=»url»> заставляет браузер проверять, правильно ли пользователь ввел URL-адрес. При использовании поля ввода type="url"
на устройствах с сенсорными экранами, внешний вид встроенной виртуальной клавиатуры будет оптимизирован для отображения символов, наиболее часто встречающихся в URL-дpecax.
Атрибуты для элемента <input> типа url совпадают с текстовым полем (<input type=»text»>).
Некоторые браузеры добавляют специфическую информацию в предупреждающие сообщения, выводимые на экран, при попытке отправить форму с некорректными значениями URL-адреса. Далее приведен пример кода, включающего атрибут placeholder (с англ. — заполнитель), значение которого в виде подсказки будет по умолчанию отображаться, пока поле ввода URL-адреса не получит фокус:
Значение атрибута type: search
Поле ввода type="search"
работает таким же образом, как и стандартное текстовое поле ввода, разница между типами ввода данных search и text чисто стилистическая. Некоторые браузеры немного по-разному выполняют визуализацию на основе одного и того же кода.
Синтаксис поля ввода поискового запроса:
<input type="email">
Используемые атрибуты совпадают с текстовым полем text:
Значение атрибута type: tel
Элемент <input> типа tel применяется для того, чтобы сообщить браузеру, что в соответствующем поле формы пользователь должен ввести телефонный номер. Несмотря на то, что телефонный номер представляет из себя числовой формат вводимых данных, в браузерах поле типа tel ведет себя как обычное текстовое поле ввода. Однако, применение типа поля ввода tel приводит к появлению на экранах мобильных устройств специальной клавиатуры, предназначенной для облегчения ввода информации. Синтаксис поля ввода номера телефона:
<input type="tel">
Значение | Описание |
---|---|
button | Создает кнопку с произвольным действием, действие по умолчанию не определено: |
checkbox | Создает флажки, которые напоминают переключатели тем, что дают пользователю возможность выбирать из предложенных вариантов: Я знаю HTML |
color | Генерирует палитры цветов обеспечивая пользователям возможность выбирать значения цветов в шестнадцатеричном формате RGB: |
date | Позволяет вводить дату в формате дд.мм.гггг.: День рождения: |
datetime-local | Позволяет вводить дату и время, разделенные прописной английской буквой Т по шаблону дд.мм.гггг чч:мм:Дата встречи — день и время: |
Браузеры, поддерживающие язык HTML5, проверят, соответствует ли введенный посетителем адрес электронной почты принятому стандарту для данного типа адресов: E-mail: | |
file | Позволяет загружать файлы с компьютера пользователя: Выберите файл: |
hidden | Создает скрытый элемент, не отображаемый пользователю. Информация, хранящаяся в скрытом поле, всегда пересылается на сервер и не может быть изменена ни пользователем, ни браузером. |
image | Создает элемент в виде графического изображения, действующий аналогично кнопке Submit: |
month | Позволяет пользователю вводить год и номер месяца по шаблону гггг-мм: |
number | Создает поле, в которое пользователь может вводить только числовое значение. Для типа ввода number браузер предоставляет виджет счетчика, который представляет собой поле, справа от которого находятся две кнопки со стрелками — для увеличения и уменьшения числового значения. Для указания минимальных и максимальных допустимых значений ввода предназначены атрибуты min и max, а также можно установить шаг приращения с помощью атрибута step: Укажите число (от 1 до 10): |
password | Текстовое поле для ввода пароля, в котором все вводимые символы заменяются звездочкой либо другим, установленным браузером значком: Введите пароль: |
radio | Создает элемент-переключатель в виде небольшого кружка (иногда их называют радио-кнопками): Радио-кнопки: |
range | Создает такой элемент интерфейса, как ползунковый регулятор. Ползунок предназначен только для выбора числовых значений в некоем диапазоне, при этом для пользователя не все браузеры отображают текущее числовое значение: |
reset | Создает кнопку, которая очищает поля формы от введенных пользователем данных: |
search | Создает поле поиска, по умолчанию поле ввода имеет прямоугольную форму: Поиск: |
submit | Создает стандартную кнопку, активизируемую щелчком мыши. Кнопка собирает информацию с формы и отправляет ее на сервер обработчику: |
text | Создает однострочное поле ввода текста: |
time | Допускает ввод значений в 24-часовом формате, например 17:30. Браузеры отображают его как элемент управления в виде числового поля ввода со значением, изменяемым с помощью мыши, и допускают ввод только значений времени: Выберите время: |
url | Заставляет браузер проверять, правильно ли пользователь ввел URL-адрес. Некоторые браузеры добавляют специфическую информацию в предупреждающие сообщения, выводимые на экран, при попытке отправить форму с некорректными значениями URL-адреса: Главная страница: |
week | Позволяет пользователю выбрать одну неделю в году, после чего обеспечит ввод данных в формате нн-гггг: Выберите неделю: |
Задачи
Please enable JavaScript to view the comments powered by Disqus.
HTML5 input type range — ползунок и его оформление
Среди многих новых элементов формы, которые ввел HTML5, диапазон является, возможно, самым странным, но также и самым вообще полезным. Ранее требуя большого кодирования JavaScript или больших усилий и создания многих вариантов разметки и скриптов, для создания ползунков а, сейчас можно создать ползунок который будет отображаться во всех современных браузерах. Для полноценной работы клиент пользователя должен поддерживать html5 разметку.Ползунок особенно полезен для форм, в которых существуют три условия:
Широкий диапазон чисел одинаково доступных пользователю.
Есть известный верхний и более низкий предел диапазона.
Пользователь, должен, будет «перетаскивать» при этом регулируя диапазон заданых чисел.
Не забывайте о целесообразности создания таких элементов формы. Учитывая параметры, которые пользователь может выбирать, или изменять. Самым оптимальным вариантом приминения такого рода полей формы тогда, когда вы даете пользователю право выбора. В таком случае приминение поля формы с ползунком будет актуальным и практичным.
Пример использования range
<label for=weight>Громкость</label> <input type=range id=weight min=10 value=10 max=2000 step=100>
Альтернативы – прекрасный выбор вместо того, чтобы заменить ввод чисел, и никакой дополнительной разметки или javasript просто перетянуть ползунок и увидеть результат.
Напротив, возьмите форму заказа ресторана, где у числа гостей есть очевидный верхний и более низкий предел, но пользователь, то хотел выбрать число. В этом случае «перетаскивание» ползунком, чтобы удостовериться, что правильное число мест заказано в течение вечера, было бы не правильною Сделать ввод числа будет намного более соответствующим.
Установка, Доступность И Признаки
На базовом уровне у входа ползунка должно быть по крайней мере три признака: min(самое низкое принятое число), max (самое высокое) и value ( начальное значение). Поля формы должны были связать элементы лейбла, означая, что у диапазона должен также быть признак id в большинстве случаев. Давайте использовать пример регулировки громкости:
Для примера рассмотрим создание поля формы input type range для регулировки громкости.
<label for=fader>Уровень громкости</label> <input type=range min=0 max=5 value=3 id=fader>
Примечание, у ползунка есть несколько характерных особенностей:
Кнопка ползунка «хватается», поскольку она перемещается. По умолчанию эти пункты моментального изменения соответствуют местоположению целых чисел в диапазоне. Когда выставлено, кнопка может быть перемещена с/вниз клавишами курсора, точно так же как ввод числа. (Не все браузеры поддерживают это все же). Степень ползунка не изменяется согласно значения max; вместо этого, это регулируется, изменяя ширину элемента в CSS. Относительно положение выбраного числа будет подставлено в value на это изменение.
Поведение установленной кнопки ползунка может быть особенно запутывающим, когда минимум и максимум относительно близки. Как пример, хочу предоставить ползунок микшера объема между 0 и 1:
<input type=range min=0 max=1 value=1 id=fader>
Кнопка теперь может выбирать значение без промежуточных положений. Решение состоит в том, чтобы ввести больше степени детализации при использовании значения атрибута шага: «step»
<input type=range min=0 max=1 value=1 id=fader step=".05">
Примечание, что точно так же как ввод числа, шаг может использоваться, чтобы позволить только определенные целые числа в диапазоне: можно принять только четные числа между min и max, устанавливая step=2, например. Также отметьте, что использование коротких путей HTML5 ограничивается в этом случае: следует использовать кавычки вокруг чисел как 0.5 для примера, чтобы все работало правильно. Ценность в выставлении шага заставляет ползунок выбрать число с плавающей запятой, и является самым прекрасным уровнем контроля. Но мы то не имеем возможности видеть, а какое именно мы значение выбрали. Давайте прибегним к маленькой хитрости и добавим немного javascript, и посмотрим диапазон чисел который мы выбираем перетаскивая ползунок вверх или вниз.
Рассмотрим пример
<label for=fader>Volume</label> <input type=range min=0 max=100 value=50 id=fader step=1 onchange="outputUpdate(value)"> <output for=fader id=volume>50</output> <script> function outputUpdate(vol) { document.querySelector('#volume').value = vol; } </script>
Примечание: браузер firefox — не поддерживает автоматичесский подхват значений поля range, а именно число которое подставилось в value значение формы, до того пока вы не бросите ползунок. Это конечно недостаток браузера.
Вертикальное расположение ползунка
Присвоение вертикального положения ползунку будет иногда иметь смысл: большинство пользователей думает об расположении как и «вертикально», например, а не от стороны к стороне. Разумное расположение состоит в том, что использование, преобразования CSS вращали бы элемент правильно, но это не будет работать как ожидалось. Для валидации и адаптации поля формы range используем css позиционирование для таких браузеров:
В Firefox это — slider-vertical;
В Webkit это — CSS: — -webkit-appearance:
И для IE, есть довольно отличное решение: writing-mode: bt-lr;
Объединение всех трех произвело бы следующее:
input.vertical { -webkit-appearance: slider-vertical; writing-mode: bt-lr; } <input type=range min=0 max=100 value=50 class=vertical orient=vertical>
Результат Вы видите в правой части параграфа
Моделирование Ползунка
Вид ползунка может быть настроено полностью в CSS, используя множество псевдоотборщиков:
input[type=range], ::-moz-range-track, ::-ms-track { -webkit-appearance: none; background-color: #3f91e5; width: 250px; height:20px; }
В этом пункте может быть настроена кнопка ползунка:
::-webkit-slider-thumb, ::-moz-range-thumb, ::-ms-thumb {{ -webkit-appearance: none; background-color: #666; width: 10px; height: 20px; }
При правельном использовании ползунков и применения к ним стилей можно добиться валидного отображения их в разных браузерах
Возможности HTML5 учитывает особенно умную особенность:подключение элемента к datalist с числовыми значениями через выбор из списка создаст ряд вариантов вдоль бара ползунка с положением каждого нажатия, определенного выбором в datalist.
Например, изменение нашего аудио контроля:
<label for=fader>Volume</label> <input type=range min=0 max=100 value=50 id=fader step=20 list=volsettings> <datalist id=volsettings> <option>0</option> <option>20</option> <option>40</option> <option>60</option> <option>80</option> <option>100</option> </datalist>
На этой ноте завершу сегодняшнюю публикацию. Надеюсь материал станет вам полезным. Есть вопросы пожалуйста задавайте в комментариях, я всегда всем отвечаю.
Кроссбраузерное оформление для HMTL5 элемента input с типом range
От автора: Ползунок выбора диапазона (range) является одним из новых типов у элемента input, представленных в спецификации HTML5. Данный тип позволяет осуществить выбор какого-то числового значения в указанном диапазоне. Браузерами предусмотрено отображение данного типа в виде слайдера с ползунком. Это очень интуитивный элемент пользовательского интерфейса, который очень часто встречается в приложениях. Мы можем передвигать ползунок вправо или влево, чтобы выбрать нужное значение в рамках заданного диапазона.
Но, как вы могли заметить, в каждом браузере предусмотрено свое, немного отличающееся от остальных браузеров, оформление, которое может не устроить некоторых дизайнеров и разработчиков. Поэтому в этой статье я покажу вам, как создать для данного элемента почти одинаковое оформление для всех браузеров. Итак, если вы готовы, давайте начнем.
Рекомендую также прочитать статью: Создание и оформление HTML5 индикатора выполнения (progress bar)
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнееДля браузеров Chrome, Safari и Opera
Браузеры Safari и Opera работают на «движке» Webkit. И хотя разработчики браузера Chrome приняли решение перейти на собственный «движок» Blink, на данный момент у данных браузеров много общего.
Webkit предоставляет легкий способ стилизовать любой тип элемента input, включая range. Для начала мы можем выбрать нужный элемент input с помощью селектора атрибутов и отключить стили, заданные по умолчанию в Webkit/Chrome, указав значение none для свойства -webkit-appearance.
input[type=range] { -webkit-appearance: none }
input[type=range] { -webkit-appearance: none } |
После этого мы можем задавать все, что угодно, например, границы, цвет фона, скругление углов и т.д.
.input[type=range] { -webkit-appearance: none; width: 100%; border-radius: 8px; height: 7px; border: 1px solid #bdc3c7; background-color: #fff; }
.input[type=range] { -webkit-appearance: none; width: 100%; border-radius: 8px; height: 7px; border: 1px solid #bdc3c7; background-color: #fff; } |
На следующем примере видно, что только ползунок (handlebar) остался незатронутым в результате указания стилей.
Чтобы и к нему тоже можно было применять стили, нам необходимо использовать псевдо-элемент ::-webkit-slider-thumb, имеющийся только у Webkit, и точно также удалить исходные стили с помощью свойства -webkit-appearance. Вот так:
input[type=’range’]::-webkit-slider-thumb { -webkit-appearance: none; background-color: #ecf0f1; border: 1px solid #bdc3c7; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; }
input[type=’range’]::-webkit-slider-thumb { -webkit-appearance: none; background-color: #ecf0f1; border: 1px solid #bdc3c7; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; } |
Таким способом мы можем стилизовать элемент input с типом range для браузеров на «движке» Webkit. Стили, которые мы прописали, должны работать для браузеров Chrome и Safari, а также для последней версии Opera. Однако, они не окажут никакого эффекта в браузерах Firefox и Internet Explorer, т.к. у них другие «движки». Но мы знаем, что нужно делать, чтобы исправить эту ситуацию.
Для браузера Firefox
Попытка прописать стили прямо для селектора input[type=’range’] окажется неудачной в случае с Firefox. Вместо этого нам необходимо использовать псевдо-элементы ::-moz-range-track и ::-moz-range-thumb, характерные только для Firefox.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнееПсевдо-элемент ::-moz-range-track позволит изменить полосу диапазона, а псевдо-элемент ::-moz-range-thumb — ползунок.
.firefox input[type=range]::-moz-range-track { border-radius: 8px; height: 7px; border: 1px solid #bdc3c7; background-color: #fff; } .firefox input[type=range]::-moz-range-thumb { background: #ecf0f1; border: 1px solid #bdc3c7; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; }
.firefox input[type=range]::-moz-range-track { border-radius: 8px; height: 7px; border: 1px solid #bdc3c7; background-color: #fff; } .firefox input[type=range]::-moz-range-thumb { background: #ecf0f1; border: 1px solid #bdc3c7; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; } |
Мы использовали точно такие же стили. Посмотрите, что получилось в Firefox. Результат должен быть очень похож на то, что мы увидели в браузерах на «движке» Webkit.
Для браузера Internet Explorer
Internet Explorer отображает элемент input с типом range далеко не так, как все остальные браузеры. Чтобы было легче понять, я нарисовал диаграмму, показывающую из каких частей формируется элемент input данного типа.
(Прим. пер.: lower fill – нижняя заливка, tick – отметка, handle bar – ползунок, upper fill – верхняя заливка)
IE также отображает всплывающую подсказку (tooltip), отображающую устанавливаемое значение во время перемещения ползунка.
Каждую из этих частей элемента input мы можем оформить с помощью псевдо-элементов ::-ms-fill-lower, ::-ms-fill-upper, ::-ms-thumb, ::-ms-ticks и ::-ms-tooltip, имеющихся только в IE. Здесь мы будем использовать те же стили, как и для браузера Firefox и браузеров на «движке» Webkit.
input[type=»range»]::-ms-fill-lower, input[type=»range»]::-ms-fill-upper { background: transparent; } input[type=»range»]::-ms-track { border-radius: 8px; height: 7px; border: 1px solid #bdc3c7; background-color: #fff; } input[type=»range»]::-ms-thumb { background-color: #ecf0f1; border: 1px solid #bdc3c7; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | input[type=»range»]::-ms-fill-lower, input[type=»range»]::-ms-fill-upper { background: transparent; } input[type=»range»]::-ms-track { border-radius: 8px; height: 7px; border: 1px solid #bdc3c7; background-color: #fff; } input[type=»range»]::-ms-thumb { background-color: #ecf0f1; border: 1px solid #bdc3c7; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; } |
Но в результате получится не то, что мы ожидали увидеть. Отметки будут видны, а вот верх и низ ползунка – нет.
Мы легко можем убрать отметки, добавив для элемента input параметр step=»any». Однако, сделать ползунок полностью видимым не представляется возможным. Это, как если бы для элемента input было задано свойство overflow со значением hidden, но это нельзя было бы исправить, изменив значение свойства overflow на visible. Я до сих пор пытаюсь выяснить, почему так происходит. Если вам удалось решить эту проблему, поделитесь, пожалуйста, своим решением в комментариях.
В заключение
В заключение хотелось бы сказать, что элемент input с типом range — это довольно хорошо изменяемый элемент. К сожалению, каждый браузер стремится отобразить его по-своему, поэтому нам приходится писать больше кода, чтобы это исправить. Я надеюсь, что в будущем появится стандарт, который сгладит данные различия. Я также даю ссылку на демо-пример ползунка выбора диапазона, созданного в данной статье, и ссылку на исходники.
Автор: Thoriq Firdaus
Источник: http://www.hongkiat.com/
Редакция: Команда webformyself.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнееPSD to HTML
Верстка сайта на HTML5 и CSS3 с нуля
СмотретьПолзунок html+css
Здравствуйте уважаемые начинающие веб-мастера. Ещё один Оригинальный эффект CSS.
Сейчас будем делать красивый ползунок для сайта. Простой-то ползунок сделать просто. Достаточно ввести в html код тег input с атрибутом type=»range», как любой браузер поймёт, что на экране нужно вывести ползунок.
Вот пожалуйста, вставляем в любом месте
<input type="range">
И получаем там же
Невзрачненько. Чтоб сделать этот бегунок красивым, можно применить css, но не всё так просто. Дело в том, что каждый браузер отображает бегунок по своему.
Я не стану забивать Вам мозги подробностями, почему так происходит, Вы же ещё только начинающие, и многое Вам будет совершенно не понятно.
Скажу только, что для того чтоб наш бегунок получился красивым во всех браузерах, мы будем использовать вендорные (браузерные) префиксы.
Далее я Вам дам несколько вариантов кода с объясняющими комментариями, и Вы методом научного тыка и матерного слова (самый результативный метод), сможете поработать в Notepad ++ над внешним видом бегунка.
Про незнакомые элементы кода, лучше всего можно узнать на сайте htmlbook. Более понятного и подробного описания, с примерами, в интернете нет.
Итак, код красивого бегунка:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>Документ без названия</title>
<style>
/* Контейнер */input[type=range] {
-webkit-appearance: none;
margin: 50px;
width: 20%;
}
input[type=range]:focus {
outline: none;
}
/* Полоса в Хроме */
input[type=range]::-webkit-slider-runnable-track {
height: 8px;
cursor: pointer;
animate: 0.2s;
border: 1px solid #575656;
background: #AD020D;
}
/* Бегунок в Хроме */
input[type=range]::-webkit-slider-thumb {
box-shadow: 1px 1px 1px #000;
border: 1px solid #000;
height: 35px;
width: 15px;
border-radius: 40%/60%;
background: #ffffff;
cursor: pointer;
-webkit-appearance: none;
margin-top: -14px;
}
/* Полоса в Мозиле */
input[type=range]::-moz-range-track {
height: 8px;
cursor: pointer;
animate: 0.2s;
box-shadow: 1px 1px 1px #000;
background: #AD020D;
border: 1px solid #575656;
}
/* Бегунок в Мозиле */
input[type=range]::-moz-range-thumb {
box-shadow: 1px 1px 1px #000;
border: 1px solid #000000;
height: 36px;
width: 16px;
border-radius: 40%/60%;
background: #ffffff;
cursor: pointer;
}
</style>
</head>
<body>
<input type="range" value="0" max="100"/>
</body>
</html>
А вот и он сам, работает, можно подвигать:
Ещё один пример, в котором линия, по которой двигается бегунок, является индикатором.
Код:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>Документ без названия</title>
<style>
/* контейнер */input[type=range] {
-webkit-appearance: none;
appearance: none;
width: 260px;
height: 20px;
padding: 0;
box-shadow: inset 0 0 0 2px #2D7CFA;
background: #AD020D;
overflow: hidden;
}
/* Линия-ндикатор для Firefox */
input[type=range]::-moz-range-track {
background: none;
border: none;
}
/* ползунок в Firefox */
input[type=range]::-moz-range-thumb {
-moz-appearance: none;
width: 20px;
height: 20px;
border-radius: 70%/30%;
border: 2px solid #818181;
box-shadow:
-13px 0 #4A0101, -26px 0 #4A0101, -39px 0 #4A0101,
-52px 0 #4A0101, -65px 0 #4A0101, -78px 0 #4A0101,
-91px 0 #4A0101, -104px 0 #4A0101, -117px 0 #4A0101,
-130px 0 #4A0101, -143px 0 #4A0101, -156px 0 #4A0101,
-169px 0 #4A0101, -182px 0 #4A0101, -195px 0 #4A0101,
-208px 0 #4A0101, -221px 0 #4A0101, -234px 0 #4A0101,
-247px 0 #4A0101, -260px 0 #4A0101;
}
/* ползунок в Хроме */
input[type=range]::-webkit-slider-thumb {
-webkit-appearance: none;
width:20px;
height:20px;
border-radius: 70%/30%;
border: 2px solid #818181;
background: #fff;
box-shadow:
-13px 0 #4A0101, -26px 0 #4A0101, -39px 0 #4A0101,
-52px 0 #4A0101, -65px 0 #4A0101, -78px 0 #4A0101,
-91px 0 #4A0101, -104px 0 #4A0101, -117px 0 #4A0101,
-130px 0 #4A0101, -143px 0 #4A0101, -156px 0 #4A0101,
-169px 0 #4A0101, -182px 0 #4A0101, -195px 0 #4A0101,
-208px 0 #4A0101, -221px 0 #4A0101, -234px 0 #4A0101,
-247px 0 #4A0101, -260px 0 #4A0101;
}
</style>
</head>
<body>
<input type="range" value="0" max="100"/>
</body>
</html>
Результат, так же рабочий:
Чтоб метод тыка и матерного слова, не свёлся у Вас к простому копированию, а был осмысленным и, значит, более плодотворным, я убрал из кода обеих ползунков участок, предназначенный для IE.
Постарайтесь сделать его самостоятельно, и Вы получите наибольшую пользу от этой статьи.
Желаю творческих успехов.
Перемена
Мужчина упал с десятого этажа, и не разбился. Так целиком и похоронили.
Страница из блоков < < < В раздел > > > Вращающийся куб-баннер CSS
Рекомендую: Бесплатные HTML шаблоны на русском от TemplateMonster
улучшенные возможности, новые типы полей и атрибуты
HTML-формы являются элементами управления, которые применяются для сбора информации от посетителей веб-сайта.
Веб-формы состоят из набора текстовых полей, кнопок, списков и других элементов управления, которые активизируются щелчком мыши. Технически формы передают данные от пользователя удаленному серверу.
Для получения и обработки данных форм используются языки веб-программирования, такие как PHP, Perl.
До появления HTML5 веб-формы представляли собой набор нескольких элементов <input type="text">, <input type="password">, завершающихся кнопкой <input type="submit">. Для стилизации форм в разных браузерах приходилось прилагать немало усилий. Кроме того, формы требовали применения JavaScript для проверки введенных данных, а также были лишены специфических типов полей ввода для указания повседневной информации типа дат, адресов электронной почты и URL-адресов.
HTML5-формы решили большинство этих распространенных проблем благодаря наличию новых атрибутов, предоставив возможность изменять внешний вид элементов форм за счет CSS3.
Рис. 1. Улучшенные веб-формы с помощью HTML5Создание HTML5-формы
1. Элемент <form>
Основу любой формы составляет элемент <form>...</form>. Он не предусматривает ввод данных, так как является контейнером, удерживая вместе все элементы управления формы – поля. Атрибуты этого элемента содержат информацию, общую для всех полей формы, поэтому в одну форму нужно включать поля, объединенные логически.
Атрибут | Значение / описание |
---|---|
accept-charset | Значение атрибута представляет собой разделенный пробелами список кодировок символов, которые будут использоваться для отправки формы, например, <form accept-charset="ISO-8859-1">. |
action | Обязательный атрибут, который указывает url обработчика формы на сервере, которому передаются данные. Представляет из себя файл (например, action.php), в котором описано, что нужно делать с данными формы. Если значение атрибута не будет указано, то после перезагрузки страницы элементы формы примут значения по умолчанию. В случае, если вся работа будет выполняться на стороне клиента сценариями JavaScript, то для атрибута action можно указать значение #. Также можно сделать так, чтобы заполненная посетителем форма приходила вам на почту. Для этого нужно внести следующую запись: <form action="mailto:адрес вашей электронной почты" enctype="text/plain"></form> |
autocomplete | Отвечает за запоминание введенных в текстовое поле значений и автоподстановку их при последующем вводе: on — означает, что поле не защищено, и его значение можно сохранять и извлекать, off — отключает автозаполнение для полей форм. |
enctype | Используется для указания MIME-типа данных, отправляемых вместе с формой, например, enctype="multipart/form-data". Указывается только в случае method="post". application/x-www-form-urlencoded — тип содержимого по умолчанию, указывает на то, что передаваемые данные представляют список URL-кодированных переменных формы. Символы пробела (ASCII 32) будут закодированы как +, а специальный символ, например, такой как ! будет закодирован шестнадцатиричной форме как %21. multipart/form-data — используется для отправки форм, содержащих файлы, не-ASCII данные и бинарные данные, состоит из нескольких частей, каждая из которых представляет содержимое отдельного элемента формы. text/plain — указывает на то, что передается обычный (не html) текст. |
method | Задает способ передачи данных формы. Метод get передает данные на сервер через адресную строку браузера. При формировании запроса к серверу все переменные и их значения формируют последовательность вида www.anysite.ru/form.php?var1=1&var2=2. Имена и значения переменных присоединяются к адресу сервера после знака ? и разделяются между собой знаком &. Все специальные символы и буквы, отличные от латинских, кодируются в формате %nn, пробел заменяется на +. Этот метод нужно использовать, если вы не передаете больших объемов информации. Если вместе с формой предполагается отправка какого-либо файла, этот метод не подойдет. Метод post применяется для пересылки данных больших объемов, а также конфиденциальной информации и паролей. Данные, отправляемые с помощью этого метода, не видны в заголовке URL, так как они содержатся в теле сообщения. <form action="action.php" enctype="multipart/form-data" method="post"></form> |
name | Задает имя формы, которое будет использоваться для доступа к элементам формы через сценарии, например, name="opros". |
novalidate | Отключает проверку в кнопке для отправки формы. Атрибут используется без указания значения |
target | Указывает окно, в которое будет направлена информация: _blank — новое окно _self — тот же фрейм _parent — родительский фрейм (если он существует, если нет — то в текущий) _top — окно верхнего уровня по отношению к данному фрейму. Если вызов происходит не из дочернего фрейма, то в тот же фрейм. |
2. Группировка элементов формы
Элемент <fieldset>...</fieldset> предназначен для группировки элементов, связанных друг с другом, разделяя таким образом форму на логические фрагменты.
Каждой группе элементов можно присвоить название с помощью элемента <legend>, который идет сразу за тегом <fieldset>. Название группы проявляется слева в верхней границе <fieldset>. Например, если в элементе <fieldset> хранится контактная информация:
<form>
<fieldset>
<legend>Контактная информация</legend>
<p><label for="name">Имя <em>*</em></label><input type="text"></p>
<p><label for="email">E-mail</label><input type="email"></p>
</fieldset>
<p><input type="submit" value="Отправить"></p>
</form>
Рис. 2. Группировка элементов формы с помощью <fieldset>Атрибут | Значение / описание |
---|---|
disabled | Если атрибут присутствует, то группа связанных элементов формы, находящихся внутри контейнера <fieldset>, отключены для заполнения и редактирования. Используется для ограничения доступа к некоторым полям формы, содержащих ранее введенные данные. Атрибут используется без указания значения — <fieldset disabled>. |
form | Значение атрибута должно быть равно атрибуту id элемента <form> в этом же документе. Указывает на одну или несколько форм, к которым принадлежит данная группа элементов. На данный момент атрибут не поддерживается ни одним браузером. |
name | Определяет имя, которое будет использоваться для ссылки на элементы в JavaScript, или для ссылки на данные формы после заполнения и отправки формы. Является аналогом атрибута id. |
3. Создание полей формы
Элемент <input> создает большинство полей формы. Атрибуты элемента отличаются в зависимости от типа поля, для создания которого используется этот элемент.
С помощью css-стилей можно изменить размер шрифта, тип шрифта, цвет и другие свойства текста, а также добавить границы, цвет фона и фоновое изображение. Ширина поля задается свойством width.
Атрибут | Значение / описание |
---|---|
accept | Определяет тип файла, разрешенных для отправки на сервер. Указывается только для <input type="file">. Возможные значения: file_extension — разрешает загрузку файлов с указанным расширением, например, accept=".gif", accept=".pdf", accept=".doc" audio/* — разрешает загрузку аудиофайлов video/* — разрешает загрузку видеофайлов image/* — разрешает загрузку изображений media_type — указывает на медиа-тип загружаемых файлов. |
alt | Определяет альтернативный текст для изображений, указывается только для <input type="image">. |
autocomplete | Отвечает за запоминание введенных в текстовое поле значений и автоподстановку их при последующем вводе: on — означает, что поле не защищено, и его значение можно сохранять и извлекать, off — отключает автозаполнение для полей форм. |
autofocus | Позволяет сделать так, чтобы в загружаемой форме то или иное поле ввода уже имело фокус (было выбрано), являясь готовым к вводу значения. |
checked | Атрибут проверяет, установлен ли флажок по умолчанию при загрузке страницы для полей типа type="checkbox" и type="radio". |
disabled | Отключает возможность редактирования и копирования содержимого поля. |
form | Значение атрибута должно быть равно атрибуту id элемента <form> в этом же документе. Определяет одну или несколько форм, которым принадлежит данное поле формы. |
formaction | Задает url файла, который будет обрабатывать введенные в поля данные при отправке формы. Задается только для полей типа type="submit" и type="image". Атрибут переопределяет значение атрибута action самой формы. |
formenctype | Определяет, как будут кодироваться данные полей формы при отправке на сервер. Переопределяет значение атрибута enctype формы. Задается только для полей типа type="submit" и type="image". Варианты: application/x-www-form-urlencoded — значение по умолчанию. Все символы кодируются перед отправкой (пробелы заменяются на символ +, специальные символы преобразуются в значения ASCII HEX) multipart/form-data — символы не кодируются text/plain — пробелы заменяются на символ +, а специальные символы не кодируются. |
formmethod | Атрибут определяет метод, который браузер будет использовать для отправки данных формы на сервер. Задается только для полей типа type="submit" и type="image". Переопределяет значение атрибута method формы. Варианты: get — значение по умолчанию. Данные из формы (пара имя/значение) добавляются в url-адрес и отправляются на сервер: URL?имя=значение&имя=значение post — данные формы отправляются в виде http-запроса. |
formnovalidate | Определяет, что данные полей формы не должны проверяться при отправке формы. Переопределяет значение атрибута novalidate формы. Можно использовать без указания значения атрибута. |
formtarget | Определяет, где выводить ответ, полученный после отправки формы. Задается только для полей типа type="submit" и type="image". Переопределяет значение атрибута target формы. _blank — загружает ответ в новое окно/вкладку _self — загружает ответ в то же окно (значение по умолчанию) _parent – загружает ответ в родительский фрейм _top – загружает ответ во весь экран framename – загружает ответ во фрейм с указанным именем. |
height | Значение атрибута содержит количество пикселей без указания единицы измерения. Устанавливает высоту поля формы типа type="image", например, <input type="image" src="img_submit.gif">. Рекомендуется одновременно устанавливать как высоту, так и ширину поля. |
list | Является ссылкой на элемент <datalist>, содержит его id.Позволяет предоставить пользователю несколько вариантов на выбор, когда он начинает вводить значение в соответствующем поле. |
max | Позволяет ограничить допустимый ввод числовых данных максимальным значением, значение атрибута может содержать целое или дробное число. Рекомендуется использовать этот атрибут вместе с атрибутом min. Работает со следующими типами полей: number, range, date, datetime, datetime-local, month, time и week. |
maxlength | Атрибут задает максимальное количество символов, вводимых в поле. Значение по умолчанию 524288 символов. |
min | Позволяет ограничить допустимый ввод числовых данных минимальным значением. |
multiple | Позволяет пользователю ввести несколько значений атрибутов, разделяя их запятой. Применяется в отношении файлов и адресов электронной почты. Указывается без значения атрибута. |
name | Определяет имя, которое будет использоваться для доступа к элементу <form>, к примеру, в таблицах стилей css. Является аналогом атрибута id. |
pattern | Позволяет определять с помощью регулярного выражения синтаксис данных, ввод которых должен быть разрешен в определенном поле. Например, pattern="[a-z]{3}-[0-9]{3}" — квадратные скобки устанавливают диапазон допустимых символов, в данном случае — любые строчные буквы, число в фигурных скобках указывает, что нужны три строчные буквы, после которых следует тире, далее — три цифры в диапазоне от 0 до 9. |
placeholder | Содержит текст, который отображается в поле ввода до заполнения (чаще всего это подсказка). |
readonly | Не позволяет пользователю изменять значения элементов формы, выделение и копирование текста при этом доступно. Указывается без значения атрибута. |
required | Выводит сообщение о том, что данное поле является обязательным для заполнения. Если пользователь попытается отправить форму, не введя в это поле требуемое значение, то на экране отобразится предупреждающее сообщение. Указывается без значения атрибута. |
size | Задает видимую ширину поля в символах. Значение по умолчанию — 20. Работает со следующими типами полей: text, search, tel, url, email и password. |
src | Задает url изображения, используемого в качестве кнопки отправки данных формы. Указывается только для поля <input type="image">. |
step | Используется для элементов, предполагающих ввод числовых значений, указывает величину увеличения или уменьшения значений в процессе регулировки диапазона (шаг). |
type | button — создает кнопку. |
checkbox — превращает поле ввода во флажок, который можно установить или очистить, например, У меня есть автомобиль | |
color — генерирует палитры цветов в поддерживающих браузерах, давая пользователям возможность выбирать значения цветов в шестнадцатеричном формате. | |
date — позволяет вводить дату в формате дд.мм.гггг. День рождения: | |
datetime-local — позволяет вводить дату и время, разделенные прописной английской буквой Т по шаблону дд.мм.гггг чч:мм. День рождения — день и время: | |
email — браузеры, поддерживающие данный атрибут, будут ожидать, что пользователь введет данные, соответствующие синтаксису адресов электронной почты. E-mail: | |
file — позволяет загружать файлы с компьютера пользователя. Выберите файл: | |
hidden — скрывает элемент управления, который не отображается браузером и не дает пользователю изменять значения по умолчанию. | |
image — создает кнопку, позволяя вместо текста на кнопке вставить изображение. | |
month — позволяет пользователю вводить год и номер месяца по шаблону гггг-мм. | |
number — предназначено для ввода целочисленных значений. Его атрибуты min, max и step задают верхний, нижний пределы и шаг между значениями соответственно. Эти атрибуты предполагаются у всех элементов, имеющих численные показатели. Их значения по умолчанию зависят от типа элемента. Укажите количество (от 1 до 5): | |
password — создает текстовые поля в форме, при этом вводимые пользователем символы заменяются на звездочки, маркеры, либо другие, установленные браузером значки. Введите пароль: | |
radio — создает переключатель — элемент управления в виде небольшого кружка, который можно включить или выключить. Вегетарианец: | |
range — позволит создать такой элемент интерфейса, как ползунок, min / max — позволят установить диапазон выбора | |
reset — создает кнопку, которая очищает поля формы от введенных пользователем данных. | |
search — обозначает поле поиска, по умолчанию поле ввода имеет прямоугольную форму. Поиск: | |
submit — создает стандартную кнопку, активизируемую щелчком мыши. Кнопка собирает информацию с формы и отправляет ее для обработки. | |
text — создает текстовые поля в форме, выводя однострочное текстовое поле для ввода текста. | |
time — позволяет вводить время в 24-часовом формате по шаблону чч:мм. В поддерживающих браузерах оно отображается как элемент управления в виде числового поля ввода со значением, изменяемым с помощью мыши, и допускает ввод только значений времени. Укажите время: | |
url — поле предназначено для указания URL-адресов. Главная страница: | |
week — соответствующий инструмент-указатель позволяет пользователю выбрать одну неделю в году, после чего обеспечит ввод данных в формате нн-гггг. В зависимости от года число недель может быть 52 или 53. Укажите неделю: | |
value | Определяет текст, отображаемый на кнопке, в поле или связанный текст. Не указывается для полей типа file. |
width | Значение атрибута содержит количество пикселей. Позволяет задать ширину полей формы. |
4. Текстовые поля ввода
Элемент <textarea>...</textarea> используется вместо элемента <input type="text">, когда нужно создать большие текстовые поля. Текст, отображаемый как исходное значение, помещается внутрь тега. Размеры поля устанавливаются при помощи атрибутов cols – размеры по горизонтали, rows – размеры по вертикали. Высоту поля можно задать свойством height. Все размеры считаются исходя из размера одного символа моноширинного шрифта.
Атрибут | Значение / описание |
---|---|
autofocus | Устанавливает фокус на нужном начальном текстовом поле автоматически. |
cols | Устанавливает ширину через количество символов. Если пользователь вводит больше текста, появляется полоса прокрутки. |
disabled | Отключает возможность редактирования и копирования содержимого поля. |
form | Значение атрибута должно быть равно значению атрибута id элемента <form> в этом же документе. Определяет одну или несколько форм, которым принадлежит данное текстовое поле. |
maxlength | Значение атрибута задает максимальное число символов для ввода в поле. |
name | Задает имя текстового поля. |
placeholder | Определяет короткую текстовую подсказку, которая описывает ожидаемое вводимое значение. |
readonly | Отключает возможность редактирования содержимого поля. |
required | Выводит сообщение о том, что данное поле является обязательным для заполнения. |
rows | Указывает число, которое означает, сколько строк должно отображаться в текстовой области. |
wrap | Определяет, должен ли текст сохранять переносы строк при отправке формы. Значение hard сохраняет перенос, а значение soft не сохраняет. Если используется значение hard, то должно указываться значение атрибута cols. |
5. Раскрывающийся список
Списки дают возможность расположить большое количество пунктов компактно. Раскрывающиеся списки создаются при помощи элемента <select>...</select>. Они позволяют выбрать одно или несколько значений из предложенного множества. По умолчанию в поле списка отображается его первый элемент.
Для добавления в список пунктов используются элементы <option>...</option>, которые располагаются внутри <select>.
Для систематизации списков применяется элемент <optgroup>...</optgroup>, который создает заголовки в списках.
Для списков возможно изменить размер шрифта, тип шрифта, цвет и другие свойства текста, а также добавить границы, цвет фона и фоновое изображение.
Атрибут | Значение / описание |
---|---|
autofocus | Устанавливает автоматический фокус на элементе при загрузке страницы. |
disabled | Отключает раскрывающийся список. |
form | Определяет форму, которой принадлежит данный список. В качестве значения атрибута указывается идентификатор формы. |
multiple | Дает возможность выбора одного или нескольких пунктов, для этого при выборе нужно нажать и удерживать нажатой клавишу Ctrl. |
name | Определяет имя для выпадающего списка. Значение атрибута содержит название, отражающее тематику списка. |
required | Выводит сообщение о том, что пользователь должен выбрать значение из раскрывающегося списка перед отправкой формы. |
size | Задает количество одновременно видимых на экране элементов списка. Если количество элементов списка превышает установленное количество, появляется полоса прокрутки. Значение атрибута задается целым положительным числом. |
Атрибут | Значение / описание |
---|---|
disabled | Делает недоступным для выбора элемент списка. |
label | Задает укороченную версию для элемента, которая будет отражаться в выпадающем списке. Значение атрибута содержит текст, описывающий соответствующий пункт выпадающего списка. |
selected | Отображает выбранный элемент списка по умолчанию при загрузке страницы браузером. |
value | Указывает значение, которое будет отправлено на сервер при отправке формы. |
Атрибут | Значение / описание |
---|---|
disabled | Отключает данную группу элементов списка для выбора. |
label | Задает заголовок для группы элементов выпадающего списка. Значение атрибута содержит текст, недоступный для выбора, который будет располагаться над соответствующими пунктами списка. Текст выделяется в браузере жирным начертанием. |
6. Надписи к полям формы
Надписи к элементам формы создаются с помощью элемента <label>...</label>. Существует два способа группировки надписи и поля. Если поле находится внутри элемента <label>, то атрибут for указывать не нужно.
<!-- с указанием атрибута for -->
<label for="comments">Когда вы последний раз летали на самолете?</label>
<textarea></textarea>
<!-- без атрибута for -->
<p><label>Кошка<input type="checkbox"></label></p>
Атрибут | Значение / описание |
---|---|
for | Определяет, к какому полю формы привязан данный элемент. Можно создавать поясняющие надписи к следующим элементам формы: <input>, <textarea>, <select>. Значение атрибута содержит идентификатор поля формы. |
7. Кнопки
Элемент <button>...</button> создает кликабельные кнопки. В отличие от кнопок, созданных <input> (<input type="submit"></input>, <input type="image">, <input type="reset">, <input type="button">), внутрь элемента <button> можно поместить контент — текст или изображение.
Для корректного отображения элемента <button> разными браузерами нужно указывать атрибут type, например, <button type="submit"></button>.
Кнопки позволяют пользователям передавать данные в форму, очищать содержимое формы или предпринимать какие-либо другие действия. Можно создавать границы, изменять фон и выравнивать текст на кнопке.
Атрибут | Значение / описание |
---|---|
autofocus | Устанавливает фокус на кнопке при загрузке страницы. |
disabled | Отключает кнопку, делая ее некликабельной. |
form | Указывает на одну или несколько форм, которым принадлежит данная кнопка. Значение атрибута — идентификатор соответствующей формы. |
formaction | Значение атрибута содержит url-адрес обработчика данных формы, отправляемых при нажатии на кнопку. Только для кнопки типа type="submit". Переопределяет значение атрибута action, указанного для элемента <form>. |
formenctype | Задает тип кодировки данных формы перед отправкой на сервер при нажатии на кнопки типа type="submit". Переопределяет значение атрибута enctype, указанного для элемента <form>. Возможные значения: application/x-www-form-urlencoded — значение по умолчанию. Все символы перед отправкой будут закодированы. multipart/form-data — символы не кодируются. Используется в случае, когда с помощью формы загружаются файлы. text/plain — символы не кодируются, а пробелы заменяются на символ +. |
formmethod | Атрибут определяет метод, который браузер будет использовать для отправки формы. Переопределяет значение атрибута method, указанного для элемента <form>. Указывается только для кнопок типа type="submit". Возможные значения: get — данные из формы (пара имя/значение) добавляются в url-адрес и отправляются на сервер. Данный способ имеет ограничения по размеру отправляемых данных и не подходит для отправки паролей и конфиденциальной информации. post — данные из формы добавляются в виде http-запроса. Метод является более надежным и безопасным, чем get и не имеет ограничений по размеру. |
formnovalidate | Атрибут задает, что данные формы не должны проверяться при отправке. Указывается только для кнопок типа type="submit". |
formtarget | Атрибут задает, в каком окне выводить результат после отправки формы. Указывается только для кнопок типа type="submit". Переопределяет значение атрибута target, указанного для элемента <form>. _blank — загружает ответ в новое окно/вкладку _self — загружает ответ в то же окно (значение по умолчанию) _parent — загружает ответ в родительский фрейм _top — загружает ответ во весь экран framename — загружает ответ во фрейм с указанным именем. |
name | Задает имя кнопки, значение атрибута — текст. Используется для ссылки на данные формы, после того как форма была отправлена, или для ссылки на данную кнопку (кнопки) в JavaScript. |
type | Определяет тип кнопки. Возможные значения: button — кликабельная кнопка reset — кнопка сброса, возвращает первоначальное значение submit — кнопка для отправки данных формы. |
value | Задает значение по умолчанию, отправляемое при нажатии на кнопку. |
8. Флажки и переключатели в формах
Флажки в формах задаются с помощью конструкции <input type="checkbox">, а переключатель — при помощи <input type="radio">.
Флажков, в отличие от переключателей, в одной форме может быть установлено несколько. Если для флажков указан атрибут checked, то при загрузке станицы на соответствующих полях формы флажки уже будут установлены.
Элемент <label> применяется при реализации выбора с помощью переключателей и флажков. Можно выбрать нужный пункт, просто щелкая кнопкой мыши на тексте, связанном с ним. Для этого нужно поместить <input> внутрь элемента <label>.
Атрибут type | htmlbook.ru
Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS |
3.0+ | 1.0+ | 4.0+ | 1.0+ | 1.0+ | 1.0+ | 1.0+ |
Спецификация
HTML: | 3.2 | 4.01 | 5.0 | XHTML: | 1.0 | 1.1 |
Описание
Сообщает браузеру, к какому типу относится элемент формы.
Синтаксис
HTML |
|
XHTML |
|
Обязательный атрибут
Да
Значения
В табл. 1 перечислены возможные значения атрибута type и получаемый вид поля формы.
В HTML5 добавлены новые значения, представленные в табл. 2.
Тип | Описание |
---|---|
color | Виджет для выбора цвета. |
date | Поле для выбора календарной даты. |
datetime | Указание даты и времени. |
datetime-local | Указание местной даты и времени. |
Для адресов электронной почты. | |
number | Ввод чисел. |
range | Ползунок для выбора чисел в указанном диапазоне. |
search | Поле для поиска. |
tel | Для телефонных номеров. |
time | Для времени. |
url | Для веб-адресов. |
month | Выбор месяца. |
week | Выбор недели. |
Поддержка этих значений браузерами показана в табл. 3.
Значение | Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS |
color | 21.0+ | 11.01+ | |||||
date | 5.0+ | 10.62+ | 5.0+ | 5.0+ | |||
datetime | 5.0+ | 10.62+ | 5.0+ | 5.0+ | |||
datetime-local | 5.0+ | 10.62+ | 5.0+ | 5.0+ | |||
10.0 | 5.0+ | 10.62+ | 5.0+ | 4.0+ | 2.3+ | 3.1+ | |
month | 5.0+ | 10.62+ | 5.0+ | 5.0+ | |||
number | 10.0 | 6.0+ | 10.62+ | 5.0+ | 2.3+ | 4.0+ | |
range | 10.0 | 5.0+ | 10.62+ | 5.0+ | 23.0+ | 5.0+ | |
search | 10.0 | 5.0+ | 11.01+ | 5.0+ | 4.0+ | 4.0+ | |
tel | 10.0 | 5.0+ | 11.01+ | 5.0+ | 4.0+ | 3.1+ | |
time | 5.0+ | 10.62+ | 5.0+ | 5.0+ | |||
url | 10.0 | 5.0+ | 10.62+ | 5.0+ | 4.0+ | 2.3+ | 3.1+ |
week | 5.0+ | 10.62+ | 5.0+ | 5.0+ |
Значение по умолчанию
text
Пример 1
HTML5IECrOpSaFx
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Тег input, атрибут type</title>
</head>
<body>
<form action="input10.php">
<p><input type="radio" name="drink" value="rad1"> Пиво<Br>
<input type="radio" name="drink" value="rad2"> Чай<Br>
<input type="radio" name="drink" value="rad3"> Кофе</p>
<p><input type="image" src="images/imgbutton.gif"></p>
</form>
</body>
</html>
Пример 2
HTML5IECrOpSaFx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Тег input, атрибут type</title>
</head>
<body>
<form>
<p>Введите число от 1 до 10</p>
<p><input type="range" min="1" max="10"></p>
</form>
</body>
</html>