2009-03-31 4 views
0

Ich habe CSS, das Etiketten über Eingabeformelementen formatiert, und ich möchte die Eingabeelemente durch Text aus der Datenbank ersetzen, wenn ich nur schreibgeschützt anzeigen Daten.Form-Styling mit SPAN-Text anstelle von Eingabe oder Auswahl von Steuerelementen

Egal was ich tue, die Eingabefelder zu einer span oder asp: label wird nicht korrekt die Beschriftung über dem Text rendern.

Ich verwende dieses CSS:

div.formRow { 
    padding: 2px 0px; 
} 

span.formItem { 
    display: inline-block; 
    position: relative; 
    padding: 0px 5px; 
} 
span.formItem label { 
    position: absolute; 
    left: 5px; 
    top: 0px; 
} 
span.formItem input, span.formItem select { 
    margin-top: 20px; 
} 
+0

Können Sie uns auch ein Beispiel für das gerenderte HTML geben, das Sie zu stylen versuchen? Vielen Dank. –

Antwort

1

Ich vermute, Sie display: block dem Eingabefeld Ersatz Spannweiten hinzufügen müssen.

+0

Es funktioniert - aber warum? – Caveatrob

+0

Ich nehme an, Sie haben "span.formItem span" oder so zum "margin-top: 20px;" Regel? Spans sind Inline-Elemente und vertikale Ränder gelten nicht für diese (http://www.w3.org/TR/CSS21/box.html#margin-properties), so dass der obere Rand nicht funktioniert, wenn Sie nicht sicherstellen, dass span ist ein Element auf Blockebene. – mercator