2017-11-03 3 views
1

SASS/SCSS로 어떻게 수행 할 수 있습니까?SASS 또는 SCSS에서 앰퍼샌드 사용

말대꾸 :

.orange 
    color: $orange 
    button& 
    background: $orange 
    color: black 

그것은 다음과 같은 CSS를 생성해야합니다

.orange { 
    color: #ffa500; 
} 

button.orange { 
    background: $orange; 
    color: black; 
} 

내가 변수로 &를 사용하여 그것을 할 수 있지만 @at-root 필요하고 좋은/정말 읽을 수 없습니다입니다 :

.orange: 
    @at root 
    button#{&} 
     color: white 

단독으로 사용하는 경우, & 선택기는 훌륭하게 작동하지만 언어가 원하는대로 사용할 수 없습니다. 어떤 생각?

답변

0

DOCS

"&" may only be used at the beginning of a compound selector. 그러나 당신은 당신의 버튼 클래스를 제공하고 &

DEMO

$orange: orange 

.orange 
    color: $orange 
    &.button 
    background: $orange 
    color: black 
+0

감사 후 넣어하지만 클래스를 추가하고 내가 원하는 수 내 HTML을 읽을 수있게 유지하기 위해 클래스를 추가하지 마십시오. 특히 클래스가 해결 방법을 알릴 때 괴로움 흠집 : - /. '

+0

[BEM] (https://css-tricks.com/bem-101/)은 1 가지 예이지만 사용자가 적합하다고 생각하는 코드를 작성할 수 있습니다. 어쨌든, 나는 당신의 질문에 대답 할 시간을 보냈습니다. '너는 할 수 없어. ' 대답을 받아 들인다면 멋질 것입니다. – Ari

+0

BEM 철학은 실제로 의미 론적 가치를 제공하는 클래스를 추가합니다. 언어 단점을 해킹하기위한'button.button'은이 범주에 속하지 않습니다. 지금까지 나는 제안한 솔루션을 선호합니다. 시간 내 주셔서 감사합니다. – Eric

관련 문제