Frage

Für die CSS-Gurus da draußen: Ich kann nicht herausfinden, welches CSS dafür sorgt, dass das erste Label/Select-Paar nicht in der Mitte ausgerichtet ist, das zweite jedoch in der Mitte ausgerichtet ist.

Sehen Sie sich das Problem im Bild unten an.Mein Ziel ist es, das erste Label/Select-Paar in der Mitte auszurichten und die CSS-Regeln zu verstehen, die dies ermöglichen.

enter image description here

<div class="pure">
    <form class="pure-form-inline">
        <div class="pure-g">
            <div class="pure-u labelArea">
                <label>Choose Project:</label>
            </div>
            <div class="pure-u-1-4">
                <select></select>
            </div>
        </div>
        <div class="pure-control-group">
            <label>Choose Customer:</label>
            <select></select>
        </div>
    </form>
</div>

Hier können Sie dies in Aktion sehen...Geige

War es hilfreich?

Lösung

Eine einfache Möglichkeit, dies zu tun, besteht darin, das zu geben label Elemente haben eine Zeilenhöhe, die der Höhe des Dropdown-Selektors entspricht.Diese Lösung setzt jedoch voraus, dass Ihre Etiketten nur aus einer einzigen Textzeile bestehen. Wenn Sie mehrzeilige Etiketten haben, funktioniert dies nicht und Sie sollten die verwenden vertical-align Methode wie oben beschrieben.

label {
    line-height:25px;
}

JSFiddle aktualisiert

Andere Tipps

generasacodicetagpre.

You have additional divs around the first label/select pair, which force this behaviour.

If you remove the unnecessary divs around the first label/select pair and add the same class as in the second, you should be fine

<div class="pure">
    <form class="pure-form-inline">
        <div class="pure-control-group">
            <label>Choose Project:</label>
            <select></select>
        </div>
        <div class="pure-control-group">
            <label>Choose Customer:</label>
            <select></select>
        </div>
    </form>
</div>

Modified JSFiddle

Try with this vertical align fix:

/* Vertical Align Fix */

.valign:before {
    content:"";
    height:100%;
    display:inline-block;
    vertical-align:middle;
}
.valign > * {
    display: inline-block;

}
.valign-m { vertical-align: middle; }

Give the class (.valign) to the parent (The div containing the select)

And this other class to the inner elements (select + label)

See if it works.

.pure .pure-u {
    line-height:25px;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top