欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

盤點五個驚艷一時的CSS屬性(不常用但很有用)

  發(fā)布時間:2023-02-18 15:50:05   作者:山山而川~xyj   我要評論
這篇文章主要給大家介紹了五個驚艷一時的CSS屬性,這些屬性不常用但很有用,分別包括position: sticky、:empty 選擇器、gap、background-clip: text、invalid 偽類等屬性,需要的朋友可以參考下

前言

隨著前端的不斷發(fā)展,更多新的 CSS 屬性不斷加入提案,本文列舉 5 個不常用但很有用且你見過也可能沒見過的 CSS 屬性,帶大家領(lǐng)略 CSS 之美。

一、position: sticky

不知道大家平時業(yè)務(wù)開發(fā)中有沒有碰到這樣的需求:標(biāo)題在滾動的時候,會一直貼著最頂上。這種場景實際上很多:比如表格的標(biāo)題欄、網(wǎng)站的導(dǎo)航欄、手機通訊錄的人名首字母標(biāo)題等等。如果讓大家自己動手做的話,是不是會用 js 結(jié)合 css 來實現(xiàn)呢?以前確實是這樣的,直到后來 position 屬性新增了一個屬性值 sticky ,前端程序員才迎來了小春天。

css 部分:

.container {
    background-color: oldlace;
    height: 200px;
    width: 140px;
    overflow: auto;
  }
  .container div {
    height: 20px;
    background-color: aqua;
    border: 1px solid;
  }
  .container .header {
    position: sticky;
    top: 0;
    background-color: rgb(187, 153, 153);
}

html 部分:

<div class="container">
  <div class="header">Header</div>
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

就這么簡單?對,就這么簡單,但是使用的時候要注意兼容性。

二、:empty 選擇器

平時開發(fā)的時候數(shù)據(jù)都是通過請求接口獲取的,也會存在接口沒有數(shù)據(jù)的情況。這個時候正常的做法是給用戶一個提示,讓用戶知道當(dāng)前不是出 bug 了,而是確實沒有數(shù)據(jù)。一般的做法是我們?nèi)藶榈呐袛喈?dāng)前數(shù)據(jù)返回列表的長度是否為 0,如果為 0 則顯示一個 “暫無數(shù)據(jù)” 給用戶,反之則隱藏該提示。寫過 Vue 的小伙伴是不是經(jīng)常這么做:

<div>
    <template v-if="datas.length">
        <div v-for="data in datas"></div>
    </template>
    <template v-else>
        <div>暫無數(shù)據(jù)</div>
    </template>
</div>

但是有了 :empty 這個選擇器后,你大可以把這個活交給 CSS 來干:

.container {
    height: 400px;
    width: 600px;
    background-color: antiquewhite;
    display: flex;
    justify-content: center;
    align-items: center;
}
.container:empty::after {
    content: "暫無數(shù)據(jù)";
}

通過 :empty 選中內(nèi)容為空的容器,然后通過偽元素為空容器添加提示。是不是非常方便?

三、gap

小伙伴們?nèi)粘i_發(fā)中,都有用過 paddingmargin 吧,margin 一般用做邊距,讓兩個元素隔開一點距離,但是對于一些場景下,我們很難通過計算得到一個除的盡的值,比如 100px 我要讓 3 個元素等分,且每個元素隔開 10px,這就很尷尬了。
沒關(guān)系!我們可以用 gap 屬性,gap 屬性它適用于 Grid 布局、Flex 布局以及多列布局,并不一定只是 Grid 布局中可以使用。
比如我們要讓每個元素之間隔開 20px, 那么使用 gap 我們可以這樣:

display: flex | grid;
gap: 20px;

四、background-clip: text

這個屬性可能用的不多,有什么用呢?簡單來說就是可以做一個帶背景的文字效果:

大家平時 background-clip 是不是都用來做一些裁切效果?你知道它還有個屬性值是 text 嗎?background-clip: text 用來做帶背景的文字效果,相信大家平時瀏覽一些網(wǎng)站的時候都會看到類似的實現(xiàn),實際上通過 CSS 我們也能做到這種效果。

五、:invalid 偽類

:invalid 表示任意內(nèi)容未通過驗證的 input 或其他 form 元素。什么意思呢?舉個例子。

<form>
  <label for="url_input">Enter a URL:</label>
  <input type="url" id="url_input" />
  <br />
  <br />
  <label for="email_input">Enter an email address:</label>
  <input type="email" id="email_input" required/>
</form>

我們的需求是讓 input 當(dāng)值有效時,元素顏色為綠色,無效時為紅色。

input:invalid {
  background-color: #ffdddd;
}

form:invalid {
  border: 5px solid #ffdddd;
}

input:valid {
  background-color: #ddffdd;
}

form:valid {
  border: 5px solid #ddffdd;
}

input:required {
  border-color: #800000;
  border-width: 3px;
}

input:required:invalid {
  border-color: #C00000;
}

結(jié)論

本文就到此結(jié)束了,希望大家共同努力,早日拿下 CSS 。

到此這篇關(guān)于五個驚艷一時的CSS屬性的文章就介紹到這了,更多相關(guān)盤點CSS屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

  • css常用字體屬性與背景屬性介紹

    這篇文章主要介紹了 css常用字體屬性與背景屬性,css可以做出很多使html樣式的改變,今天主要說一說字體樣式與背景樣式,字體樣式的分類根據(jù)名字就可以判斷出來,下面文章的
    2022-02-25
  • css一些不常見但很有用的屬性操作大全

    這篇文章主要介紹了css一些不常見但很有用的屬性操作大全,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-28
  • CSS如何設(shè)置列表樣式屬性(看這篇文章就夠用了)

    這篇文章主要介紹了CSS如何設(shè)置列表樣式屬性(看這篇文章就夠用了),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著
    2019-11-25
  • 詳解CSS定義字體、顏色、背景等屬性

    本文通過實例代碼給大家介紹了CSS定義字體、顏色、背景等屬性的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-08-01

最新評論