2012-03-28 11 views
15

Mam prosty formularz HTML. Chciałbym, aby odpowiednie widżety w drugiej kolumnie (pole tekstowe, combox itd.) Rozciągały się i wypełniały całą kolumnę.Jak rozciągnąć pole wprowadzania do pełnej szerokości?

Moje HTML wygląda następująco:

<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> 

Moje CSS wygląda następująco:

.formTable { 
    border-color: black; 
} 

.formTable td { 
    padding: 10px; 
} 

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

.formTable .col2 { 
    width: 100%; 
} 

jakieś pomysły?

+0

Nie zapomnij o zamkniętej etykiecie drugiej komórki w pierwszym kolumnie n. :-) – YMMD

+0

Myślę, że każdy miał odpowiedź. – tahdhaze09

Odpowiedz

16

Można określić, że wszystkie dzieci z klasy „col2” mają szerokość 100%, dodając następujący:

.col2 * { width:100%;} 

Zobacz moją dabblet przykład: http://dabblet.com/gist/2227353

5

Można użyć:

.col2 * { 
    width: 100%; 
} 

pasują do każdej .col2 potomka. jak widać here. Lub:

.col2 > * { 
    width: 100%; 
} 

Aby dopasować tylko najbliższe dzieci.

8

Start z semantycznych znaczników od to nie są dane tabelaryczne. Ponadto, z dodanymi etykietami, nie potrzebujemy dodatkowych opakowań DIV, które są czystsze.

<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> 

Następnie dodać 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 Fiddle Przykład: http://jsfiddle.net/6EyGK/

+0

Cóż, to ** JEST ** w pewnym momencie danych tabelarycznych. – HerrSerker

+2

Jest to zestaw par pola/wartości bez nagłówków i dodanych danych wprowadzanych przez użytkownika. To nie jest tabelaryczne. –

+0

W tej specyfikacji WhatWG (http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-table-element) jest napisane: 'Element table reprezentuje dane za pomocą więcej niż jeden wymiar, w postaci pary klucz/wartość tabeli są dwuwymiarowe, więc tabela jest dla mnie w porządku. – HerrSerker

0

Inne semantycznych znaczników dodatkowo do Matthew Darnells odpowiedź:

Jeśli owinąć etykiety wokół wejść i wybiera, można uniknąć używania atrybutów for i 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> 

Albo skorzystać z listy definicji, która może dać dodatkową kontrolę

<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

Ktokolwiek to zgłosił, może przynajmniej zostaw komentarz z pewnym uzasadnieniem – HerrSerker

+2

Nie jestem pewien, kto głosował, ale twoja odpowiedź w żaden sposób nie odpowiada na pytanie. –

3

jeśli używasz Twitter Bootstrap: i wejście jest wewnątrz kolumny

wystarczy dodać do <input>class="container-fluid"

+0

Nie ma tagu 'bootstrap', więc OP nie używa bootstrapu – Vucko

+0

Nie ma możliwości powiedz z fragmentu kodu, jeśli jest używany bootstrap lub nie. Jeśli był tag bootstrap, nie jest już potrzebny . To może odpowiedzieć na pytanie, na podstawie warunku. I to było dla mnie pomocne. – TamusJRoyce

+0

uwaga: podczas korzystania z funkcji ładowania początkowego szerokość: 100% nie działa dla mnie. – TamusJRoyce

Powiązane problemy