Почему HTML 5 не имеет редактируемого combobox или локального меню?
Мне было интересно, в новом HTML 5 мы получим теги <audio> и <video> , но почему бы не создать редактируемый combobox и встроенную поддержку локального меню?
Я прошу об этом, потому что это самые распространенные проблемы, с которыми я сталкиваюсь, когда мне приходится разрабатывать веб-решение для типичного приложения на основе таблиц (например, приложения для управления заказами). В правильном приложении на стороне клиента я могу использовать ОС для предоставления этих возможностей вне поля (например, JPopupMenu, JComboBox). Для webapp я должен искать javascript (библиотеки), чтобы выполнить что-то вроде этого.
Почему это не в HTML 5?
Я знаю, что мне следует избегать обсуждения, например вопросов, так что вот еще несколько вопросов: знаете ли вы библиотеки, которые могут делать вещи всплывающего меню и редактируемые объекты combobox дешево (возможно, с небольшим образцом кода)?
Ответы
Ответ 1
На самом деле редактируемое combobox или только combobox можно создать с использованием нового атрибута list на элементе ввода. Он указывает на элемент datalist, который может предоставить список предопределенных опций:
<input list=languages>
<datalist id=languages>
<option value="English"></option>
<option value="Dutch"></option>
</datalist>
Для меню старый элемент меню был повторно использован.
Вы можете использовать хотя бы datalist в IE >= 10, Firefox >= 37, Chrome >= 39, Opera >= 29. Данные из caniuse datalist. Что касается элемента меню, только Firefox, похоже, частично поддерживает его.
Ответ 2
Состояние форм и элементов управления в браузерах - это большой беспорядок в целом.
- Нет последовательности для реализации. Некоторые используют собственные средства управления ОС (Safari), некоторые используют специальные элементы управления (Opera), а некоторые используют сочетание обоих (IE)
- Из-за вышеизложенного стиль/брендинг формы не является надежным.
- Опять же, из-за вышеизложенного, мы страдаем (z) с проблемами z-index.
- Даже в браузерах, где вы можете применить стиль, это противоречиво. Когда-либо добавляйте границу CSS в
input
только для просмотра квадратов вокруг ваших переключателей?
В общем, я с тобой согласен. Мы живем с теми же формами управления с HTML 3. Таким образом, мы, веб-разработчики, оставляем для создания более богатых и расширенных элементов управления самостоятельно. И хотя они могут работать, они в значительной степени полагаются на DHTML и могут иметь значительные последствия для использования.
Было бы неплохо увидеть продвижение в этой области.
Ответ 3
это легко выполнимо с помощью JavaScript, <audio>
и <video>
(и <canvas>
!) не являются.
Опираясь на библиотеки JavaScript, это не плохо. Если браузер сделал все, каждая веб-страница будет выглядеть одинаково.