Shiv - это просто способ принудительно создавать новые элементы независимо от того, поддерживается ли он или нет. но адресация типа и атрибутов это другое дело, а также селекторы. отступлением для новых «входов» является тип «текст» . это касается поиска, выбора даты и других (не может отслеживать новые).
Существует два ключа к пониманию того, почему автоматический резервный режим работает согласованно во всех основных браузерах:
- Типом по умолчанию для элементов ввода является «текст» .
- Все браузеры игнорируют неизвестные атрибуты.
Следствием этих двух моментов является то, что если вы скажете <input type="foo" bar="baz"/>
, , то все браузеры будут обрабатывать это идентично <input type="text"/>
(, если только "foo" не является распознанным типом ввода или "bar" - это распознанный атрибут элемента ввода).
, поскольку type="search"
неизвестно IE7, оно возвращается к type="text"
, и вы не можете выбрать его в CSS как type="search"
, так как теперь оно type="text"
для решения вашей проблемы с селектором, вы можете попробовать использовать selectivizr , который использует возможности библиотек JS для сопоставления селекторов между кросс-браузерами (даже в неподдерживаемых браузерах, использующих некоторый псевдоселекторный скрипт соответствия). хотя я не знаю, подхватят ли они созданные Шив элементы.
или лучше, используйте обычный способ создания окна поиска в HTML / JS в качестве запасного варианта,
для простого ответа я бы сделал то, что прокомментировал другой парень. Просто создайте класс с именем «search» и примените это имя класса ко всем окнам поиска. стиль их так же, как тот, с которым вы использовали селектор, как:
input[type="search"],input.search{
/*styles*/
}
<input type="search" class="search" />