Функция Sass, которая меняет цвет шрифта в зависимости от экрана устройства - PullRequest
0 голосов
/ 14 марта 2019

Я ищу способ создать функцию sass, которая изменяет цвет моего шрифта с белого (на рабочем столе) на черный (на планшете и мобильном телефоне). Причина в том, что я накладываю текст на видео на рабочем столе, но затем на мобильном телефоне накладываемый текст переключается на заблокированный текст, помещенный под видео, поэтому цвет шрифта должен измениться на черный в это время.

Я относительно новичок в sass, но до сих пор пробовал это как миксин (который не работал)

** Я знаю, что это можно сделать с помощью css, но я хочу сделать это немного более динамичным и многократно используемым **

$color-media-sizes: (
"max1024": #000 or #fff,
 null: #000 or #fff
);

с этой функцией

@function color($mobile-color, $desktop-color){
    @return ($mobile-color $desktop-color)
}

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Я не думаю, что вам действительно нужно использовать SASS для этого, CSS справится с задачей.Просто поместите медиазапросы и цвета на экране вашего устройства (Источник: https://gist.github.com/gokulkrishh/242e68d1ee94ad05f488)

Прочтите этот документ, он поможет вам понять медиазапросы: https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries

/* 
  ##Device = Desktops
  ##Screen = 1281px to higher resolution desktops
*/

@media (min-width: 1281px) {

/* CSS */

}

/* 
  ##Device = Laptops, Desktops
  ##Screen = B/w 1025px to 1280px
*/

@media (min-width: 1025px) and (max-width: 1280px) {

/* CSS */

}

/* 
  ##Device = Tablets, Ipads (portrait)
  ##Screen = B/w 768px to 1024px
*/

@media (min-width: 768px) and (max-width: 1024px) {

/* CSS */

}

/* 
  ##Device = Tablets, Ipads (landscape)
  ##Screen = B/w 768px to 1024px
*/

@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {

/* CSS */

}

/* 
  ##Device = Low Resolution Tablets, Mobiles (Landscape)
  ##Screen = B/w 481px to 767px
*/

@media (min-width: 481px) and (max-width: 767px) {

/* CSS */

}

/* 
  ##Device = Most of the Smartphones Mobiles (Portrait)
  ##Screen = B/w 320px to 479px
*/

@media (min-width: 320px) and (max-width: 480px) {

/* CSS */

}

Mixin в SASS похож на создание «шаблона» компонента.Например: кнопка

@mixin button($text, $background) {
     background: $background;       
     border-radius: 10px;
     color: $text;                 
     padding: 0 15px;
     text-decoration: none;
     text-transform: uppercase;
}

// Then you can call it this way :
.success-button {
    @include button("#FFF", "#0F0");
}
.error-button {
    @include button("#FFF", "#F00");
}

Надеюсь, что смогу помочь

0 голосов
/ 14 марта 2019

Может быть, вы можете сделать это, используя только медиа-запросы CSS:

@media screen and (min-width: 980px) {
  body {
    color: red;
  }
}
@media screen  and (max-width: 979px) {
  body {
    color: blue;
  }
}

@media screen and (max-width: 500px) {
  body {
    color: green;
  }
}
...