Ich habe das bekam:CSS Less - height-Eigenschaft der aktuellen Klasse Get
.class {
height:10px;
padding:2px;
box-sizing:border-box;
}
.class .subclass {
height:100%;
line-height:???;
}
Wie Sie class
hat eine feste Höhe sehen können, aber subclass
hat eine relative Prozent Höhe. Diese Höhe hat trotz des Werts 100%
nicht die Höhe von Parent, da sie von der padding
Eigenschaft des Parents beeinflusst wird. Was ich brauche ist line-height
Eigenschaft gleich height
Eigenschaft, um den Text vertikal zu zentrieren.
Die Frage: Wie kann ich die aktuelle Klasse zu erhalten (die Klasse wir line-height
Eigenschaft setzen) mit geringerer Höhe?
Ich weiß, ich Variablen einstellen und dann eine calc, auf diese Weise:
@class-height:10px;
@class-padding:2px;
@subclass-height:calc(@class-height - @class-padding * 2); //*2 because of Top & bottom padding
.class {
height:@class-height;
padding:@class-padding;
box-sizing:border-box;
}
.class .subclass {
height:@subclass-height;
line-height:@subclass-height;
}
Aber ich möchte wissen, ob es eine einfache Möglichkeit, dies ohne Berechnungen zu erreichen und die Festsetzung von Fest Variablen.
[Diese] (https://jsfiddle.net/pt366e9k/) ist eine mögliche Methode, um vertikale Zentrierung zu erreichen, ohne 'line-height' zu verwenden. Mir sind keine Nachteile bekannt und ich denke, dass es für Sie nützlich sein könnte. (* Ich hatte die Höhe des Elternteils geändert, nur um zu zeigen, wie der Text zentriert bleibt, selbst wenn sich die Höhe des Elternteils ändert. *) – Harry