Mixin до властивостей префікса - CSS-хитрощі

Anonim

Якщо ви зацікавлені в роботі з вашим власним префіксом постачальника CSS (а не, скажімо, автопрефіксатором або компасом), ось комбінація допоможе в цьому. Замість того, щоб просто додавати кожен відомий префікс до всього, ви передаєте йому префікси, які ви хочете використовувати, тому у вас буде більш чіткий контроль над результатом.

Проста версія

/// 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; )

Використання:

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

Вихід:

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

Розширена версія

Зверніть увагу, що ця версія використовує карти Sass, отже, потрібна версія 3.3 або новіша.

/// 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; ) )

Використання:

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

Вихід:

.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; )