Syntax: Variable für CSS-Wert verwenden

Lesezeit: 2 Minuten

Benutzer-Avatar
C_K

Der Versuch, ein Kästchen vertikal in einem anderen Kästchen zentriert zu halten. Ich weiß, dass es CSS gibt, das das kann, aber ich würde lieber jquery verwenden, zuverlässiger (?).

var textH = $(".Text").height();
var vertAlign = ((140 - textH)/2);

$(".Text").css({
    marginTop: 'vertAlign'
});

Ich bin mir nicht sicher, welches Detail mir fehlt. Die Ausgabe sollte die Hälfte des verfügbaren vertikalen Platzes in Pixeln sein.

BEARBEITEN

Ursprünglich war der Textblock eine Spanne, die in einem div enthalten war. Das div hatte eine festgelegte Höhe (in diesem Fall 140 Pixel), und der Textblock, die Spanne, hätte eine variable Höhe, je nachdem, wie viel Text darin enthalten war. Ich brauche diesen Textblock jedoch, um bearbeitet werden zu können. Also habe ich es in einen Textbereich geändert. Das Verhalten für die Abmessungen des Textbereichs ist jedoch umständlich, und ich musste eine statische Höhe und Breite festlegen. Jetzt ist die Höhe dieses Textblocks nicht variabel, daher gibt es keinen Unterschied in der Höhe zwischen ihm und seinem übergeordneten Element, von dem der Rand-Oberseiten-Abstand abgeleitet werden kann. Was soll ich machen?

  • $(".Text").css({'margin-top', vertAlign});

    – Pav

    12. Mai 2011 um 5:00 Uhr

  • versuchen Sie ‘vertAlign’ ohne die Anführungszeichen …

    – AlexanderJohannesen

    12. Mai 2011 um 5:02 Uhr

Entfernen Sie die umgebenden Anführungszeichen vertAlign

$(".Text").css('margin-top', vertAlign);

Versuchen Sie den obigen Code. Es muss dir helfen.

  • i=”40px”; $(“.className”).css({‘width’:”calc(100% – i)”}); funktioniert nicht. Ich möchte den Variablenwert innerhalb des CSS verwenden. Gibt es eine Möglichkeit, so etwas zu verwenden. Wenn ich den Wert direkt gebe, funktioniert es. Ich habe viele Notizen/Kommentare und richte rechts eine Schaltfläche an jedem Kommentarfeld aus. Alle Divs haben eine variable Länge, daher muss ich die Breite dynamisch hinzufügen.

    – AllenJohnson

    18. Juli 2021 um 10:11 Uhr


  • Sie können $(“.className”).css(‘width’, “calc(100% – “+i); schreiben, damit es funktioniert.

    – Nav Raj Bhattarai

    31. Juli 2021 um 13:54 Uhr

optional, wenn Sie mehr als einen Stil machen möchten:

var styles = {'margin-top':vertAlign,'property':100,'property':somevalue}
$(".Text").css(styles);

Benutzer-Avatar
Arjan

var textH = $(".Text").height();
var vertAlign = ((140 - textH)/2);
$(".Text").css({
        margin-top: vertAlign + 'px'
    });

Sie müssen die Einheit angeben, sonst kann Ihr Browser nicht erkennen, ob Sie Pixel oder Em oder Äpfel wünschen. Außerdem möchten Sie möglicherweise eine Bereichsprüfung durchführen, die Sie nicht möchten vertAlign negativ sein.

  • Die Einheit ist standardmäßig auf px eingestellt. Und es gibt keine marginTop CSS-Eigenschaft.

    – Arman P.

    12. Mai 2011 um 6:22 Uhr

1028350cookie-checkSyntax: Variable für CSS-Wert verwenden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy