2009-08-09 5 views
7

Ecco un estratto da un modulo di Rails abbastanza standard:Fai campi di input di testo e le loro etichette allineano correttamente

<p> 
    <%= f.label :from_station %> <%= f.text_field :from_station %> 
    </p> 
    <p> 
    <%= f.label :to_station %> <%= f.text_field :to_station %> 
    </p> 

Per impostazione predefinita, questo rende in questo modo:

alt text http://img412.imageshack.us/img412/127/picture6u.png

Questo doesn' sembrano grandi perché i campi di testo non sono allineati. Qual è il modo più semplice per fare la forma più simile a questo:

alt text http://img193.imageshack.us/img193/746/picture7shk.png

Ho provato impostando la proprietà width stile sulle <label> s, ma questa proprietà non sembra di fare nulla.

+0

Ho scoperto che non posizionare ogni campo sulla propria riga, cioè da e in orizzontale uno accanto all'altro. – ProfK

risposta

14

Penso che questo è più di una domanda CSS;

Le etichette di default non sono un elemento a livello di blocco e quindi non accettano una larghezza. Prova a impostare questo CSS:

label{ 
    width: 4em; 
    float: left; 
    text-align: right; 
    margin-right: 0.5em; 
    display: block 
} 

Sperare che aiuti!

+0

Mi chiedo se questa soluzione funzionerà con i browser più vecchi (come IE6, per citarne uno). Penso che la soluzione da tavolo sia più affidabile ... –

+1

Sì, funzionerà meglio anche per gli screen reader e i browser di solo testo. E i motori di ricerca :) –

+0

il galleggiante fa il trucco! – markus

1

È possibile utilizzare un <table> dove ogni etichetta è nella colonna 1 ed ogni campo di testo è nella colonna 2.

Problemi correlati