Mixin aux propriétés de préfixe - Astuces CSS

Anonim

Si vous souhaitez gérer votre propre préfixe de fournisseur CSS (plutôt que, disons, Autoprefixer ou Compass), voici un mixin pour vous aider. Plutôt que d'ajouter simplement chaque préfixe connu à tout, vous lui transmettez les préfixes que vous souhaitez utiliser, de sorte que vous ayez un contrôle plus fin sur la sortie.

Version simple

/// Mixin to prefix a property /// @author Hugo Giraudel /// @param (String) $property - Property name /// @param (*) $value - Property value /// @param (List) $prefixes (()) - List of prefixes to print @mixin prefix($property, $value, $prefixes: ()) ( @each $prefix in $prefixes ( #('-' + $prefix + '-' + $property): $value; ) // Output standard non-prefixed declaration #($property): $value; )

Usage:

.selector ( @include prefix(transform, rotate(45deg), webkit ms); )

Production:

.selector ( -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); )

Version avancée

Notez que cette version utilise les cartes Sass, donc nécessite la version 3.3 ou supérieure.

/// Mixin to prefix several properties at once /// @author Hugo Giraudel /// @param (Map) $declarations - Declarations to prefix /// @param (List) $prefixes (()) - List of prefixes to print @mixin prefix($declarations, $prefixes: ()) ( @each $property, $value in $declarations ( @each $prefix in $prefixes ( #('-' + $prefix + '-' + $property): $value; ) // Output standard non-prefixed declaration #($property): $value; ) )

Usage:

.selector ( @include prefix(( column-count: 3, column-gap: 1.5em, column-rule: 2px solid hotpink ), webkit moz); )

Production:

.selector ( -webkit-column-count: 3; -moz-column-count: 3; column-count: 3; -webkit-column-gap: 1.5em; -moz-column-gap: 1.5em; column-gap: 1.5em; -webkit-column-rule: 2px solid hotpink; -moz-column-rule: 2px solid hotpink; column-rule: 2px solid hotpink; )