Kann ich Elementhöhe mit SASS \ Compass berechnen und verwenden?

7

Ich benutze Sass und Kompass in meinem RoR-Projekt. Ich muss der top CSS-Eigenschaft eines Elements den Wert zuweisen, der Elementhöhe ist, die durch -2 geteilt wird. Kann ich das mit SASS \ Compass machen?

    
dizpers 30.03.2013, 06:10
quelle

3 Antworten

16

Sie scheinen das XY-Problem zu haben. Sie haben eine Aufgabe zu lösen, und statt uns nach der Aufgabe zu fragen, fragen Sie nach einer Lösung, die Sie versucht haben und die wir bereits als unpassend empfunden haben.

Warum möchten Sie die Eigenschaft top gleich der Hälfte der Elementhöhe anwenden und negieren? Weil Sie ein absolut positioniertes Element um die Hälfte seiner Höhe nach oben verschieben möchten . Dies ist die ursprüngliche Aufgabe.

Dafür gibt es eine einfache Lösung, und SASS ist nicht einmal notwendig! (Solange Sie die Höhe des Elements nicht kennen, kann SASS nicht mehr Hilfe bieten als CSS.)

Wir brauchen einen zusätzlichen Wrapper:

%Vor%

Um das Element um 50% seiner Höhe nach oben zu schieben, machen Sie zwei einfache Schritte:

1) Schieben Sie die Verpackung vollständig aus dem Behälter:

%Vor%

2) Ziehen Sie das Element nun um 50% seiner Höhe nach unten:

%Vor%

Das ist es!

Wenn Sie margin-bottom: -50% ausführen, ziehen Sie das Element um 50% nach unten von der -Wrapper Höhe. Aber die Höhe des Wrappers entspricht der Höhe des Elements!

Vergessen Sie nicht, position: relative auf den Container anzuwenden, sonst wird position: absolute relativ zum Fenster, nicht zum Container.

Hier ist eine Demo mit einem gut kommentierten Code: Ссылка

UPD 2013-04-16

Ich habe gerade gemerkt, dass dies eine Fälschung ist.

In CSS beziehen sich die Prozentsätze der oberen und unteren Ränder auf die Breite des Containers. Das obige Beispiel funktioniert also nur, weil der Container quadratisch ist.

    
lolmaus - Andrey Mikhaylov 30.03.2013, 10:20
quelle
4

Ich habe einen guten Weg gefunden, dies zu tun. Es verwendet das transform: translate(-50%, -50%)

Hier ein Link zur Lösung: Zentrierungselement

    
pdiddy 06.12.2013 15:41
quelle
3

Versuchen Sie Folgendes:

%Vor%     
Eli 30.03.2013 06:44
quelle

Tags und Links