Wie verhindert man, dass das gepolsterte Kindelement seinen Elternteil überläuft?

8

Wie Sie in diesem Beispiel sehen können, scheint der input seinen übergeordneten div zu "überlaufen". Ich möchte Padding zum input hinzufügen, ohne dass es überläuft.

Ich möchte die beste Lösung / Workaround für jeden Browser (einschließlich IE, Firefox, Chrome, etc) kennen.

    
Ricardo Rodrigues 09.06.2012, 23:36
quelle

4 Antworten

25

Sie können diese Antwort sehen, aber wenn Ihnen das nicht gefällt, können Sie% verwenden. co_de% CSS3 Eigenschaft wie folgt:

%Vor%

Live jsFiddle Beispiel

    
Fong-Wan Chau 09.06.2012, 23:57
quelle
2

Padding erhöht die Breite Ihres Objekts. Eine Option wäre, das Padding links / rechts von der Eingabe zu entfernen und nur den Text-Einzug zu verwenden, obwohl dies die rechte Auffüllung entfernt.

%Vor%

Alternativ können Sie anstelle von hartkodierten Pixelbreiten für die Auffüllung Prozentsätze verwenden und diesen Wert von der Breite subtrahieren:

%Vor%     
Quantastical 09.06.2012 23:48
quelle
0

Geben Sie nicht die Breite des Innen-Div als 100% an. Ein div wird automatisch an die Breite seines übergeordneten Containers angepasst. Demo

    
sachleen 09.06.2012 23:39
quelle
0

Sieht so aus, als wäre die Eingabe innerhalb des div, aber in der oberen linken Ecke. Da die Eingabe 100% der div-Breite einnimmt, verdunkelt sie den roten Hintergrund des div. Das div ist länger, so dass es aus dem Boden herausragt und es so aussieht, als ob der Eingang oben ist. Tun Sie Folgendes:

  • Wenden Sie das Padding auf das CSS des äußeren div nicht das Eingabefeld an.
    Sie könnten einen Rand auf die Eingabe anwenden, wenn Sie wollen, aber ich denke, Padding das enthaltene div ist besser.
    • Machen Sie das Eingabefeld weniger breit als das div (& lt; 100%)
GrantVS 09.06.2012 23:47
quelle

Tags und Links