2014-01-13 4 views
0

Я сделал многоступенчатый градиентный микс, который просто помещает @arguments для всех префиксов поставщиков для *-linear-gradient. Он работает, поставил я раздражен, когда я определяю градиент со многими остановками, я должен поставить все на одной линии при использовании подмешать, как это:Как передать список, разделенный запятой, в mixin как один аргумент

.gradientMultiple(~'top, rgba(255, 255, 255, 1) 0%, rgba(254, 254, 254, 1) 16%, rgba(252, 252, 252, 1) 36%, rgba(239, 239, 239, 1) 66%, rgba(18, 34, 106, 1) 66%, rgba(13, 31, 136, 1) 84%'); 

Я хотел бы поставить функцию параметр на нескольких строках, как это для удобства чтения, но он генерирует синтаксическую ошибку:

.gradientMultiple(~'top, 
    rgba(255, 255, 255, 1) 0%, 
    rgba(254, 254, 254, 1) 16%, 
    rgba(252, 252, 252, 1) 36%, 
    rgba(239, 239, 239, 1) 66%, 
    rgba(18, 34, 106, 1) 66%, 
    rgba(13, 31, 136, 1) 84% 
'); 

Вот определение Mixin:

.gradientMultiple (...) { 
     background-image: -webkit-linear-gradient(@arguments); 
     background-image: -moz-linear-gradient(@arguments); 
     background-image: -ms-linear-gradient(@arguments); 
     background-image: -o-linear-gradient(@arguments); 
     background-image: linear-gradient(@arguments); 
    } 

ответ

1
.gradientMultiple(top, 
    rgba(255, 255, 255, 1) 0%, 
    rgba(254, 254, 254, 1) 16%, 
    rgba(252, 252, 252, 1) 36%, 
    rgba(239, 239, 239, 1) 66%, 
    rgba(18, 34, 106, 1) 66%, 
    rgba(13, 31, 136, 1) 84%;); 

Также см:

  • 0
  • 1
  • 2
  • и, наконец, привести замечание 3
-1

Для use cases когда Смешение заставляет вас поставить строку, или вы делаете не хотите МЕНЬШЕ вычислять значение аргумента, вы можете использовать бит javascript:

(отказ от ответственности: оценка JS теперь устарела и, возможно, будет удалена в LESS 3/4, поэтому используйте это только при работе с наследием код, где нет другой альтернативы)

.keyframes(~` 
    "translate, " + 
    "50% { transform: translateX(calc(50% - 25px)) } " + 
    "100% { transform: translateX(0px) } " 
`); 
+0

См. мой ответ выше, mixin принимает * единственный аргумент *, не содержащий нескольких символов. [Демо] (http://less2css.org/#%7B%22less%22%3A%22foo%20%7B%5Cn%20%20%20%20.gradient (верхний% 2C% 5Cn% 20% 20% 20% 20% 20% 20% 20% 20rgba (255% 2C% 20255% 2C% 20255% 2C% 201)% 20% 200% 25% 2C% 5Cn% 20% 20% 20% 20% 20% 20% 20 % 20rgba (% 2018% 2C% 20% 2034% 2C% 20106% 2C% 201)% 2066% 25% 2C% 5Cn% 20% 20% 20% 20% 20% 20% 20% 20rgba (% 2013% 2C% 20% 2031% 2C% 20136% 2C% 201)% 2084% 25% 3B)% 3B% 5Cn% 7D% 5Cn% 5Cn.gradient (% 40value)% 20% 7B% 5Cn% 5Ctbackground цвет% 3A% 20% 40value% 3B% 20% 20% 5Cn% 7D% 22% 7D). –

+0

ОК, я пропустил это. См. Также редактирование – Dwelle

+0

Кроме того, OP - это разбиение (экранирование) _strings_. – Dwelle

Смежные вопросы