Mixin az eltolás pozícionálásához CSS-trükkök

Anonim

Ha van egy gyors- CSS drámaian hiányzik, ez az egyetlen, amely lehetővé teszi, hogy meghatározza a positiontulajdon, valamint a négy eltolt ingatlanok ( top, right, bottom, left).

Szerencsére ez tipikusan megoldható egy CSS-előfeldolgozóval, például a Sass-szal. Csak egy egyszerű mixint kell készítenünk, hogy megmentsen minket az 5 tulajdonság manuális deklarálásától.

/// Shorthand mixin for offset positioning /// @param (String) $position - Either `relative`, `absolute` or `fixed` /// @param (Length) $top (null) - Top offset /// @param (Length) $right (null) - Right offset /// @param (Length) $bottom (null) - Bottom offset /// @param (Length) $left (null) - Left offset @mixin position($position, $top: null, $right: null, $bottom: null, $left: null) ( position: $position; top: $top; right: $right; bottom: $bottom; left: $left; )

Most az a lényeg, hogy megnevezett argumentumokra támaszkodunk, amikor ezt a mixint használjuk, hogy ne kelljen mindet beállítani, ha csak egy vagy kettőre van szükség. Vegye figyelembe a következő kódot:

.foo ( @include position(absolute, $top: 1em, $left: 50%); )

… Amely összeáll:

.foo ( position: absolute; top: 1em; left: 50%; )

Valójában Sass soha nem ad ki olyan tulajdonságot, amelynek értéke van null.

Az API egyszerűsítése

Áthelyezhetnénk a pozíció típusát a mixin névre ahelyett, hogy első argumentumként kellene definiálnunk. Ehhez három extra keverékre van szükségünk, amelyek álnevekként szolgálnak az imént definiált `position` mixinhez.

/// Shorthand mixin for absolute positioning /// Serves as an alias for `position(absolute,… )` /// @param (Arglist) $args - Offsets /// @require (mixin) position @mixin absolute($args… ) ( @include position(absolute, $args… ); ) /// Shorthand mixin for relative positioning /// Serves as an alias for `position(relative,… )` /// @param (Arglist) $args - Offsets /// @require (mixin) position @mixin relative($args… ) ( @include position(relative, $args… ); ) /// Shorthand mixin for fixed positioning /// Serves as an alias for `position(fixed,… )` /// @param (Arglist) $args - Offsets /// @require (mixin) position @mixin fixed($args… ) ( @include position(fixed, $args… ); )

Átírva előző példánkat:

.foo ( @include absolute($top: 1em, $left: 50%); )

Tovább megyek

Ha a Nib által javasolt szintaxist szeretné elérni (a Stylus keretrendszere), javasoljuk, hogy nézze meg ezt a cikket.

.foo ( @include absolute(top 1em left 50%); )