第 23 章 CSS3 邊框圖片效果

来源:http://www.cnblogs.com/zfc2201/archive/2016/05/01/5450151.html
-Advertisement-
Play Games

學習要點: 1.屬性初探 2.屬性解釋 3.簡寫和版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 中邊框圖片背景的效果,通過這個新屬性讓邊框更加的豐富多彩。 一.屬性解釋 CSS3 提供了一個新的屬性集合,用這幾個屬性可以嵌入圖片形式的邊框。這樣,邊框就可以自定義了。 學習要點: 1 ...


學習要點:

1.屬性初探

2.屬性解釋

3.簡寫和版本

 

主講教師:李炎恢

 

本章主要探討 HTML5 中 CSS3 中邊框圖片背景的效果,通過這個新屬性讓邊框更加的豐富多彩。

 

一.屬性解釋

CSS3 提供了一個新的屬性集合,用這幾個屬性可以嵌入圖片形式的邊框。這樣,邊框就可以自定義了。

1.border-image-source      //引入背景圖片地址
2.border-image-slice         //切割引入背景圖片
3.border-image-width       //邊框圖片的寬度
4.border-image-repeat     //邊框背景圖片的排列方式
5.border-image-outset     //邊框背景向外擴張
6.border-image               //上面五個屬性的簡寫方式

 

二.屬性解釋 

要實現邊框背景,我們對圖片也有一定的要求,否則效果不能完全體現出來。圖片可以通過九宮格的切分來瞭解它。我們使用 W3C 官網上教學的圖片來講解一下。

如上圖所示,九宮格並不一定要求每一個格子大小都相同。當然,如果相同的話,製作邊框背景就相對容易一點。比如如下這張圖片:

首先,用 Photoshop 軟體分析一下這個標準九宮格的總體大小和每個格子的大小。最終得出圖片總大小為 81px 正方形,四個角的大小為 27px 的正方形,其餘五個角也是 27px。

那麼,第一步:先創建一個盒子區域,大小為 400x400 的矩形。然後設置引入邊框圖像。

//引入邊框圖像

border-image-source: url(border.png);

單單隻有這句話,webkit 引擎下的瀏覽器會在盒子區塊的四個角看到一丁點圖像的影子。而其他瀏覽器什麼都看不到。這是由於沒有設置邊框背景圖像的寬度導致的。

//設置邊框圖像寬度,上右下左,可以設置四個值

border-image-width: 81px;

這裡設置的是邊框圖像的寬度,而不是邊框寬度。當你設置邊框寬度,你會發現,文本會偏移。而邊框圖像的寬度不會擠壓文本。

//設置邊框的寬度

border-width: 20px;

以上設置完畢後,支持邊框背景圖片的瀏覽器會在四個角落鋪上這張圖片的完整形式。這個時候需要通過引入切割屬性來配置背景圖片的顯示方式。

//首先,邊框圖像寬度設置為 27px 和一個單格寬高一致 

border-image-width: 27px;

//設置切割屬性的大小 

border-image-slice: 27;

這裡的 27 不需要設置 px 像素,因為它預設就是像素。設置 27 之後,我們會發現邊框的四個角正好是橘紅色的四個角。那麼你可以逐步放大或逐步放下這個值,來體驗一下它的變化。

//從 27 逐步放大到 81,四個角都慢慢縮小,各自顯示一個完整的圖像

border-image-slice: 81;

//從 27 逐步縮小到 0,發現四個角都慢慢變大,配合 fill 整體顯示一個完整圖像

border-image-slice: 0 fill;

上面只是單獨設置了一個像素表示四個邊切割的大小,你也可以設置百分比、浮點值或者分別設置四個變的大小。

//33.5%差不多 27

border-image-slice: 33.5%;

//上下設置 27,左右設置 0

border-image-slice: 27 0;

如果想讓邊框背景向外擴張,那麼可以進行擴張設置。

//向外擴張 20px,也可以是浮點值,比如 2.2

border-image-outset: 20px;

四個角設定好之後,我們要設定四個變的顯示排列方式。使用 border-image-repeat 屬性,有四個值提供使用,分別如下表:

屬性

說明

stretch 

指定用拉伸方式填充邊框背景圖。預設值。

repeat

指定用平鋪方式來填充邊框背景圖。當圖片碰到邊界時,如果超過則被截斷。

round

指定用平鋪方式來填充邊框背景圖。圖片會根據邊框的尺寸動態調整圖片的大小,直至正好可以鋪滿整個邊框。

space

指定用平鋪方式來填充邊框背景圖。圖片會根據邊框的尺寸動態調整圖片的之間的間距,直至正好可以鋪滿整個邊框。

//拉伸方式填充,當然,通過上右下左設置四個邊均可

border-image-repeat: stretch;

//平鋪填充,超過則被截斷

border-image-repeat: repeat;

//平鋪填充,動態調整圖片大小直至鋪滿

border-image-repeat: round;

//平鋪填充,動態調整圖片的間距直至鋪滿 

border-image-repeat: space;

//另一個按鈕的小例子 

div {
    width: 400px;
    height: 40px;
    border-image-source: url(button.png);
    border-image-width: 10px;
    border-image-slice: 10 fill;
    border-image-repeat: stretch;
}

 

三.簡寫和版本

//border-image 簡寫格式很簡單,具體如下:

border-image:<' border-image-source '> || <' border-image-slice '> [ /<' border-image-width '> | / <' border-image-width '>? / <' border-image-outset '> ]? || <' border-image-repeat '> 

//以上是手冊上摘錄的,轉換成實際格式如下: 

border-image: url(border.png) 27/27px round; 

對於支持的瀏覽器及版本如下表:

 

Opera

Firefox

Chrome

Safari

IE

部分支持需帶首碼

11.5~12.1

3.5 ~ 14

4 ~ 14

3.1 ~ 5.1

支持需帶首碼

支持不帶首碼

15+

15+

15+

6+

11.0+

//相容加上首碼

-webkit-border-image: url(border.png) 27/27px round;
-moz-border-image: url(border.png) 27/27px round;
-o-border-image: url(border.png) 27/27px round;
border-image: url(border.png) 27/27px round;

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 學習要點: 1.佈局簡介 2.舊版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。 一.佈局簡介 CSS3 提供一種嶄新的佈局方式:Flexbox 佈局,即彈性伸縮佈局模型(Flexible Box)。用來提供一個更加有效 ...
  • Transform-變形 CSS3 2D Transform translate() 移動:將HTML元素在x-y軸平面上做位移,且不會影響到其他元素 translate(x,y)水平方向和垂直方向同時移動(也就是X軸和Y軸同時移動) translateX(x)僅水平方向移動(X軸移動) trans ...
  • 學習要點: 1.早期多列問題 2.屬性及版本 3.屬性解釋 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的多列佈局,通過多列佈局我們方便的創建流體的多列佈局。 一.早期多列問題 我們有時想佈局成報紙、雜誌那樣的多列方式(至少兩列,一般三列以上),但早期 CSS 提供的佈局方式都有著 ...
  • 學習要點: 1.定位佈局 2.box-sizing 3.resize 主講教師:李炎恢 本章主要探討 HTML5 中 CSS 早期所使用的傳統佈局,很多情況下,這些佈局方式還是非常有用的。 一.定位佈局 在使用定位佈局前,我們先瞭解一下定位屬性的用法。CSS2 提供了 position 屬性來實現元 ...
  • 列表組可以用來製作列表清單、垂直導航等效果,也可以配合其他的組件製作出更漂亮的組件,列表組在bootstrap框架中也是一個獨立的組件,所以也對應有自己獨立源碼: LESS:list-group.less SASS:_list-group.scss 列表組看上去就是去掉了列表符號的列表項,並且配上一... ...
  • 學習要點: 1.佈局模型 2.表格佈局 3.浮動佈局 主講教師:李炎恢 本章主要探討 HTML5 中 CSS 早期所使用的傳統佈局,很多情況下,這些佈局方式還是非常有用的。 一.佈局模型 在早期沒有平板和智能手機等移動設備大行其道的時期,Web 頁面的設計主要是面向 PC 端電腦解析度展開的。這種分 ...
  • 學習要點: 1.動畫簡介 2.屬性詳解 3.簡寫和版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 的動畫效果,可以通過類似 Flash 那樣的關鍵幀模式控制運行。 一.動畫簡介 CSS3 提供了類似 Flash 關鍵幀控制的動畫效果,通過 animation 屬性實現。那麼之前的 t ...
  • 學習要點: 1.過渡簡介 2.transition-property 3.transition-duration 4.transition-timing-function 5.transition-delay 6.簡寫和版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 的過渡效果,通過 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...