網(wǎng)站開發(fā)用 CSS 編寫邏輯
發(fā)布日期:2022-05-16 09:28:59在網(wǎng)站開發(fā)中CSS 是一種高度專業(yè)化的編程語(yǔ)言,專注于樣式系統(tǒng)。由于這個(gè)獨(dú)特的用例及其聲明性,有時(shí)很難理解。有些人甚至完全否認(rèn)它是一種編程語(yǔ)言。讓我們通過(guò)編寫一個(gè)智能、靈活的樣式系統(tǒng)來(lái)證明它們是錯(cuò)誤的。
首先要控制結(jié)構(gòu),更傳統(tǒng)的通用語(yǔ)言(如 JavaScript)為我們提供了條件(if/then)、循環(huán)(for、while)、邏輯門(===、&&等)和變量等工具。這些結(jié)構(gòu)在 CSS 中的命名不同,它們的語(yǔ)法大不相同,以更好地適應(yīng)文檔樣式的特定用例,其中一些直到幾年前才在 CSS 中可用。再就是變量,變量是最直接的變量。它們?cè)?CSS 中被稱為自定義屬性(盡管每個(gè)人都稱它們?yōu)樽兞浚踔潦撬麄冏约旱恼Z(yǔ)法)。
:root {
--color: red;
}
span {
color: var(--color, blue);
}
雙破折號(hào)聲明一個(gè)變量并賦值。這必須在范圍內(nèi)發(fā)生,因?yàn)樵谶x擇器之外這樣做會(huì)破壞 CSS 語(yǔ)法。請(qǐng)注意:root選擇器,它用作全局范圍。
條件可以以多種方式編寫,具體取決于您要在何處使用它們。選擇器的范圍是它們的元素,媒體查詢是全局范圍的,并且需要它們自己的選擇器。屬性選擇器:[data-attr="true"] {
/* if */
}
[data-attr="false"] {
/* elseif */
}
:not([data-attr]) {
/* else */
}
偽類::checked {
/* if */
}
:not(:checked) {
/* else */
}
媒體查詢::root {
color: red; /* else */
}
@media (min-width > 600px) {
:root {
color: blue; /* if */
}
}
循環(huán),計(jì)數(shù)器既是 CSS 中最直接的循環(huán)形式,也是使用范圍最窄的一種。您只能在content屬性中使用計(jì)數(shù)器,將其顯示為文本。您可以在任何給定點(diǎn)調(diào)整其增量、起點(diǎn)和值,但輸出始終限于文本。但是,如果您想使用循環(huán)來(lái)定義重復(fù)的布局模式怎么辦?這種循環(huán)有點(diǎn)模糊:它是 Grid 的auto-fill屬性。
這會(huì)用盡可能多的元素填充網(wǎng)格,同時(shí)縮放它們以填充可用空間,但在需要時(shí)將它們分成多行。只要找到項(xiàng)目并將其限制為最小寬度 300px 和最大寬度為其自身大小的一小部分,它就會(huì)重復(fù)。它可能比解釋更容易看到。CSS 非常有能力定義智能和反應(yīng)式布局系統(tǒng)。與其他語(yǔ)言相比,它的控制結(jié)構(gòu)和算法可能有點(diǎn)奇怪,但它們就在那里,它們可以勝任任務(wù)。讓我們停止僅僅描述一些風(fēng)格并開始讓它們發(fā)揮作用。
聯(lián)系電話:
13528173451