在Mobile Safari(iPhone)上删除textarea内部阴影


152

默认情况下,Mobile Safari似乎在所有输入字段(包括文本区域)中添加了顶部内部阴影。有没有办法将其删除?

当您有白色背景时,这尤其难看。

Answers:


340

通过添加以下CSS样式:

-webkit-appearance: none;

26
在输入类型复选框和单选按钮选择器上添加此属性时要小心,因为它会隐藏复选框和单选按钮;)
Zain Shaikh 2012年

14
感谢您的回答里昂。顺便说一句,使用它的最佳方法是仅将其应用到textarea, input[type="text"], input[type="submit"]
jgthms 2013年

8
也不要忘记input[type="password"]
Nick Pyett 2014年

7
也不要忘记[type="email"]
Willster,2014年

35
根据您使用的输入类型,使用not运算符可能会更容易:input:not([type=checkbox]):not([type=radio])
Justin Fisher

30

在添加CSS样式时

-webkit-appearance: none;

将工作,它摆脱了一切。您可能想尝试以下方法:

box-shadow: none !important;

这样,您可以保持向下箭头。


6
仅添加box-shadow属性不起作用。内部阴影仍然显示在iOS的Safari中。
寂静的嘴

22

这是简单的解决方案

input[type=text] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

9

有时,您可以在其中放置样式表,appearance: none;以便在发生这种情况时对其进行修复caret。最好的方法是重写代码,找出代码的一部分,弄乱了样式none

使用之前,caret您需要了解其他样式可能会给您带来麻烦

-webkit-appearance: caret;
   -moz-appearance: caret;
     -o-appearance: caret;
        appearance: caret;

注意:使用nonecaret不是最佳选择。



-31

设置标签的一个backgroundbordercss属性input似乎也可行。

试试这个:

<style>
input {
    background: #ccc;
    border: none;
}
</style>

<form>
First name: <input type="text"/><br />
Last name: <input type="text" />
</form>

9
错误和误导。发布前,请在正确的设备上测试您的代码...
Ariel

答案确实错误,OP对此没什么问的
Jacta 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.