2016-07-06 7 views
0

Ich möchte eine Regel für Safari-Browser nur mit Sass erstellen. Nach this Antwort brauche ichSass-Interpolation in Selektor funktioniert nicht

@media Bildschirm und (min-Farbe-Index: 0) und (-webkit-min-device-Pixel-Verhältnis: 0)

Hinweis gibt es keinen Raum nach 2. und, sonst löst es Chrom aus. Also irgendwo in my-file.sass ich folgendes tun:

$safari-only: '(min-color-index:0) and(-webkit-min-device-pixel-ratio:0)' 

@media screen and #{$safari-only} 
    body 
     background-image: linear-gradient(green 0%, red 100%) !important 

Aber dieses Ding kompiliert in

@media screen and (min-color-index: 0) and (-webkit-min-device-pixel-ratio: 0) { 
    body { 
    background-image: linear-gradient(green 0%, red 100%) !important; 
    } 
} 

Hinweis gibt IS ein Raum nach dem 2. und. Hier ist der demo

Eine andere Sache Ich mag würde wissen, ob ich einen @safari-only mixin erstellen können. Zum Beispiel:

@mixing safari-only 
    $safari-only: '(min-color-index:0) and(-webkit-min-device-pixel-ratio:0)' 
    @media screen and #{$safari-only} 

@include safari-only 
    body 
    background-image: linear-gradient(green 0%, red 100%) !important 

Dies erzeugt einen Fehler, dass die mixin keinen Körper würde ich hat

So gerne wissen:

  1. Wie kann ich feststellen, sass Formatierung Code nicht statt mich?
  2. Wie kann ich eine erste Ebene Selektor als mixin

P. S. erstellen Ich verwende Sass 3.4.21 (Selective Steve)

Mit freundlichen Grüßen,

Antwort

-1

Sie zwingen können, in SASS Formatierung mit #{}

$safari-only: #{'(min-color-index:0) and(-webkit-min-device-pixel-ratio:0)'} 
+0

Könnte u geben Sie bitte Ihre Antwort nach meinen Bedürfnissen bearbeiten? Ich muss Literal für Selektor erstellen, nicht für Wert. 'Hintergrund ist nur ein Highlight-Beispiel, um den Unterschied zwischen Chrom und Safari klar zu sehen. Und als ich schrieb, benutzte ich '# {$ safari-only}' 'es funktioniert nicht! Wenn ich eine Variable durch ihren Wert ersetze, ändert sie nichts :( – deathangel908

+0

Wie ich in der Frage geschrieben habe, funktioniert es nicht! Es entspricht in '...) und (-web ...' siehe die ' Leerzeichen 'nach ** und **? Es bricht alle Funktionalität dieser browserspezifischen Regel. Ich denke, du hast gerade meine Frage nicht gelesen :) – deathangel908

+0

Könntest du bitte die Demo überprüfen, die ich hinzugefügt habe? http://www.sassmeister.com/gist/3ddf25510ea9b0e5d9e55f6ac9929ea7 – deathangel908

Verwandte Themen