我正在寻找一种创建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)
}
答案 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;
}
}