2012-08-05 19 views
13

Quiero crear un campo de entrada como el de Android Ice Cream Sandwich en HTML/CSS solamente y sin usar imágenes.
Estoy atascado con la fabricación de estos pequeños bordes (la imagen a continuación), sería genial si alguien pudiera ayudar.campo de entrada similar a ICS de Android en CSS

Android inpu field

+0

Lo sentimos, no hemos visto su respuesta. Probé esto: input [type = "text"] { border: solid cyan 1px; borde superior: sólido transparente 1px; altura: 5px; desbordamiento: visible; } De ninguna manera, el desbordamiento siempre está oculto :( –

+0

podemos hacer este cuadro de entrada antes y después de los pseudo-elementos? – Mak

+0

Puede que le interese esta pregunta similar con un par de soluciones: http://stackoverflow.com/q/14479606/1254484 – Pascal

Respuesta

36

EDITAR

me gustaría incluir el comentario de owencm para las personas que tropiezan con esta cuestión, ya que me parece de lo más elegante:

CSS

input.holo[type='text'] { 
    /* You can set width to whatever you like */ 
    width: 200px; 
    font-family: "Roboto", "Droid Sans", sans-serif; 
    font-size: 16px; 
    margin: 0; 
    padding: 8px 8px 6px 8px; 
    position: relative; 
    display: block; 
    outline: none; 
    border: none; 
    background: bottom left linear-gradient(#a9a9a9, #a9a9a9) no-repeat, bottom center linear-gradient(#a9a9a9, #a9a9a9) repeat-x, bottom right linear-gradient(#a9a9a9, #a9a9a9) no-repeat; 
    background-size: 1px 6px, 1px 1px, 1px 6px; 
} 
input.holo[type='text']:hover, input.holo[type='text']:focus { 
    background: bottom left linear-gradient(#0099cc, #0099cc) no-repeat, bottom center linear-gradient(#0099cc, #0099cc) repeat-x, bottom right linear-gradient(#0099cc, #0099cc) no-repeat; 
    background-size: 1px 6px, 1px 1px, 1px 6px; 
} 

HTML

<input type='text' class='holo'/> 

jsFiddle http://jsfiddle.net/QKm37/

solución original

<span style=" 
    border-bottom: solid 1px cyan; 
    border-left: solid 1px cyan; 
    margin: 20px; 
    border-right: solid 1px cyan; 
    overflow: visible; 
    max-height: 0.2em; 
    display: inline-block; 
    padding: 2px; 
"> 
<input type="text" style=" 
    outline: none; 
    border: none; 
    background: transparent; 
    display: inline-block; 
    position: relative; 
    bottom: 0.8em; 
"> 
</span> 
+1

tengo una solución quizás mejor ... editare su publicación lo siento por eso ... pero está cerrado. –

+3

siguientes trabajos en Chrome sin etiquetas adicionales: http://jsfiddle.net/QKm37/ – owencm

+0

'' ... ¿me estás tomando el pelo? –

Cuestiones relacionadas