Вход в HTML5: нет фонового изображения в Chrome?
Я вытаскиваю свои волосы, пытаясь заставить Chrome создать мой вход search
с фоновым изображением. У Firefox нет проблем, но я боюсь, потому что он рассматривает ввод как обычный ввод текста. Это просто невозможно?
Попробуйте это как демонстрацию:
<input type="search" />
input[type="search"] {
background: transparent
url(http://google.com/intl/en_ALL/images/srpr/logo1w.png) no-repeat 0 0;
}
Если он работает правильно, он должен разместить логотип Google (или его часть) в качестве фонового изображения для входа "Поиск". Но, как вы увидите, когда вы смотрите на это в Chrome, он НЕ РАБОТАЕТ. Любые идеи, или это только один из причуд HTML5?:\
Ответы
Ответ 1
Вы можете заставить Chrome (и Safari) лучше играть со стилями в поле поиска HTML5 (включая фоновые изображения), если вы примените это в своем CSS:
-webkit-appearance: none;
Вы также можете изменить размер -webkit-box-size, чтобы...
-webkit-box-sizing: content-box;
... так как кажется, что Webkit по умолчанию использует это значение границы (в основном, старая модель IE5).
Предупредите, что по-прежнему нет (очевидного) способа повлиять на положение/внешний вид кнопки очистки поля, и поскольку только Webkit генерирует эту кнопку, вы можете обнаружить некоторые новые неприятности, связанные с перекрестным браузером.
Ответ 2
Полное решение для удаления всего дополнительного дизайна, вызванного браузером. Это изменит поле поиска на нормальное поле ввода
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
display: none;
}
input[type="search"]{
-webkit-appearance: none;
-webkit-box-sizing: content-box;
outline:none;
}
Ответ 3
Как вы сказали, Mozilla рассматривает входы поиска как текст. Тем не менее, для браузеров Webkit (Chrome, Safari) вход для поиска оформляется как созданная клиентом HTML-оболочка для внутреннего веб-сайта Cocoa NSSearchField. Это то, что дает ему круглые края и кнопку "x", чтобы очистить себя, когда в нем есть текст. К сожалению, кажется, что не только эти дополнительные функции недоступны CSS/JS, но также кажется, что нет спецификации W3 для того, какие свойства CSS могут применяться к этому элементу, а также к другим новым элементам HTML5. Пока не будет такой спецификации, я бы не ожидал, что будет иметь последовательное поведение.
Ответ 4
Кнопка отмены может быть оформлена следующим образом
input[type="search"]::-webkit-search-cancel-button {
/* Remove default */
-webkit-appearance: none;
/* Now your own custom styles */
height: 10px;
width: 10px;
background: red;
/* Will place small red box on the right of input (positioning carries over) */
}
Стилирование можно удалить с помощью
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
display: none;
}
http://css-tricks.com/7261-webkit-html5-search-inputs/