4 Stimmen

Entfernen Sie das Leerzeichen zwischen den Kontrollkästchen

Ich habe ein Formular, das mehrere Kontrollkästchen enthält, die vertikal in einem Div ausgerichtet sind. Ich möchte den Abstand zwischen den einzelnen Kontrollkästchen entfernen. Aber ich kann keine Lösungen finden.

<div style="height:100px;width:25px;float:left;">
  <input type="checkbox"/>
  <input type="checkbox"/>
  <input type="checkbox"/>
  <input type="checkbox"/>
  <input type="checkbox"/>
  <input type="checkbox"/>
</div>

Hat jemand eine Lösung für dieses Problem?

0 Stimmen

Diese könnte Diese Frage ist aufgrund der Unterschiede zwischen den verschiedenen Webbrowsern schwer zu beantworten - ich sage "könnte", weil Sie nur wenige Informationen über Ihren Kontext gegeben haben: * Welchen Browser verwenden Sie? * Welche Doctype-Deklaration haben Sie verwendet? * ...wird die Seite im Quirks-Modus gerendert? * streben Sie eine browserübergreifende Kompatibilität an?

9voto

Billy Punkte 14906

Ich habe die Lösung gefunden:

  <input type="checkbox" style="margin: 0; padding 0;  height:13px"/>

Beim IE müssen Sie die Höhe einstellen, um den Abstand zwischen den Kontrollkästchen zu entfernen.

0 Stimmen

Funktioniert es auf Ihren Browsern? auch beachten Sie, dass 13 besser sein wird, wenn es 13px ist

0 Stimmen

Ja, es funktioniert in meinen Browsern (IE7, FF3 und Chrome). Ich weiß, dass "13px" besser ist. Danke!

5voto

nonopolarity Punkte 138211

Nach einem Gespräch mit Paul O'B, einem CSS-Guru, ist dies eine gute Lösung, die in IE 6, 7, 8, FF 3 und Chrome funktioniert:

<style type="text/css">     
    #aDiv input {
        margin: 0;
        padding: 0;
        display:block;
        height:12px;
        overflow:hidden
    }
</style>

<div id="aDiv" style="width:25px">
    <input type="checkbox">
    <input type="checkbox">
    <input type="checkbox">
    <input type="checkbox">
    <input type="checkbox">
    <input type="checkbox">
</div>

Hier wird ein Doctype von HTML 4.01 strict verwendet. Wenn Sie nebeneinander liegende Rahmen für die Kontrollkästchen wünschen, verwenden Sie eine Höhe von 13px.

Der Attributselektor funktioniert nicht im IE 6, daher wird er hier herausgenommen. Wenn Sie ein anderes Eingabeelement hinzufügen müssen, das kein Kontrollkästchen ist, verwenden Sie stattdessen class.

0 Stimmen

Ja, der Internet Explorer funktioniert nicht. Das Verhalten des IE ist immer besonders.

0 Stimmen

Lösung geändert wurde... siehe Hinweis oben.

0 Stimmen

Dies funktioniert bei mir sowohl im IE6 als auch im IE8 im Standardmodus. Danke!

2voto

samuil Punkte 4891

Wahrscheinlich Zeilenumbrüche zwischen <input> Tags werden wie alle anderen Leerzeichen interpretiert, deshalb sehen Sie Leerzeichen zwischen ihnen. Ich denke, die CSS-Regeln haben nichts damit zu tun.


Editar: Weitere Nachforschungen haben ergeben, dass sich Leerzeichen nur auf horizontale Lücken auswirken würden. Was den vertikalen Abstand betrifft, so ist es meines Erachtens unmöglich, sicherzustellen, dass die Kontrollkästchen zusammenhalten, ohne benutzerdefinierte Grafiken zu verwenden - Webbrowser sind nicht verpflichtet, sie standardmäßig perfekt quadratisch zu machen, und selbst wenn Sie einen Weg finden, ihre Begrenzungsrahmen einander berühren zu lassen, könnte der Effekt nicht zufriedenstellend sein.

Um ihre Bounding Boxes so eng wie möglich zu machen, setzen Sie line-height Attribut für div Element. Mit Original-Sprites sieht es in keinem Browser, den ich getestet habe, so aus, wie Sie es wollten.

Verwendung einer benutzerdefinierten Grafik mit einer bestimmten Höhe und identischer line-height sollte das genügen.


Eine weitere Bearbeitung: Einige Leute haben hier vorgeschlagen, eine feste Höhe des Eingabeelements von 13px . Erinnern Sie sich! Es ist falsch . Sie können sich nicht darauf verlassen, dass einige Browser ein Checkbox-Sprite mit dieser Höhe eingebaut haben.

1voto

Oundless Punkte 5255

Zwischen den einzelnen Kontrollkästchen befindet sich Leerraum. Die einzige Möglichkeit, ihn zu entfernen, ist float sie:

<style type="text/css">
    .myCheckBoxDiv > input[type="checkbox"]
    {
        float: left;
    }
    .myCheckBoxDiv:after
    {
        clear: both;
        content: "";
        display: block;
    }
</style>

<div class="myCheckBoxDiv">
  <input type="checkbox"/>
  <input type="checkbox"/>
  <input type="checkbox"/>
  <input type="checkbox"/>
  <input type="checkbox"/>
  <input type="checkbox"/>
</div>

0voto

priyanka.sarkar Punkte 24468

Einfach einstellen:

<input type="checkbox" style="margin: 0">

Aber es funktioniert nicht im IE.

Ich denke, dass die verschiedenen Browser die HTML-Elemente unterschiedlich darstellen. Daher ist es schwierig, einen vollständigen Überblick über die Situation zu bekommen.

Ich habe jedoch eine Lösung gefunden, aber dieses Mal müssen wir einen Trick auf das Body-Element anwenden.

Das CSS wird folgendermaßen aussehen:

<style type="text/css">
    input.mycheckbox {
        height: 13px;
        width: 13px
    }

    body {
        font-size: 40%;
    }
</style>

Und der Inhalt innerhalb des body-Tags ist:

Ich hoffe, das hilft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X