溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

css偽元素::before和::after怎么使用

發(fā)布時(shí)間:2022-03-10 15:36:59 來(lái)源:億速云 閱讀:223 作者:iii 欄目:web開(kāi)發(fā)

這篇文章主要介紹“css偽元素::before和::after怎么使用”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“css偽元素::before和::after怎么使用”文章能幫助大家解決問(wèn)題。

  首先我們來(lái)簡(jiǎn)單看一下偽元素是如何工作的。

  關(guān)于使用::after和::before的注意事項(xiàng)

  當(dāng)且僅當(dāng)它們具有content屬性值時(shí),瀏覽器才會(huì)將這些元素呈現(xiàn)為“生成的內(nèi)容”。該值可以設(shè)置為空字符串:content:"";。

  當(dāng)瀏覽器將此元素插入DOM時(shí),它會(huì)將其插入到用于選擇器的元素中。這是規(guī)范中的定義:

  ::before表示在原始元素的實(shí)際內(nèi)容之前表示一個(gè)可設(shè)置樣式的子偽元素

  ::after在原始元素的實(shí)際內(nèi)容之后立即表示一個(gè)可設(shè)置樣式的子偽元素。

  默認(rèn)情況下,此新元素將是內(nèi)聯(lián)元素。將元素插入DOM后,可以像修改其他元素一樣對(duì)其進(jìn)行修改。這給了我們很多控制權(quán)來(lái)獲得各種。

  重要說(shuō)明:并非所有瀏覽器/屏幕閱讀器組合都能讀取您放置在content偽元素中的內(nèi)容。這應(yīng)該只用于文本元素。應(yīng)始終將真實(shí)內(nèi)容添加到頁(yè)面的標(biāo)記中。

  在某些類型的鏈接旁邊添加圖標(biāo)

  如果您想為用戶提供有關(guān)鏈接的更多可視信息,可以使用::after添加圖標(biāo)而不添加標(biāo)記。

  將“外部鏈接”圖標(biāo)添加到非絕對(duì)鏈接的鏈接處。

  a[href^="http"]::after{

  background-image:url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/161359/open-in-new.svg);

  background-size:contain;

  content:"";

  display:inline-block;

  vertical-align:middle;

  width:1em;

  height:1em;

  }

  在此代碼中,假設(shè)將內(nèi)部鏈接編寫(xiě)為相對(duì)路徑,我們找到任何具有以http開(kāi)頭的href元素的錨標(biāo)記。

  此方法的另一個(gè)好用的例子是PDF

  a[href$=".pdf"]::after{

  content:"(pdf)";

  font-size:.8em;

  color:tomato;

  }

  對(duì)于任何以.pdf結(jié)尾的href,我們可以附加字符串“(pdf)?!边@個(gè)::after元素比圖像更容易控制,因?yàn)槲覀冇型暾腃SS控件,可以調(diào)整字體大小,顏色和任何其他效果。

  有關(guān)這些選擇器的更多信息,大家可以參考PHP中文網(wǎng)的css在線手冊(cè)。

  為容器添加有趣的“邊框”

  在HoudiniPaintAPI訪問(wèn)所有瀏覽器之前,您可能會(huì)覺(jué)得您的元素非常無(wú)聊。但使用簡(jiǎn)單的CSS和::before和::after,您可以為所有瀏覽器帶來(lái)一些更有趣的效果。

  .related-article{

  padding:20px;

  position:relative;

  background-image:linear-gradient(120deg,#eaee44,#33d0ff);

  }

  .related-article*{

  position:relative;//Setstackingcontexttokeepcontentontopofthebackground

  }

  .related-article::before{

  content:"";

  background-color:#fff;

  display:block;

  position:absolute;

  top:10px;

  left:10px;

  width:calc(100%-20px);

  height:calc(100%-20px);

  }

  在此示例中,我們將背景漸變應(yīng)用于父元素,并使用::before元素以簡(jiǎn)單的背景顏色“剪切”內(nèi)部。盡管是兩個(gè)矩形,但這給出了邊框的外觀。要獲得適合邊框的尺寸,只需要一些簡(jiǎn)單的數(shù)學(xué)運(yùn)算。

  通過(guò)將偽元素定位為絕對(duì)值,我們可以控制其位置。Sass可以通過(guò)變量和數(shù)學(xué)函數(shù)使數(shù)學(xué)運(yùn)算變得更容易。

  如果我們希望我們的標(biāo)題在它們下面有花哨的小邊框,那么如果不是一個(gè)完整的邊界呢?

  我們可以使用::after元素來(lái)實(shí)現(xiàn)它。

  .cool-border::after{

  content:"";

  display:block;

  height:7px;

  background-image:linear-gradient(120deg,#e5ea15,#00c4ff);

  position:absolute;

  top:calc(100%+5px);

  left:50%;

  width:45%;

  transform:translateX(-50%)skew(-50deg);}.cool-border{

  position:relative;

  }

  在這個(gè)例子中,我們還將偽元素置于絕對(duì)位置。我們的“邊界”的大小取決于新元素的高度。如果這是一個(gè)右邊或左邊的“邊框”,你可以使用元素寬度來(lái)確定尺寸。

  由于這只是頁(yè)面上的一個(gè)元素,我們也可以使邊界偏斜。

  添加不需要添加樣式標(biāo)記的樣式元素

  <blockquote>是一個(gè)很好的語(yǔ)義元素。我們不要用額外的標(biāo)記破壞它。

  在許多::after示例(包括本文中的其他示例)中,您可以看到偽元素position:absolute,當(dāng)然沒(méi)有規(guī)則說(shuō)這必須是這種情況。

  讓我們使用::before和::after作為grid-items在a上放置引號(hào)<blockquote>。

  通過(guò)將所有內(nèi)容明確地放在網(wǎng)格上,我們不必?fù)?dān)心額外的包裝器。我們也可以使用引號(hào)作為背景圖像,并允許它們minmax在我們的簡(jiǎn)單函數(shù)中進(jìn)行縮放grid-template-columns。

css偽元素::before和::after怎么使用

關(guān)于“css偽元素::before和::after怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI