Müssen die html-checkbox-label-wrap "schön"
Habe ich ein raster von Kontrollkästchen, wo jede Zelle hat eine Feste Breite, und jede checkbox vorangestellt ist ein kleines Bild. In Fällen, in denen der label-text ist zu lang, ich habe eine harte Zeit bekommen, den text zu umbrechen, unterhalb des Kontrollkästchens.
Bezogen auf den screenshot oben würde ich gerne "text wraps" ausgerichtet werden, mit der checkbox, sondern als Umhüllung unter dem Bild, etwa so:
Ich habe eine fiddle mit meinem aktuellen markup und styles. Was ich nicht ändern kann, ist die HTML-Struktur, aber alle CSS-änderungen sind in Ordnung.
Hier ist ein code-snippet:
CSS:
.checkbox-list {
}
img.placeholder{
width:16px;
height:16px;
background-color:lightblue;
}
td {
padding:2px;
width:150px;
vertical-align:top;
}
label {
/*display:inline-block;*/
}
HTML:
<table class="checkbox-list">
<tbody><tr>
<td>
<img class="placeholder"/>
<label>
<input type="checkbox"/>
<span>Some really long text that wraps</span></label></td>
<td>
<img class="placeholder"/>
<label>
<input type="checkbox"/>
<span>Foo</span></label></td>
<td>
<img class="placeholder"/>
<label>
<input type="checkbox"/>
<span>Foo</span></label></td>
</tr><tr>
<td>
<img class="placeholder"/>
<label>
<input type="checkbox"/>
<span>Foo</span></label></td>
<td>
<img class="placeholder"/>
<label>
<input type="checkbox"/>
<span>Foo</span></label></td>
<td>
<img class="placeholder"/>
<label>
<input type="checkbox"/>
<span>Foo</span></label></td>
</tr>
</tbody></table>
- Hmmm...ich glaube nicht, sehen die hellblauen Felder.
- welchen browser verwenden Sie? getestet habe ich auf chrome und IE.
- Ich bin auf FF v7 auf Windows 7. Added mich einfach ein "float:left;" auf
img.placeholder
und ich kann jetzt sehen die Boxen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie nur für eine
margin-bottom
für das image und diefloat: left
:JS Fiddle demo.
Bearbeitet, weil ich bin, offenbar eine idiot, und wusste nicht, dass der einfachste Ansatz war, weisen die
display: block;
undmargin-left: 18px;
zu denlabel
element, und schweben die.placeholder
Elemente:JS Fiddle demo.
Schwimmenden dem Bild verhindert, dass die
label
starten auf einer neuen Zeile, den margin-left auf dielabel
ist die Breite des Bildes und ein kleines 2px 'Rinne', um visuell zu trennen, das Bild und die checkbox (anpassen, um Geschmack, natürlich).Hier ist mein Vorschlag:
machen
img
,input
, undspan
in block-Elemente undfloat: left
;http://jsfiddle.net/9s8Db/4/
Angabe label mit
display:inline-block
und ihm eine Breite scheint, den trick zu tun. aber im Idealfall würde ich nicht haben, um geben Sie die Bezeichnung der Breite.http://jsfiddle.net/9s8Db/7/
Wenn Sie beschränken die
width
deslabel
- und float -img.placeholder
undlabel
sollte es funktionieren wie gewünscht:http://jsfiddle.net/9s8Db/8/