2017-04-03 1 views
1

저는 일반적으로 새로운 것을 신기하고, mixins를 사용하여 새로운 변수 값을 정의 할 수 있는지 궁금합니다.mixins를 사용하여 변수 값을 변경하십시오.

저는 건물 웹 사이트 전체에 패딩 크기를 정의하는 변수를 사용하는 것이 좋을 것이라고 생각했습니다. 믹싱 및 미디어 쿼리를 사용하여 새로운 가치를 정의 할 수있는 아이디어입니다. 작동 방법이 나는 이것이 매우 유용 할 것이라고 생각하지만 ... 동작하지 않습니다

$site-padding: 40px; 

@include media-over-767 { 
    $site-padding: 20px; 
} 

:

예는 더 적합 할 수 있습니다?

+0

을 @JinuKurian 이미 대답해도, 난 당신이 문제의이 종류를 해결하기 위해 다른 경로에 넣을 수있는 말대꾸에서 범위 변수를 살펴 보도록해야한다고 생각 . 또한 변수가 작동하는 방법에 대한 자세한 내용은 [this thread] (http://stackoverflow.com/questions/5469931/sass-variable-default-scope)의 대답을 참조하십시오 (mixins 및 scoped 변수). – Fahrenheit

답변

0
@mixin site-padding{ 
    $site-padding: 20px; 
} 

@include media-over-767 { 
    @include site-padding; 
} 
+0

사이트 - 패딩은 패딩으로 어떻게 변환됩니까? 'padding : 20px'를 추가하기 위해 이것을 뒤엎는 또 다른 믹스 인이 있습니까? 이전에 sass로 실행하지 않았습니다. – gwally

+1

패딩 질문은 대답과 관련이 없지만 패딩을 설정하는 데 사용할 수있는 믹스가 필요한 경우 여기로 이동하십시오. @mixin padding-all ($ top, $ right, $ bottom, $ left) { padding-top : $ top; 패딩 오른쪽 : $ 오른쪽; 패딩 하단 : $ bottom; 패딩 왼쪽 : $ 좌; } –

+0

설명과 예를 제공해 주셔서 감사합니다. – gwally

0

나는 이것이 당신이 찾고 정확히 경우 확실하지 않다, 그러나 희망을 당신을 올바른 길로 인도합니다. 믹스 인 선언 :이 예에서

@mixin site-padding($padding:40px) { 
    padding: $padding; 
} 

을, 나는 40px의 기본 값으로 믹스 인 site-padding을 설정합니다.

귀하의 SASS는 다음과 같이 보일 것입니다 :

.element { 
    // Small screens 
    @include site-padding(20px); 

    // Over 767px 
    @media screen and (min-width: 768px) { 
     // Defaults to 40px. 
     @include site-padding(); 
    } 
} 
관련 문제