學會這些CSS技巧讓你寫樣式更加絲滑

鵬多多發表於2021-07-12

1,前言


記錄一些很好用的css屬性

1,calc()


calc()函式用於動態計算長度值,任何長度值都可以使用calc()函式進行計算,需要注意的是,運算子前後都需要保留一個空格,例如:

.box{
	width: calc(100% - 10px)
	height: calc(100% - 2rem)
}

相容性

相容性

2,min()


min()函式允許你從逗號分隔符表示式中選擇一個最小值作為css的屬性值,例如:

.box{
	width: min(1vw, 4em, 80px)
}

在上面的例子中,寬度最多是80px。如果視口的寬度小於800px,或者一個em的寬度小於20px,則會更窄。換句話說,最大寬度是80px。

當min() 用於控制文字大小時,要保證文字足夠大以便於閱讀。建議把 min() 方法嵌入到 max() 中

p{
	font-size: max(min(0.5vw, 0.5em), 1rem)
}

這用於保證最小值是1rem,這樣在頁面縮放時文字也會縮放

相容性

相容性

3,max()


max()函式讓你可以從一個逗號分隔的表示式列表中選擇最大(正方向)的值作為屬性的值

.box{
	width: max(10vw, 4em, 80px)
}

在上面這個例子中,寬度最小會是80px,除非檢視寬度大於800px或者是一個em比20px寬。簡單來說,最小寬度是80px。你也可以認為max()的值提供了一個屬性最小可能的值。

當max()用於控制文字大小時,確保文字總是足夠大以供閱讀。一個建議是使用min()巢狀在 max()中的函式,該函式的第二個值是一個相對長度單位,該單位總是足夠大以讀取

p{
	font-size: max(min(0.5vw, 0.5em), 1rem)
}

這確保了1rem的最小大小,如果頁面縮放,文字大小會縮放

相容性

相容性

4,clamp()


clamp() 函式的作用是把一個值限制在一個上限和下限之間,當這個值超過最小值和最大值的範圍時,在最小值和最大值之間選擇一個值使用。它接收三個引數:最小值、首選值、最大值clamp(MIN, VAL, MAX),當首選值比最小值要小時,則使用最小值,當首選值介於最小值和最大值之間時,用首選值,當首選值比最大值要大時,則使用最大值,表示式中的每一個值都可以用不同的單位。

.box{
	width: clamp(200px, 50vw, 600px)
}

相容性

相容性

5,gap


gap屬性是用來設定網格行與列之間的間隙,該屬性是row-gap和column-gap的簡寫形式,適用於Flex,Grid和multi-column佈局的元素

#flex {
  width: 300px;
  display: flex;
  gap: 20px 5px;
}
#grid {
  height: 200px;
  display: grid;
  grid-template: repeat(3, 1fr) / repeat(3, 1fr);
  gap: 20px 5px;
}

相容性

相容性
相容性

6,writing-mode


writing-mode 屬性定義了文字在水平或垂直方向上如何排布。
語法格式如下:

writing-mode: horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr

horizontal-tb:水平方向自上而下的書寫方式。即 left-right-top-bottom

vertical-rl:垂直方向自右而左的書寫方式。即 top-bottom-right-left

vertical-lr:垂直方向內內容從上到下,水平方向從左到右

sideways-rl:內容垂直方向從上到下排列

sideways-lr:內容垂直方向從下到上排列

相容性

相容性

如果看了覺得有幫助的,我是@鵬多多,歡迎 點贊 關注 評論;
END

面向百度程式設計

往期文章

個人主頁

相關文章