2012-03-28 22 views
15

Tengo un formulario HTML simple. Me gustaría que los widgets correctos en la segunda columna (campo de texto, combox, etc.) estiren y llenen la columna completa.¿Cómo estirar el campo de entrada al ancho completo?

Mi HTML se parece a esto:

<table class="formTable"> 
    <tr> 
    <td class="col1">Report Number</td> 
    <td class="col2"><input type="text"/></td> 
    </tr> 
    <tr> 
    <td class="col1">Report Type</td> 
    <td class="col2"><select></select></td> 
    </tr> 
</table> 

Mi CSS se ve así:

.formTable { 
    border-color: black; 
} 

.formTable td { 
    padding: 10px; 
} 

.formTable .col1 { 
    text-align: right; 
} 

.formTable .col2 { 
    width: 100%; 
} 

¿Alguna idea?

+0

No olvides la etiqueta de cierre de la segunda celda en la primera columna norte. :-) – YMMD

+0

Creo que todos tenían la respuesta. – tahdhaze09

Respuesta

16

Puede especificar que todos los hijos de la clase "col2" tener una anchura de 100% añadiendo lo siguiente:

.col2 * { width:100%;} 

Ver mi ejemplo dabblet: http://dabblet.com/gist/2227353

5

Se puede utilizar:

.col2 * { 
    width: 100%; 
} 

para adaptarse a cualquier descendiente .col2. como puedes ver here. O bien:

.col2 > * { 
    width: 100%; 
} 

Para que coincida solo con los elementos secundarios.

8

de inicio con el marcado semántico desde esto no es datos tabulares. Además, con las etiquetas añadidas, no necesitamos DIV adicionales de envoltura, que es más limpio.

<ul class="formList"> 
    <li> 
     <label for="input_1"> 
      Report Number 
     </label> 
     <input id="input_1" name="input_1" type="text" /> 
    </li> 
    <li> 
     <label for="input_2"> 
      Report Type 
     </label> 
     <select id="input_2" name="input_2"></select> 
    </li> 
</ul> 

A continuación, añadir el CSS:

.formList { 
    border:1px solid #000; 
    padding:10px; 
    margin:10px; 
} 
label { 
    width:200px; 
    margin-left:-200px; 
    float:left; 
} 
input, select { 
    width:100%; 
} 
li { 
    padding-left:200px; 
} 

JS violín Ejemplo: http://jsfiddle.net/6EyGK/

+0

Bueno, ** ES ** en algunos datos tabulares del punto de vista. – HerrSerker

+2

Es un conjunto de pares de campo/valor sin encabezados ni entradas de usuario agregadas. Eso no es tabular –

+0

En esta especificación WhatWG (http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-table-element) dice: 'El elemento de tabla representa datos con más de una dimensión, en forma de tabla. Los pares clave/valor son bidimensionales, por lo que la tabla está bien para mí. – HerrSerker

0

Otras marcas semánticas adicionalmente a la respuesta Mateo Darnell:

Si envuelve las etiquetas alrededor de las entradas y selecciona, puede evitar el uso de los atributos for y id.

<ul class="formList"> 
    <li> 
     <label> 
      Report Number 
     <input name="input_1" type="text" /> 
     </label> 
    </li> 
    <li> 
     <label> 
      Report Type 
     <select name="input_2"></select> 
     </label> 
    </li> 
</ul> 

O utilizar una lista de definiciones que podrían dar un control adicional

<dl class="formList"> 
    <dt> 
     <label for="input_1"> 
      Report Number 
     </label> 
    </dt> 
    <dd> 
     <input id="input_1" name="input_1" type="text" /> 
    </dd> 
    <dt> 
     <label for="input_2"> 
      Report Type 
     </label> 
    </dt> 
    <dd> 
     <select id="input_2" name="input_2"></select> 
    </dt> 
</dl> 
+0

Quien lo donó, podría al menos deje un comentario con algún razonamiento – HerrSerker

+2

No estoy seguro de quién votó, pero su respuesta no responde a la pregunta de ninguna manera. –

3

si el uso de Twitter Bootstrap: y la entrada está dentro de una columna

acaba de añadir a <input> la class="container-fluid"

+0

No hay etiqueta 'bootstrap', por lo que el OP no usa bootstrap. – Vucko

+0

No hay forma de contar desde un fragmento de código si se usa o no el bootstrap. Si había una etiqueta de bootstrap, ya no es necesaria . Esto podría responder la pregunta, por condición establecida. Y fue útil para mí. – TamusJRoyce

+0

nota: al usar bootstrap, width: 100% no funcionó para mí. – TamusJRoyce

Cuestiones relacionadas