Eliminar textarea inner shadow en Mobile Safari (iPhone)


152

Por defecto, parece que Mobile Safari agrega la sombra interna superior a todos los campos de entrada, incluido el área de texto. ¿Hay un modo de quitarlo?

Es especialmente feo cuando tienes un fondo blanco.

Respuestas:


340

Al agregar este estilo CSS:

-webkit-appearance: none;

26
tenga cuidado al agregar esta propiedad en la casilla de verificación de tipo de entrada y en los selectores de botones de radio, ya que oculta las casillas de verificación y los botones de radio;)
— Zain Shaikh

14
Gracias por la respuesta Lyon. Por cierto, la mejor manera de usarlo es aplicarlo solo a textarea, input[type="text"], input[type="submit"].
— jgthms

8
No te olvides input[type="password"]también.
— Nick Pyett

77
¡No te olvides [type="email"]también!
— Willster

35
Puede ser más fácil usar el operador no dependiendo de los tipos de entrada que esté usando:input:not([type=checkbox]):not([type=radio])
— Justin Fisher

30

Mientras agrega el estilo CSS

-webkit-appearance: none;

funcionará, se deshace de todo. Es posible que desee probar esto en su lugar:

box-shadow: none !important;

De esta manera mantienes la flecha hacia abajo.


66
Simplemente agregar la propiedad de cuadro de sombra no funciona. La sombra interna todavía aparece en Safari en iOS.
— silentmouth

22

Aquí está la solución fácil.

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

9

A veces puede tener una hoja de estilo allí rota, appearance: none;por lo que es una forma de solucionarlo cuando eso sucede caret. La mejor manera será reescribir su código y descubrir qué es parte de su código, lo que arruina el estilonone

Antes de usarlo caret, debe saber que puede causarle problemas con otros estilos

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

NOTA: El uso none, caretno es el óptimo.



-31

Establecer cualquiera de las propiedades backgroundy bordercss de la inputetiqueta también parece funcionar.

Prueba esto:

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

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

9
Incorrecto y engañoso. Pruebe su código en el dispositivo correcto antes de publicar ...
— Ariel

Respuesta realmente incorrecta, nada de eso es lo que pregunta OP
— Jacta
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.