搜尋
首頁web前端css教學用CSS邊框圖像裝飾網絡

以前,為網頁添加裝飾性元素(如花哨的邊框)需要切片圖像,並耐心調整 CSS 代碼,直到效果滿意為止。

現在,CSS 簡化了這一過程。只需幾行代碼,即可為您的網站添加相當複雜的邊框。本文將向您展示如何做到這一點。

要點

  • CSS 允許僅用幾行代碼即可為網頁添加複雜的邊框,包括使用 border-image-source 屬性在邊框上添加背景圖像。
  • border-image-slice 屬性將選定的圖像應用於邊框,將圖像分成九個區域:四個角、四個邊和一個中間區域,可以選擇為偏移量指定一個到四個數字或百分比值。
  • border-image-width 屬性設計邊框圖像區域內的內部偏移量,而 border-image-outset 屬性允許將邊框圖像區域推到邊框框之外。
  • 可以使用簡寫 border 屬性重置 border-image 屬性,該屬性可以快速重置元素所有四個邊框的寬度、顏色和样式。在撰寫本文時,border-image 在所有主要瀏覽器中幾乎都得到了完全支持。

邊框圖像屬性

一種常見的邊框樣式設置方法是使用預設的 border-style 規則。這些規則包括:dotteddashedsoliddoublegrooveridgeinsetoutset

這些樣式已經提供了相當多的選擇。但是,您可以更進一步,使用以下 CSS 屬性為邊框添加吸引人的背景圖像。

border-image-source 屬性

使用此屬性,您可以為元素的邊框分配背景圖像。該值通常是圖像的 URL:

element {
  border-image-source: url('myimage.png');
}

您會發現 CSS 漸變效果也一樣好:

element {
  border-image-source: linear-gradient(10deg, #fe01f5 0%, #2e113d 100%);
}

在瀏覽器中,它看起來像這樣:

Decorating the Web with CSS Border Images 如果您將此屬性設置為 none 值,或者無法顯示圖像,瀏覽器將使用為 border-style 屬性設置的值。因此,最好使用 border-style 作為後備方案。

您使用的圖像不需要與邊框的寬度和高度匹配。 CSS 邊框圖像的美妙之處在於,您只需要一個小圖像即可裝飾任何寬度和高度的元素邊框,包括自適應不同屏幕尺寸的元素。

border-image-slice 屬性

使用 border-image-source 屬性選擇圖像後,您可以使用 border-image-slice 屬性將其應用於邊框。

element {
  border-image-source: url('myimage.png');
}

讓我們更詳細地了解一下。此屬性設計來自頂部、右側、底部和左側的內部偏移量。這些偏移量最終會將您的小型圖像切成九個區域:四個角、四個邊和一個中間區域。

Decorating the Web with CSS Border Images 您可以指定一個到四個數字或百分比值。當您指定四個值時,它們將應用於頂部、右側、底部和左側偏移量。如果您跳過左側偏移量,則這將與右側相同。如果您錯過了底部偏移量,則這將與頂部相同。省略右側偏移量的值將使其與頂部相同。如果您只使用一個值,它將用於所有四個偏移量。

百分比值指的是圖像大小的百分比——水平偏移量的圖像寬度和垂直偏移量的圖像高度。

數字代表圖像中的像素,或者在矢量圖像的情況下代表坐標。還有一點,不要在數字後面添加 px,這樣做不起作用!

以下是您可以使用 border-image-slice 的方法:

element {
  border-image-source: linear-gradient(10deg, #fe01f5 0%, #2e113d 100%);
}
element {
  border-image-slice: 19;
}

使用大小為 100 x 100 像素的圖像作為邊框,其外觀如下:

Decorating the Web with CSS Border Images 最終效果如下:

Decorating the Web with CSS Border Images 中間區域呈現為完全透明,因此不可見。如果您想使其可見,請添加 fill 關鍵字。

例如,使用中間區域完全不透明的圖像,不添加 fill 關鍵字,將與上面的示例完全相同。但是,請按如下方式應用 fill 關鍵字:

<div class="box">
  Border Image
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. 
</div>

使用中間區域包含細節的圖像:

Decorating the Web with CSS Border Images 然後,我們會發現圖像的中間區域在頁面上完全可見,儘管有點模糊和壓縮:

Decorating the Web with CSS Border Images

border-image-width 屬性

此屬性繪製在所謂的邊框圖像區域內。默認情況下,此區域的邊界是邊框框的邊界。與 border-image-slice 屬性一樣,border-image-width 設計內部偏移量,將圖像分成九個區域。

此屬性接受一個到四個值(頂部、右側、底部、左側),可以使用數字或百分比。百分比相對於邊框圖像區域的大小,即水平偏移量的區域寬度和垂直偏移量的區域高度。如果您使用沒有 px 單位的數字,則這些數字將等於相應的計算邊框寬度的倍數。例如,下面的代碼:

element {
  border-image-source: url('myimage.png');
}

……將邊框圖像的寬度設置為邊框寬度值的 3 倍,即 19 像素。結果如下所示:

Decorating the Web with CSS Border Images 我發現,為 border-image-widthborder-image-slice 屬性賦予相同的值可以確保您的邊框圖像以最佳狀態顯示,而不會出現不需要的變形。

border-image-outset 屬性

到目前為止,我使用的所有屬性都默認為內嵌邊框圖像區域。但是,您可以選擇將邊框圖像區域推到邊框框之外。您可以使用 border-image-outset 屬性來實現。

此屬性採用一個到四個值(頂部、右側、底部、左側),以數字或長度單位(如 pxem 等)表示。如果您使用數字,則結果將是邊框圖像被推到邊框框之外,其倍數為計算的邊框寬度。

為了進一步說明,我繪製了一個綠色的虛線輪廓來表示邊框框。邊框圖像區域包含一個粉紅色的邊框圖像。在其默認的內嵌狀態下,邊框圖像位於綠色輪廓內。這意味著邊框圖像區域位於邊框框內。

Decorating the Web with CSS Border Images border-image-outset: 19px; 添加到 CSS 規則集中,會將粉紅色的邊框圖像推到虛線綠色輪廓之外。這表示邊框圖像區域繪製在邊框框之外:

Decorating the Web with CSS Border Images 請注意,位於邊框框之外的邊框圖像部分不會觸發滾動,也不會捕獲鼠標事件。

border-image-repeat 屬性

此屬性提供了一些關於如何在邊框的側面和中間部分縮放和平鋪圖像切片的選擇。第一個值應用於水平側(頂部和底部),第二個值應用於垂直側(右側和左側)。如果您只設置一個值,則該值將應用於水平和垂直兩側。

可用值包括:

  • stretch – 如果您不使用 border-image-repeat 屬性,則為默認值。此關鍵字會拉伸圖像以填充可用區域。
  • repeat – 圖像平鋪重複以填充可用區域。如果可用區域不能被平鋪寬度整除,則圖像可能會被切斷。
  • round – 與 repeat 相同,但是如果空間不足以容納平鋪,則會縮放平鋪直到它們都適合。這確保了平鋪永遠不會被切斷,但圖像可能會看起來有點壓縮。
  • space – 與 repeat 相同,但是如果空間不是平鋪寬度的精確倍數,則額外的空白將均勻分佈在每個平鋪周圍。

在撰寫本文時,Firefox 似乎將 space 呈現為與 stretch 相同,而 Chrome 則將 space 呈現為與 repeat 相同。

border-image 簡寫屬性

您可以將上面討論的所有單個屬性壓縮到 border-image 簡寫屬性中,如下所示:

  1. border-image-source
  2. border-image-slice
  3. border-image-width
  4. border-image-outset
  5. border-image-repeat

以下是代碼片段:

element {
  border-image-source: url('myimage.png');
}

如果要刪除邊框圖像怎麼辦?

重置邊框的最佳方法是使用簡寫 border 屬性。使用 border,您可以快速重置元素所有四個邊框的相同寬度、顏色和样式。無需指定 border-image: none 規則,也不需要覆蓋任何單個 border-image 屬性。

瀏覽器支持

在撰寫本文時,border-image 在所有主要瀏覽器中幾乎都得到了完全支持。只有 Firefox 無法跨元素拉伸 SVG 圖像,Opera Mini 支持帶有 -o- 前綴的簡寫語法,但不支持單個屬性。

結論

本文主要介紹了 border-image 屬性:它接受的值、最佳使用方法以及在撰寫本文時的瀏覽器支持級別。

您可以在 CSS 背景和邊框級別 3 規範文檔中找到更多詳細信息。

如果您在項目中使用了 border-image 屬性,為什麼不與社區分享最終結果呢?

期待您的回复!

關於使用 CSS 邊框圖像裝飾網頁的常見問題解答 (FAQ)

如何創建 CSS 邊框圖像?

創建 CSS 邊框圖像涉及使用 border-image 屬性。此屬性允許您指定用作元素周圍邊框的圖像。此屬性的語法如下:

element {
  border-image-source: url('myimage.png');
}

source 是您要使用的圖像的 URL。 slice 定義圖像的內側偏移量。 width 設置邊框的寬度。 outset 確定邊框圖像區域超出邊框框的距離。 repeat 指定圖像的平鋪或重複方式。

CSS 中有哪些不同的邊框樣式?

CSS 提供了幾種邊框樣式,您可以使用它們來自定義網頁元素的外觀。這些包括:nonehiddendotteddashedsoliddoublegrooveridgeinsetoutset。每種樣式都會產生不同的視覺效果。例如,dotted 會創建一個帶有系列點的邊框,而 double 會創建一個雙線邊框。

如何使用 CSS 創建內嵌邊框?

可以使用 inset 邊框樣式在 CSS 中創建內嵌邊框。此樣式使框看起來像是嵌入在頁面中的。其語法如下:

element {
  border-image-source: linear-gradient(10deg, #fe01f5 0%, #2e113d 100%);
}

我可以為元素的不同側使用不同的邊框樣式嗎?

可以,CSS 允許您將不同的邊框樣式應用於元素的不同側。您可以使用 border-top-styleborder-right-styleborder-bottom-styleborder-left-style 屬性分別指定每側的樣式。

如何控制 CSS 邊框圖像的大小?

可以使用 border-image-width 屬性控制 CSS 邊框圖像的大小。此屬性通過定義邊框區域的大小來設置邊框圖像的寬度。您可以以像素為單位指定寬度,也可以將其指定為元素框的百分比。

我可以將漸變圖像用作 CSS 中的邊框嗎?

可以,CSS 允許您將漸變圖像用作邊框。您可以使用 linear-gradient 函數創建漸變圖像,然後使用 border-image 屬性將其用作邊框圖像。

如何使我的 CSS 邊框圖像重複?

CSS 中的 border-image-repeat 屬性控制邊框圖像的重複方式。可能的值為 stretch(默認值)、repeatroundspacestretch 將圖像縮放以填充區域。 repeat 平鋪圖像。 round 平鋪圖像,但將其縮放以精確匹配。 space 平鋪圖像,但在平鋪之間留有空間。

CSS 中的 border 屬性和 border-image 屬性有什麼區別?

CSS 中的 border 屬性用於設置元素邊框的樣式、寬度和顏色。另一方面,border-image 屬性允許您使用圖像作為元素周圍的邊框。

我可以將 CSS 邊框圖像與圓角一起使用嗎?

可以,您可以將 CSS 邊框圖像與圓角一起使用。您可以使用 border-radius 屬性創建圓角,然後使用 border-image 屬性應用邊框圖像。

如何在 CSS 中創建虛線邊框?

可以使用 dashed 邊框樣式在 CSS 中創建虛線邊框。其語法如下:

element {
  border-image-source: url('myimage.png');
}

這將創建一個帶有系列短線或虛線的邊框。

以上是用CSS邊框圖像裝飾網絡的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
軌道力學(或我如何優化CSS KeyFrames動畫)軌道力學(或我如何優化CSS KeyFrames動畫)May 09, 2025 am 09:57 AM

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSS動畫:很難創建它們嗎?CSS動畫:很難創建它們嗎?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcsssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingMultatingMultationMultationProperPertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用CombanningWiThjavoFofofofoftofofo

CSS計數器:自動編號的綜合指南CSS計數器:自動編號的綜合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他們可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑戰挑戰InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)創造性

使用捲軸驅動動畫的現代滾動陰影使用捲軸驅動動畫的現代滾動陰影May 07, 2025 am 10:34 AM

使用滾動陰影,尤其是對於移動設備,是克里斯以前涵蓋的一個微妙的UX。傑夫(Geoff)涵蓋了一種使用動畫限制屬性的新方法。這是另一種方式。

重新訪問圖像圖重新訪問圖像圖May 07, 2025 am 09:40 AM

讓我們快速進修。圖像地圖一直返回到HTML 3.2,首先是服務器端地圖,然後使用映射和區域元素通過圖像上的單擊區域定義了可單擊區域。

DEV狀態:每個開發人員的調查DEV狀態:每個開發人員的調查May 07, 2025 am 09:30 AM

開發委員會調查現已開始參與,並且與以前的調查不同,它涵蓋了除法:職業,工作場所,以及健康,愛好等。 

什麼是CSS網格?什麼是CSS網格?Apr 30, 2025 pm 03:21 PM

CSS網格是創建複雜,響應式Web佈局的強大工具。它簡化了設計,提高可訪問性並提供了比舊方法更多的控制權。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境