2014-12-25 4 views
8

mam następujący fragment przez css2sass (Konwersja do SCSS)Dlaczego SASS nie może kompilować pseudo_expr takich jak `& :: not (: first-child)`?

.floating-label-form-group { 
    position: relative; 
    margin-bottom: 0; 
    padding-bottom: .5em; 
    border-bottom: 1px solid #e1e1e1; 
    input, textarea { 
    z-index: 1; 
    position: relative; 
    padding-right: 0; 
    padding-left: 0; 
    border: 0; 
    border-radius: 0; 
    font-size: 1.5em; 
    background: 0 0; 
    box-shadow: none!important; 
    resize: none; 
    } 
    label { 
    display: block; 
    z-index: 0; 
    position: relative; 
    top: 2em; 
    margin: 0; 
    font-size: .85em; 
    line-height: 1.764705882em; 
    vertical-align: middle; 
    vertical-align: baseline; 
    opacity: 0; 
    -webkit-transition: top .5s ease,opacity .5s ease; 
    -moz-transition: top .5s ease,opacity .5s ease; 
    -ms-transition: top .5s ease,opacity .5s ease; 
    transition: top .5s ease,opacity .5s ease; 
    } 
    &::not(:first-child) { 
    padding-left: 14px; 
    border-left: 1px solid #e1e1e1; 
    } 

Kiedy skompilować go przy użyciu Sass 3.4.9, narzeka:

Error: Invalid CSS after "&::not(": expected pseudo_expr, was ":first-child)" 

Oczekiwany kod CSS powinien wyglądać następująco:

.floating-label-form-group::not(:first-child){ 
    padding-left:14px;border-left:1px solid #e1e1e1} 

wydaje się jednak, że SASS nie wie jak skompilować &::not( w CSS. Czy ktoś ma pomysły, jak to naprawić?

Odpowiedz

18

Właściwie Sass ma rację: to rzeczywiście nieważne CSS. :not() jest pseudo-klasa, a nie pseudo-element, więc powinien mieć tylko jeden dwukropek:

&:not(:first-child) { 
    padding-left: 14px; 
    border-left: 1px solid #e1e1e1; 
    } 
-1

Place cudzysłowie: first-child, następujący kod pracował dla mnie w Rais 4

.floating-label-form-group::not(':first-child') { 
    padding-left: 14px; 
    border-left: 1px solid #eee; 
} 
+0

Generuje niepoprawny CSS. – cimmanon

Powiązane problemy