Я пытаюсь центрировать значение поля ввода (а не заполнителя). Как-то iOS не "распознает" центрирование, однако Firefox, сафари и хром делают.
HTML
<input type="time" value="12:00">
CSS
input {
background-color: lightyellow;
border: none;
outline: none;
text-align: center;
width: 200px;
padding: 5%;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
-webkit-background-clip: border-box;
-webkit-background-origin: padding-box;
-webkit-background-size: auto;
-webkit-box-shadow: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
Результатом должен быть желтый ящик, содержащий время с 12:00 по центру, на устройствах iOS это не работает.
Здесь jsfiddle: http://jsfiddle.net/y9TPM/4/
Элемент ввода таинственный. Некоторые браузеры имеют значение inline-block
установленное для свойства отображения, а некоторые браузеры имеют inline
значение.
И встроенные элементы не могут иметь ширину и поэтому не могут выровнять текст вправо или в центре.
Таким образом, в вашем случае браузеры, по умолчанию для значения inline-block
для свойства отображения, будут иметь эффект выравнивания. Но это не означает, что браузеры по умолчанию используют inline
значение.
Таким образом, установка свойства отображения явно облегчит вам ситуацию. Просто установите для свойства отображения inline-block
или block
чтобы иметь ширину или выравнивание.
FYI, большинство браузеров должны отображать свойство отображения входного элемента в inline-block
. Вот краткая ссылка: default css для html elemnts.
display: block;
сделал волшебство, по каким-то причинам он необходим для iOS, но не для настольных компьютеров. Если у кого-то есть объяснение, я рад его слышать