色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

使用CSS模塊定位next.js中的純元素

劉姿婷2年前8瀏覽0評論

我正在將一個應用從React移植到Next,我的css一直出現錯誤:“ul”不是純的(純選擇器必須包含至少一個本地類或id)。

我正在使用css模塊,但我不確定如何將所有內容都保存在css模塊中。

例如:

索引. js

<div className={styles.container}>
  <ul>
    <li>Person One</li>
  </ul>
</div>

索引.模塊. css

.container{
  background-color: pink;
}
ul{
  list-style-type: none; //this throws an error
}

如果你不想像@Zeeshan的回答中提到的那樣使用類,就不能使用基于模塊的CSS。您需要使用一個全局樣式表將純元素作為選擇器。它們不能是組件范圍的。

此外,您只能在一個地方導入全局樣式表(_app.tsx/_app.jsx/_app.js),否則您會收到一個錯誤(在此解釋)。

您可以將您的樣式分散在許多樣式表中,但是它們都必須是全局的,所以這樣做可能沒有什么好處。

直接引用Next.js GitHub論壇:

您收到此錯誤是因為您正在直接使用html標簽 而不是文件擴展名中的類名或id [文件名].模塊.(css | scss | sass)

帶有*模塊的文件擴展名.(css | scss | sass)是css模塊 它們只能以使用類名或id的元素為目標,而不能 使用標記名。雖然這在其他框架中也是可能的,比如 create-react-app,在next-js中是不可能的。

我的建議是在一個單獨的文件中使用這些html選擇器css 不包含'.“模塊”在里面。示例:[文件名]。(css | scss | sass)-& gt;styles.scss

而不是像這樣進口

從'導入樣式。/styles . module . scss ';

像這樣導入

“導入”。/styles . scss ';

這其實極其簡單。

您可以向頂層元素添加一個容器類(就像您所做的那樣),然后使用組合子(,+,& gt等。)隨心所欲的針對純元素。

例如:

index.js:

<div className={styles.container}>
    <ul>
        <li>Person One</li>
    </ul>
</div>

index.module.css:

.container {
  background-color: pink;
}
.container ul {
  list-style-type: none;
}

嘗試給ul標記一個類名或id,然后相應地編寫您的樣式。

例如:

索引. js

<div className={styles.container}>
 <ul className={styles.container__list}>
  <li>Person One</li>
 </ul>
</div>

索引.模塊. css

.container {
  background-color: pink;
}
.container__list{
  list-style-type: none;
}