移除移动 Safari (iPhone)上的文本区内阴影

默认情况下,似乎 Mobile Safari 为所有输入字段(包括 textarea)添加了顶部内阴影。有办法移除吗?

当你有一个白色的背景时,它尤其丑陋。

106266 次浏览

通过添加 css 样式:

  appearance: none;
-moz-appearance: none;
-webkit-appearance: none;

根据 https://developer.mozilla.org/en-US/docs/Web/CSS/appearance

设置 input标记的 backgroundborder css 属性似乎也有效。

试试这个:

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


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

在添加 CSS 样式时

-webkit-appearance: none;

将会工作,它摆脱了一切。你可能想试试这个代替:

box-shadow: none !important;

这样你就可以保留下箭头了。

有时您可能会有一个样式表破坏了 appearance: none;,所以当这种情况发生时,修复它的方法是使用 caret。最好的方法将是重写您的代码,并找出您的代码中有什么部分搞乱了 none的样式

在使用 caret之前,您需要知道它可能会给您带来一些其他样式的麻烦

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

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

这是一个简单的解决办法

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

Https://stackoverflow.com/a/51626446/9287284

background-clip: padding-box;

我在这里发现了一条老的同样的回答评论。

Https://stackoverflow.com/a/29750016/9287284