Sass功能可根据设备屏幕更改字体颜色

时间:2019-03-14 14:46:00

标签: css sass mixins

我正在寻找一种创建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 个答案:

答案 0 :(得分:1)

我认为您真的不需要使用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 */

}

SASS中的Mixin类似于创建组件的“模板”。例如。 :一个按钮

@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");
}

希望我能帮忙

答案 1 :(得分:0)

也许您可以仅使用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;
  }
}