Ввод даты, такой как <input type="date" name="due_date" id="due_date" min="2011-09-01" maxlength="10" class="span8">
в Chrome, позволяет пользователю видеть «всплывающий» календарь, чтобы помочь выбрать дату. Вчера я заметил, что поведение прекратилось; ввод позволяет пользователю перемещать стрелки вверх/вниз по частям даты (месяц/день/год). Я посетил блог Chrome и запустил поиск в Google, но не нашел упоминания об этом изменении. Почему изменилось поведение input type="date"
? Любопытно, что это изменение, похоже, ограничено Bootstrap, поскольку http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_input_type_date по-прежнему показывает средство выбора даты.
Почему изменилось поведение `input type=date`?
Ответы (3)
Обновление Команда Chromium приняла ошибку и отправила исправление обратно в WebKit< /а>. Суть изменения заключается в том, что элементы управления датой будут отображаться внутри элемента гибкого поля независимо от стиля, примененного к элементу управления input[type='date'].
Я который сообщил об упомянутом здесь дефекте в Chromium. Одним из предлагаемых решений является применение display: inline-block; в окно выбора календаря:
input[type="date"]::-webkit-calendar-picker-indicator{
display:inline-block;
}
Однако это шаткое решение, потому что элементы управления по-прежнему смещаются в другое место, кроме выравнивания по правому краю в элементе управления input[type="date"].
Другой вариант - плавать вправо:
input[type="date"]::-webkit-calendar-picker-indicator {
display:inline-block;
margin-top:2%;
float:right;
}
input[type="date"]::-webkit-inner-spin-button {
display:inline-block;
float:right;
}
Побочным эффектом этого является инвертирование элементов управления счетчиком и выбором календаря.
Лучший хак, я думаю, это убрать счетчик и плавать вправо:
input[type="date"]::-webkit-calendar-picker-indicator{
display:inline-block;
margin-top:2%;
float:right;
}
input[type="date"]::-webkit-inner-spin-button {
/* display: none; <- Crashes Chrome on hover */
-webkit-appearance: none;
margin: 0;
}
block
, поэтому нет смысла пытаться установить для него что-то еще. См. эту статью о хитростях CSS или просто взгляните на вычисляемый стиль в инструментах разработчика Chrome. . Говоря об этих инструментах, люди могут не знать, что вы можете перейти в «Настройки»> «Элементы»> «Показать теневой DOM», чтобы увидеть элементы (-webkit-inner-spin-button
и т. д.), упомянутые в этом ответе.
- person CherryFlavourPez; 28.02.2013
обновлено
Найдена проблема
Bootstrap использует 2 атрибута стиля.
1 – display:inline-block, из-за чего Google переносит стрелку на другую строку.
2 – высота: 20 пикселей, из-за чего вы не видите эту "линию"
padding
.
- person Jeromy French; 26.02.2013
Обновить
Проблема с Google Chrome была отмечена как регресс, поэтому мы надеемся, что она будет исправлена в ближайшее время. В качестве временного обходного пути будет работать следующее:
input[type=date]::-webkit-calendar-picker-indicator {
display: inline-block;
}
Таким образом, вы можете установить для свойства отображения входов все, что вам нравится, и все будет работать, как и раньше.
Исходный ответ
Установка display: -webkit-inline-flex
(которая, по-видимому, используется по умолчанию для <input type="date" />
) решит эту проблему, однако это может изменить макет, поскольку ввод обрабатывается как встроенный элемент.
Мне это кажется ошибкой, я посмотрю, если кто-то уже подал отчет об ошибке, в противном случае я буду.
<label for="date1">Choose date</label><input type="date" name="date1" id="date1">
в пример формы по умолчанию в twitter.github.com/bootstrap/base-css.html#forms. - person Jeromy French   schedule 25.02.2013