首頁  >  問答  >  主體

SASS樣式優先於媒體查詢

我正在嘗試使用媒體查詢來覆蓋桌面裝置的樣式,但似乎不起作用。我將邊框顏色設為h2元素,並進行了測試以更好地視覺化此問題。如您所見,h2的邊框顏色設定為黃色。

這是我的SASS樣式:

.hero{
    width: 100%;
    position: relative;
    background-color: $orange-color;
    background-image: url("../../../src/assets/images/gastro/gasto-item-chicken-buger.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    z-index: 0;
    .hero_content{ 
        flex-grow: 1;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        transform: translateY(-100px);
        z-index: 2;
        .container{
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            .box{
                padding: 36px;
                display: flex;
                flex-wrap: wrap;
                text-align: center;
                justify-content: center;
                width: 50%;
                h2{
                    border: 2px solid yellow;
                    color: $c-white;
                    font-family: "CustomFont";
                    font-size: 4rem;
                    line-height: 1.1;
                    padding-bottom: 18px;
                    text-shadow: .0625rem .0625rem #000;
                    span{
                        color: $button-color;
                    }
                }
                h3{ 
                    color: $c-white;
                    font-family: $ff-title;
                    text-shadow: .0625rem .0625rem #000;
                    font-size: 2rem      
                }
            } 
        }
   }

}

這是同一頁底部的媒體查詢。如您所見,邊框顏色設定為紅色,但仍然顯示黃色邊框顏色,而應該是紅色邊框顏色。只有在通用樣式中刪除黃色邊框顏色時,它才會顯示紅色。

@media (min-width: 768px){    
    .hero{    
        .hero_content{
            .box{
                h2{
                    border: 2px solid red;
                    font-size: 4rem;
                }
                h3{
                    font-size: 2rem;
                }
            }
        } 
    }
}
P粉953231781P粉953231781218 天前3490

全部回覆(1)我來回復

  • P粉348915572

    P粉3489155722024-04-06 12:39:09

    問題在於你的主要CSS有更具體的選擇器,有效地

    .hero .hero_content .container .box h2 { ... }

    在媒體查詢中嘗試覆寫的是

    .hero .hero_content .box h2 { ... }

    所以第一個勝出:第一個中有四個類別選擇器,而第二個中只有三個。

    根據我的個人經驗,像SCSS或LESS這樣的東西的一個真正的負面影響是它們會引導你陷入這樣的陷阱。 CSS是一個非常難以「馴服」和控制的工具。

    有一些技巧可以繞過這個問題,例如

    .hero.hero.hero .hero_content .box h2 { ... }

    用於媒體條件規則。這肯定會讓你感到不舒服。複雜的選擇器是一個陷阱,因為一旦你開始了,你就注定要永遠陷入其中。

    回覆
    0
  • 取消回覆