2011-12-20 13 views
23

¿Alguien puede dar una solución simple sobre cómo alinear entradas de formulario en la misma línea, por ejemplo, muchas veces cuando estoy construyendo un formulario puedo hacer que se alineen uno encima del otro y se ve bien, pero si pongo dos entradas como un textarea/texto al lado de otro texto o un botón, obtengo diferencias de alineación vertical. ¿Hay alguna manera de arreglar esto sin manipular los márgenes y el relleno?Alineación de entradas html en la misma línea

ejemplo:

<style type='text/css'> 
    form{ 
    display:inline; 
    } 
    textarea{ 
    font-size:25px; 
    height:25px; 
    width:200px; 
    } 
    input.button{ 
    height:25px; 
    width:50px; 
    } 
</style> 
<form> 
    <textarea >Value</textarea><input type='button' class='button' value='Go'> 
</form> 
+0

asegúrese usted no tiene claro: dejó en algún lugar – zok

Respuesta

30

Ha intentado jugar con la propiedad CSS vertical-align?

vertical-align:top; 

De esta manera todo se verá coherente y no tendrá que jugar con los márgenes.

7
textarea,input.button{display:inline-block;} 

o

textarea,input.button{float:left;} 

una serie de opciones dependiendo de la manera en que su desafiado verticalmente

+0

gracias, pero puedo ponerlos en la misma línea, es solo que cuando lo hago, son yo n diferentes lugares verticalmente. Probé ambos de todos modos y no importó. –

+0

¿Qué alineación quieres? tapa o fondo al ras? –

+0

Además, asegúrese de tener un tipo de documento válido y también haga que la forma sea un elemento de bloque, ya que obtendrá resultados más confiables. –

0
<table> 
    <tr> 
    <td><input /></td> 
    <td><input /></td> 
    </tr> 
</table> 

Claro, que hace que el CSS se retuercen puristas, pero es ciertamente fácil ...

+9

Y los puristas de HTML, y los puristas de JavaScript, y los desarrolladores web en general ... – David

+3

traer a los enemigos ... – ShaneBlake

+0

Me gusta esta idea, sin embargo, estoy tratando de alejarme de las tablas de esta página debido a todo el contenido siendo cargado –

3

Adición de un vertical-align parece work for me:

<style type='text/css'> 
    form{display:inline;} 
    textarea{width:200px;height:25px;font-size:25px;vertical-align:middle} 
    input.button{width:50px;height:25px;vertical-align:middle} 
</style> 
<form><textarea >Value</textarea><input type='button' class='button' value='Go'></form> 
+0

Eso es genial. Espero que funcione entre navegador –

+0

@RyanStortz: No puedo decir con certeza. Estoy en Firefox 8.0 aquí. Parece que funciona en IE 9.0 también.(Aunque en este último hay botones de desplazamiento en el 'textarea' que es feo, es posible que desee eliminarlos explícitamente para los navegadores que los agregan de forma predeterminada.) – David

+0

Sí, está funcionando para mí. Tengo una función js simple que aumenta la altura del área de texto para cada salto de línea, así que no hay problema. –

1

normalmente se puede utilizar display:inline-block; o float:left; ¿Estás ¿Quieres que los elementos se alighed en la parte superior o inferior?

En su ejemplo no ha cerrado el tipo de entrada, debe ser type='button' - le falta un apos.

1

acaba de dar float:left al área de texto

http://jsfiddle.net/2qdJc/2/

+0

Realmente tengo algo en contra de las carrozas, me parecen muy aleatorias, pero gracias creo que puedo hacerlo funcionar ahora. –

0

Usted puede hacer algo como esto (trabajado en mi caso):

<div style="width:150px"><p>Start: <input type="text" id="your_id"></p> 
    </div> 

<div style="width:130px;margin-left: 160px;margin-top: -52px"> 
<a href="#" data-role="button" data-mini="true">Button</a> 
</div> 

Aquí es una demostración: http://jsfiddle.net/gn3qx6w6/1/

+0

Ejemplo simple y agradable. Gracias. –

Cuestiones relacionadas