1. 程式人生 > >CSS background屬性之背景設定詳解

CSS background屬性之背景設定詳解

CSS background屬性之主要背景屬性

在CSS中,關於background屬性,主要有5個相關的背景屬性。如下所示:

  • background-color屬性:設定背景顏色。
  • background-image屬性:設定背景圖片。
  • background-repeat屬性:是否重複背景圖片。
  • background-attachment屬性:設定背景圖片是否隨頁面滾動。
  • background-position屬性:指定背景圖片的位置。

這5個背景屬性可以使用background屬性代替。

背景佔據了元素的全部內容區域,這個區域包含了元素的padding和border,但不包含margin。

background屬性在Firefox、Safari、Opera和IE8中能夠正常顯示,但是在IE6和IE7中不包含border。background屬性在瀏覽器中的顯示情況,如下圖所示:

background屬性在瀏覽器中的顯示情況

在上圖中,我們看到,IE6和IE7的內容區域沒有包含橙色的邊框線(border)。

背景顏色——background-color屬性

background-color屬性使用純色填充背景。設定背景顏色的方法有許多種,下面這3種方法顯示的顏色是一樣的:

background-color: #FF0000;
background-color: red;
background-color: rgb(255,0,0);

該屬性還可以被設定為透明(transparent),從而使它下面的元素可以顯示出來。

背景圖片——background-image屬性

background-image屬性允許在背景中新增一張圖片。該屬性可以和background-color屬性同時使用,因此,圖片沒有覆蓋的地方都會顯示出背景顏色。設定背景圖片的方法如下:

background-image:url(image.jpg);

圖片的路徑是相對於樣式表來說的。因此,在上面的程式碼中,表示圖片和樣式表位於同一個目錄中。

再來觀察一下下面的程式碼:

background-image:url(images/image.jpg);

表示圖片在樣式表所在的目錄的一個名為images的子目錄中。也就是說,images資料夾位於樣式表所在的資料夾中。

另外,使用../表示上一級目錄,比如

background-image:url(../images/image.jpg);

表示圖片位於樣式表的上級目錄中的images子目錄中。

背景平鋪——background-repeat屬性

設定背景圖片時,圖片在預設情況下會在水平和垂直方向上鋪滿整個元素。不過,我們也可以使圖片只出現一次,或者只在一個方向上平鋪。如下所示:

background-repeat: repeat;    /* 預設值,同時在水平和垂直方向上平鋪 */
background-repeat: no-repeat; /* 圖片只顯示一次 */
background-repeat: repeat-x;  /* 圖片沿水平方向(x軸)平鋪 */
background-repeat: repeat-y;  /* 圖片沿垂直方向(y軸)平鋪 */
background-repeat: inherit;   /* 圖片繼承父元素的background-repeat屬性 */

背景定位——background-position屬性

background-position屬性用於控制背景圖片在元素中的位置。這個位置指定的是圖片左上角相對於元素左上角的位置。

在下面的例子中,使用background-position屬性來控制背景圖片的位置,同時設定background-repeat為no-repeat;單位是畫素;第一個數字表示水平(x軸)位置,第二個數字表示是垂直(y軸)位置:

/* 例1:預設值 */
background-position: 0 0; /* 圖片左上角對齊元素的左上角 */

/* 例2:把圖片向右邊移動75畫素 */
background-position:75px 0;

/* 例3:把圖片向左移動75畫素 */
background-position:-75px 0;

/* 例4:把圖片向下移動100畫素 */
background-position: 0 100px;

如下圖所示:

使用background-position屬性控制背景圖片在元素中的位置

background-position屬性還可以使用其它的長度單位、關鍵字或百分比來進行定位。

關鍵字在x軸上表示為left、center、right;在y軸上表示為top、center、bottom。

關鍵字的使用方法和畫素值的使用方法一樣,首先是x軸,然後是y軸。如下所示:

background-position: top right;

使用百分比也是類似的方法。

注意,使用百分比時,瀏覽器是以元素的百分比來設定圖片的位置的。如下所示:

background-position: 100% 50%;

使用百分比定位時,是將背景圖片的百分比指定的位置和元素的百分比位置對齊。就是說,使用百分比定位改變了背景圖片和元素的對齊基點,不再像使用畫素和關鍵字定位時,使用背景圖片和元素的左上角為對齊基點。

上面的例子程式碼,就是將背景圖片的100%(right) 50%(center)這個點,和元素的100%(right) 50%(center)這個點進行對齊的。如下圖所示:

使用百分比定位背景圖片的例子

背景圖片是否滾動——background-attachment屬性

background-attachment屬性設定頁面滾動時圖片所處的狀態。該屬性的3個屬性值為scroll(滾動)、fixed(固定)和inherit(繼承)。inherit表示該元素繼承它的父元素的background-attachment屬性值。程式碼如下:

background-image:url(image.jpg);
background-position:0 0;
background-repeat:no-repeat;
background-attachment:scroll; /* 預設值,背景圖片會隨著頁面的滾動而滾動 */

如下圖所示:

確認背景圖片隨著頁面滾動的示圖

當頁面向下滾動時,背景圖片會向上移動,直到消失。

當background-attachment屬性設定為fixed時,將頁面向下滾動,而背景圖片會待在它原來的位置上,不會隨著元素進行滾動。程式碼如下:

background-image:url(image.jpg);
background-position:0 100%;
background-repeat:no-repeat;
background-attachment:fixed; /* 背景圖片不會隨著頁面的滾動而滾動 */

如下圖所示:

背景圖片不會隨著頁面進行滾動的示圖

頁面在向下滾動的同時,影象仍然保持可見!

背景圖片只能出現在它的父元素所能達到的區域。即使圖片是相對於瀏覽器視窗進行定位的,但是,如果它的父元素不可見,圖片就會消失。如下所示:

background-image:url(image.jpg);
background-position:0 100%;
background-repeat:no-repeat;
background-attachment:fixed; /* 背景圖片只能出現在它的父元素所能達到的區域 */

上面的程式碼中,雖然背景圖片位於瀏覽器視窗的左下方,但是隻有元素內的圖片部分是可見的。

如下圖所示:

背景圖片只能出現在它的父元素所達到的區域

因為背景圖片是從元素外面開始的,所以元素外面的圖片部分被切除了。

背景的簡寫屬性——background屬性

我們可以把背景的各個屬性合併在一起使用,而不需要每次都把他們單獨寫出來。格式如下:

background:<color> <image> <position> <attachment> <repeat>

比如,下面的程式碼樣式:

background-color:transparent;
background-image:url(image.jpg);
background-position:50% 0;
background-attachment:scroll;
background-repeat:repeat-y;

可以合併為一行:

background:transparent url(image.jpg) 50% 0 scroll repeat-y;

在上面的程式碼中,並不需要給出每一個值,如果某一個值沒有指定,就會使用屬性的預設值。比如,上面的程式碼和下面的程式碼效果是一樣的:

background: url(image.jpg) 50% 0 repeat-y;

背景的一般性用法

除了給元素使用背景以外,背景還有以下的用法:

1. 仿欄

當使用float屬性定位佈局元素時,要確保兩欄或多欄具有相同的長度是比較困難的。如果長度不同,則其中一欄的背景就會比另外欄的背景短,這樣就破壞了整個佈局的設計。

此時,不需要給每一列單獨設定背景,而是給各列的父元素設定一個背景,這樣,所有欄的設計就都包含在這張圖片中了。

2. 文字替換

在網頁上,有時候對於字型的選擇是相當有限的。不過,有一個適用於所有瀏覽器的最簡單的方法:

將要用的文字內容和要使用的字型做成一張文字圖片,再把這張圖片作為背景,然後再在網頁中輸入文字內容。這樣,文字依然會出現在文件標籤中,以供搜尋引擎檢索,但是,在瀏覽器中就會顯示出首選的字型。方法如下:

<p class="one">這是一段文字內容!</p>

再做一張同樣大小的圖片,圖片上面顯示了自己想要的字型,此時,就可以用下面的方法來替換文字了:

h3.one{
width:200px;
height:75px;
background:url(text.jpg) 0 0 no-repeat;
text-indent: -9999px; /* text-indent屬性:向左邊移動文字內容的位置,以便隱藏起來。*/
}

3. 簡單的圓點

無序列表中的圓點標記確實難看!我們可以將它隱藏起來,然後再使用背景圖片來代替。程式碼如下:

ul{
list-style:none; /* 隱藏列表中的圓點標記 */
}
ul li{
padding-left:30px; /* padding-left屬性:設定背景圖片左邊的距離 */
background:url(image.jpg) 0 0 no-repeat; /* 設定背景圖片 */
}

因為我們能夠靈活製作背景圖片,所以根據上面的方法就可以製作出漂亮的無序列表標記來!

相關推薦

CSS background屬性背景設定

CSS background屬性之主要背景屬性 在CSS中,關於background屬性,主要有5個相關的背景屬性。如下所示: background-color屬性:設定背景顏色。background-image屬性:設定背景圖片。background-repeat屬性

[js高手路] dom常用節點屬性兼容性與應用

asc 子元素 種類型 process 變色 tex 如果 結構 節點和 一、每個DOM節點都有一個nodeType屬性,表示節點類型, NodeType一共有12種類型,我們可以通過遍歷內置的Node構造函數獲取 1 window.onload =

linux 路由表設定 route 指令

使用下面的 route 命令可以檢視 Linux 核心路由表。 [cpp] view plain copy # route   Destination     

inux 路由表設定 route 指令

使用下面的 route 命令可以檢視 Linux 核心路由表。 # routeDestination     Gateway         Genmask Flags Metric Ref    Use Iface  192.168.0.0     *               255.255.255

四 . css系列選擇器及權重

(一)選擇器詳解 1.標籤選擇器(元素選擇器):HTML標籤作為選擇器,作用是選取HTML文件中相同的HTML元素P{} 2.類選擇器 第一步:設定類名<開始標籤 class="類名"></結束標籤> 第二步:為類設定樣式.

QScrollBar 的css 設定

本文主要介紹QScrollBar的樣式表設定的問題 setStyleSheet(QString::fromUtf8("\ QScrollBar::vertical {\ background:rgb(63,70,87);\

LRSLA(服務水平協議)設定

一、SLA 概念介紹:      SLA 是為負載測試場景定義的具體目標,全稱是:Service-Level Agreement。 例如,評測指令碼中任意數量事務的平均響應時間,可以定義具體的目標或閾值。測試執行結束之後,LoadRunner將定義的目標與實際錄製的平均事

Cocos2d—X遊戲開發 CCLabelTTF 標籤和對齊方式設定(分數顯示)(十六)

在Cocos2d—X遊戲開發中,CCLabelTTF 和 CCSprite 大概是使用最多的2個類了。標籤主要用於顯示靜態文字,可以設定字型的大小和位置等屬性。 現在,我們先來看下CCLabelTTF 的基本原始碼。 S1,從下面的程式碼可以看到 CCLabelTTF 繼

C#DataGridView單元格Header背景顏色各種設定

//包含Header所有的單元格的背景色為黃色 DataGridView1.DefaultCellStyle.BackColor = Color.Yellow;   //包含Header所有的單元格的前景色為黃色 DataGridView1.DefaultCellStyle

liunx設定自啟動chkconfig命令

chkconfig命令主要用查詢/設定系統服務的執行級別  一般用來設定啟動服務 要熟悉這個命令 首先需要知道系統執行級別這個概念 liunx 系統執行級別 一共有六個執行級別(不算關機的話)  分別由數字 0-6來表示 其中0表示關機 其它各級別資訊如下: 1:單使用者模

linux awk命令

數學函數 mat loop 多次 finished 數組結構 save pre 新的 awk是一種程序語言,對文檔資料的處理具有很強的功能。awk名稱是由它三個最初設計者的姓氏的第一個字母而命名的: Alfred V. Aho、Peter J. We i n b e rg

運維自動化Saltstack使用

自動化運維 saltstack 概要saltstack是基於Python開發的C/S架構的一款批量管理工具,底層采用動態的連接總線(ZeroMQ消息隊列pub/sub方式通信),使用ssl證書簽發的方式進行認證管理,使其可以用於編配, 遠程執行, 配置管理等等。部署輕松,在幾分鐘內可運行起來,擴展性好

Spark-SqlDataFrame實戰

集合 case 編程方式 優化 所表 register 操作數 print ava 1、DataFrame簡介: 在Spark中,DataFrame是一種以RDD為基礎的分布式數據據集,類似於傳統數據庫聽二維表格,DataFrame帶有Schema元信息,即DataFram

四、python函數

list global pan line ice see war -s span 一、函數 1.說白了就是把一組代碼合到一起,可以實現某種功能,需要再用到這種功能的話,直接調用這個函數就行2.函數、方法是一回事3.定義一個函數的格式是:def+函數名+()4.函數必須調用了

MySQLSELECT 語句

限制 right ont 定義 過程 lar load avg sel 本文參考實驗樓的SELECT 語句詳解結合自己操作部分而寫成。 註意:大多數系統中,SQL語句都是不區分大小寫的,但是出於嚴謹和便於區分保留字和變量名,在書寫的時,保留字應大寫,而變量名應小寫。所謂的保

spring-boot實戰【08】【轉】:Spring Boot屬性配置文件

命令行 可見 str ear isp active 文件加載 junit4 實驗 相信很多人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。我們在Spring Boot使用過程中,最直觀的感受就是沒有了原來自己整合Spring

spring AOP解析註解方式

parser 分享 pro asp mes aop log space spec 命名空間處理器是AopNamespaceHandler,我們可以看到這裏註冊了幾個解析器,第一個我們知道是xml形式的解析,接下來我們看AspectJAutoProxyBeanDefiniti

css中偽類/偽元素

input 其他 中文 tro 網頁 單元 web link 語言 一、偽類和偽元素 偽類和偽元素都是用來修飾不在文檔樹中的部分,區別在於, 偽類用於當已有元素處於的某個狀態時,為其添加對應的樣式,這個狀態是根據用戶行為而動態變化的(如:hover/:active)。

jvm學習筆記對象

時間 分代 創建 com 詳解 要求 技術 wid src 一、對象的組成            對象頭(Header):           運行時數據:存儲對象運行時的數據,如哈希碼、GC分代年齡、鎖狀態標誌、線程持有的鎖、偏向線程ID、偏向時間戳等,這部分數據官方成為

【轉】中文分詞HMM模型

實現 含義 jieba 順序 清晰 bsp 中國 matrix 統計 關於HMM模型的介紹,網上的資料已經爛大街,但是大部分都是在背書背公式,本文在此針對HMM模型在中文分詞中的應用,講講實現原理。 盡可能的撇開公式,撇開推導。結合實際開源代碼作為例子,爭取做到雅俗共賞,