Отключить округление элемента ввода iPhone / Safari - PullRequest
354 голосов
/ 27 мая 2010

Мой веб-сайт хорошо отображается в браузере iPhone / Safari, за одним исключением: мои поля ввода текста имеют странный округленный стиль, который совсем не выглядит хорошо с остальной частью моего сайта.

Есть ли способ проинструктировать Safari (с помощью CSS или метаданных) не округлять поля ввода и делать их прямоугольными, как предполагалось?

Ответы [ 11 ]

624 голосов
/ 27 мая 2010

В iOS 5 и более поздних версиях добрый старик border-radius добивается цели:

input {
    border-radius: 0;
}

Если вы должны удалить только закругленные углы на iOS или по какой-либо причине не можете нормализовать закругленные углы для разных платформ, используйте вместо этого префиксное свойство -webkit-border-radius, которое все еще поддерживается. Конечно, обратите внимание, что Apple может отказаться от поддержки свойства с префиксом в любое время, но, учитывая их другие возможности CSS для платформы, есть вероятность, что они сохранят его.

В старых версиях вы должны были установить -webkit-appearance: none вместо:

input {
    -webkit-appearance: none;
}
48 голосов
/ 22 января 2011

input -webkit-appearance: none; само по себе не работает.

Попробуйте добавить -webkit-border-radius:0px; дополнительно.

35 голосов
/ 21 января 2014

Это лучший способ убрать закругленные в IOS.

textarea,
input[type="text"],
input[type="button"],
input[type="submit"] {
     -webkit-appearance: none;
     border-radius: 0;
}

Примечание: Пожалуйста, не используйте этот код для опции выбора. Это будет иметь проблемы с нашим выбором.

11 голосов
/ 16 марта 2016

Принятый ответ заставил радио-кнопку исчезнуть на Chrome. Это работает:

input:not([type="radio"]):not([type="checkbox"]) {
    -webkit-appearance: none;
    border-radius: 0;
}
7 голосов
/ 08 ноября 2012

Вот полное решение для Compass (SCSS):

input {
  -webkit-appearance: none;  // remove shadow in iOS
  @include border-radius(0);  // remove border-radius in iOS
}
6 голосов
/ 23 августа 2012

Для меня на iOS 5.1.1 на iPhone 3GS мне пришлось очистить стиль поля поиска и установить его в предназначенном для этого стиле

input[type="search"] {-webkit-appearance: none; border-radius: 0 3px 3px 0;}

Выполнение -webkit-border-radius: 0; само по себе не очистило нативный стиль. Это было также для веб-просмотра на нативном приложении.

4 голосов
/ 18 сентября 2015

Пожалуйста, попробуйте это:

Попробуйте добавить input Css, как это:

 -webkit-appearance: none;
       border-radius: 0;
4 голосов
/ 09 февраля 2015

Если вы используете normalize.css, эта таблица стилей будет делать что-то вроде input[type="search"] { -webkit-appearance: textfield; }.

Это имеет более высокую специфичность, чем отдельный селектор классов, такой как .foo, так что имейте в виду, что тогда вы не можете просто сделать .my-field { -webkit-appearance: none; }. Если у вас нет лучшего способа добиться правильной специфики, это поможет:

.my-field { -webkit-appearance: none !important; }

4 голосов
/ 05 сентября 2012

У меня была такая же проблема, но только для кнопки отправки. Нужно убрать внутреннюю тень и закругленные углы -

input[type="submit"] { -webkit-appearance:none; -webkit-border-radius:0; }
3 голосов
/ 12 октября 2012

Я использовал простой border-radius: 0; убрать закругленные углы для типов ввода текста.

...