亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在CSS 3媒體查詢中使用Sass變量

在CSS 3媒體查詢中使用Sass變量

holdtom 2019-08-03 09:03:05
在CSS 3媒體查詢中使用Sass變量我試圖將Sass變量的使用與@media查詢結合起來,如下所示:$base_width:1160px; @media screen and (max-width: 1170px) {$base_width: 960px;} @media screen and (min-width: 1171px) {$base_width: 1160px;}$base_width然后在樣式表寬度基于百分比的測量中的不同點定義,以生成流體布局。當我這樣做時,似乎正確地識別了變量,但是媒體查詢的條件卻沒有被正確識別。例如,上面的代碼生成一個1160 px布局,而不考慮屏幕寬度。如果我翻動一下@media語句,如下所示:@media screen and (min-width: 1171px) {$base_width: 1160px;} @media screen and (max-width: 1170px) {$base_width: 960px;}它產生一個960px的布局,同樣不管屏幕的寬度。還請注意,如果我刪除了$base_width: 1160px;它返回一個未定義變量的錯誤。知道我錯過了什么嗎?
查看完整描述

3 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

這是不可能的。因為扳機@media screen and (max-width: 1170px)發生在客戶端。

只有在Sass抓取樣式表中包含您的所有規則和屬性的情況下,才有可能實現您的預期結果。$base_width變量并相應地復制/更改它們。

因為它不會自動工作,所以您可以這樣手工完成:

@media screen and (max-width: 1170px)
      $base_width: 960px // you need to indent it to (re)set it just within this media-query
      // now you copy all the css rules/properties that contain or are relative to $base_width e.g.
      #wrapper
          width: $base_width
          ...

@media screen and (min-width: 1171px)
    $base_width: 1160px
      #wrapper
          width: $base_width
          ...

這不是真的干,但你能做的最好。

如果每次更改都是相同的,那么您也可以準備一個包含所有更改值的Mixin,所以您不需要重復它。此外,您還可以嘗試將混搭與特定的更改結合起來。比如:

@media screen and (min-width: 1171px)
    +base_width_changes(1160px)
    #width-1171-specific-element // additional specific changes, that aren't in the mixin
        display: block

米辛會像這樣

=base_width_changes($base_width)
    #wrapper
        width: $base_width




查看完整回答
反對 回復 2019-08-05
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

類似飛利浦·佐德勒的回答,你可以用混音來做。如果您想要的話,可以將所有內容都放在一個文件中。

@mixin styling($base-width) {
    // your SCSS here, e.g.
    #Contents {
        width: $base-width;
    }
}

@media screen and (max-width: 1170px) {
    @include styling($base-width: 960px);
}
@media screen and (min-width: 1171px) {
    @include styling($base-width: 1160px);
}




查看完整回答
反對 回復 2019-08-05
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

請不要使用此解決方案。羅南的回答要好得多。

作為干法解決方案,您可以使用@import媒體查詢中的語句,例如如下所示。

@media screen and (max-width: 1170px) {
    $base_width: 960px;
    @import "responsive_elements";
}
@media screen and (min-width: 1171px) {
    $base_width: 1160px;
    @import "responsive_elements";
}

使用媒體查詢中定義的變量定義文件中的所有響應元素。所以,您需要重復的就是import語句。




查看完整回答
反對 回復 2019-08-05
  • 3 回答
  • 0 關注
  • 650 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號