1. 程式人生 > >CSS:設定邊框和背景

CSS:設定邊框和背景

應用邊框樣式

邊框基本設定

首先簡單介紹一下使用邊框最常用的三個基本屬性:

屬性 說明
border-width 設定邊框的寬度 度量單位(em、px、cm等)
border-color 設定邊框的顏色 英文單詞、HEX、RGBa、HSLa
border-style 設定邊框的樣式 參考下方表格

CSS提供的邊框樣式比較豐富,下面我將通過表格來進行說明:

屬性 說明
none 沒有邊框
dashed 虛線邊框
dotted 點線邊框
outset 外浮雕邊框
inset 內浮雕邊框
solid 實現邊框
double 雙實線邊框
groove 3D凹槽邊框
ridge 3D凸槽邊框

這裡寫圖片描述

你也可以單獨為某一條邊框設定樣式,這需要用到特定的屬性,如下所示:

屬性 說明
boder-top-width/style/color 定義頂邊 跟通用屬性的值一樣
border-bottom-width/style/color 定義底邊 跟通用屬性的值一樣
border-left-width/style/color 定義左邊 跟通用屬性的值一樣
border-right-width/style/color 定義右邊 跟通用屬性的值一樣

我們也可以不用分開設定樣式、寬度和顏色,因為這樣看起來太複雜了,我們可以使用簡寫屬性boder一次搞定,下方列表描述了這些屬性:

屬性 說明
border 設定所有邊的邊框 <寬度><樣式><顏色>
border-top/left/right/bottom 設定一條邊的邊框 <寬度><樣式><顏色>
 <style type
="text/css">
div { border: 2px solid black; } section { border-top: 5px dashed blue; } </style>

設定圓角邊框

可以使用邊框的radius屬性建立圓角邊框,下方通過表格說明:

屬性 說明
border-radius 一次設定四個角的簡寫屬性 度量單位px/百分值等
border-top/bottom/left/right-radius 設定一個圓角 度量單位px/百分值等

設定元素的背景

首先列出一些背景屬性:

屬性 說明
background-color 設定元素的背景顏色,總是顯示在背景影象下面
background-image 設定元素的背景影象,如果指定一個以上的影象,則後面的影象繪製在前面的影象下面
background-repeat 設定影象的重複樣式
background-size 設定背景影象的尺寸
background-position 設定背景影象的位置
background-attachment 設定元素中的影象是否固定或隨頁面一起滾動
background-clip 設定背景影象裁剪方式
background-origin 設定背景影象繪製的起始位置
background 簡寫屬性

設定背景顏色和影象

設定背景顏色和影象相對比較簡單,這裡就簡單的通過程式碼給大家示範一下如何使用:

 <style type="text/css">
    div {
        border: 2px solid black;
        /*設定背景顏色*/
        background-color: red;
        /*設定背景圖片*/
        background-image: url(image.png);
    }

 </style>

設定背景重複 background-repeat

當一張背景圖片寬或高小於其元素容器,或用“background-size”(後面會講到)設定寬高小於元素容器的寬高時,背景圖片預設會以“平鋪”的方式排滿整個元素的背景,而該屬性正式用於控制影象重複排列方式的,它有以下值:

說明
repeat 水平和垂直方向同時平鋪影象,影象可能被截斷
repeat-x 水平方向平鋪影象,影象可能被截斷
repeat-y 垂直方向平鋪影象,影象可能被截斷
no-repeat 禁止平鋪影象

設定背景影象尺寸 background-size

該屬性用於設定背景圖片的大小,主要可以通過四種類型的單位設定:

說明
畫素值 可以通過畫素“px”精確地設定背景圖片的大小。需要設定為兩個值,第一個值表示背景圖的寬度,第二個值表示背景圖的高度,還可以通過設定寬度或高度的其中一個,將另外一個值設定成“auto”達到保持背景圖原始影象比例的效果。如:“240px 120px”、“180px auto”或“auto(相當於還原預設的大小)”。
百分比 用“百分比”作為值,結構和用“畫素值”一致,也是兩個值,第一個值是相對於元素寬度的百分比值,第二個值是相對於元素高度的百分比。如:“100% 80%”、“100% auto”或“auto 50%”。
contain 等比例縮放影象,使其寬度、高度中較大者與容器橫向或縱向重合,背景影象始終包含在容器內
cover 等比例縮放影象,是影象至少覆蓋容易,有可能超出容器
auto 預設值,影象以本身尺寸完全顯示

設定背景影象位置 background-position

瀏覽器使用background-position屬性設定背景影象的位置。影象不平鋪的時候這個屬性用得最多。使用這個屬性主要分為兩類實際情況:第一類情況就是元素的寬高大於背景圖片時,這個時候是通過“0”或“正數值”去進行定位;第二類情況就是元素的寬高小於背景圖片的寬高時,這個時候是通過“0”或“負數值”去進行定位(這是採用“CSS圖片精靈(CSS Sprites)”技術來開發專案的時候必用的屬性)。

  • 方位英文單詞:可以有“left”、“right”、“top”、“bottom”和“center”。用法如:“left top”(預設),設定背景圖在元素內的“左上方”;“right bottom”,設定背景圖在元素內的“右下方”;“center center”,設定背景圖在元素的“中心”。

  • 百分比單位:用法如:“0% 50%”,設定背景圖在元素內“水平方向”的“左方”,垂直方向的“中心”;“50% 50%”,,設定背景圖在元素內的“中心”;“100% 100%”,,設定背景圖在元素內的“右下方”。

  • 畫素單位:背景圖的“左上角”相對於元素“左上角”偏移的距離,如“10px 20px”,設定背景圖“水平向右”偏移10畫素,“垂直向下”偏移20畫素。

這三種形式去設定背景圖片的位置是可以“混搭”的,如:“left 100%”、“50% 70px”、“top 30px”等。不過從程式碼規範性的角度出發,並不推薦這種“混搭”的方式。

設定元素的背景附著方式 background-attachment

為具有視窗的元素應用背景時,可以指定背景附著內容的方式。textarea是常見的居右視窗的元素,可以自動新增滾動條以顯示內容。另一個例子是body元素,如果其中的內容比瀏覽器的視窗長,可以為其設定滾動條,使用background-attachment屬性可以控制背景的附著方式,下方表格中列出了該屬性的可能取值:

說明
fixed 背景固定到視窗上,即內容滾動時背景不動
local 背景附著在內容上,即背景隨內容一起滾動
scroll 背景固定到元素上,不會隨內容一起滾動

設定背景影象的開始位置和裁剪樣式

背景的起始點(origin)指定背景顏色和背景影象應用的位置。裁剪樣式決定了背景顏色和影象在元素盒子中繪製的區域。background-origin和background-clip屬性控制著這些特性,兩者都可以取以下三個值:

說明
border-box 在邊框盒子內部繪製背景顏色和背景影象
padding-box 在內邊距盒子內部繪製背景顏色和背景影象
content-box 在內容盒子內部繪製背景顏色和背景影象

這裡寫圖片描述

建立盒子陰影

備受開發人員熱切期待的一個CSS3特性是為元素的盒子新增陰影效果。這要通過box-shadow屬性來實現。box-shadow元素的值組成如下:

box:hoffset voffset blur spread color inset

每個值代表的意思請參考下方列表:

說明
hoffset 陰影的水平偏移量,是一個長度值,正值代表陰影向右偏移,負值代表陰影向左偏移
voffset 陰影的垂直偏移量,是一個長度之,正值代表陰影位於元素盒子下方,負值代表陰影位於元素盒子上方
blur (可選)指定模糊值,是一個長度值,值越大盒子的邊界越模糊。預設值是0,邊界清晰
spread (可選)指定陰影的延伸半徑,是一個長度值,正值代表陰影像盒子各個方向延伸擴大,負值代表陰影延相反方向縮小
color (可選)設定陰影的顏色,如果省略,瀏覽器會自行選擇一個顏色
inset (可選)將外部陰影設定為內部陰影(內嵌到盒子中)

程式碼示例:

 <!DOCTYPE html>
 <html lang="zh-cn">
    <head>
        <meta charset="UTF-8">
        <title>盒子陰影</title>
        <style type="text/css">
            div {
                margin-top: 30px;
            }
            div span {
                border:5px groove black;
                padding: 10px;
                margin-top: 20px;
                box-shadow: 10px 7px 3px 2px gray;
            }

        </style>
    </head>
    <body>

    <div>
        <span>
            犯我中華者雖遠必誅
        </span>
    </div>

    </body>
 </html>

這裡寫圖片描述

提示:我們可以再一條box-shadow宣告中定義多個陰影,只需要用逗號分隔每條宣告即可。

應用輪廓

輪廓對於邊框來說是可選的。輪廓最有用的地方在於短時間抓住使用者對某個元素的注意力,如必須按壓的按鈕或者資料輸入中的錯誤。輪廓繪製在盒子邊框的外面。邊框和輪廓最大的區別是:輪廓不屬於頁面,因此應用輪廓不需要調整頁面佈局,下方列表中列出了與輪廓相關的屬性:

屬性 說明
outline-color 設定外圍輪廓的顏色 <顏色>
outline-offset 設定輪廓距離元素邊框邊緣的偏移量 <長度>
outline-style 設定輪廓樣式 跟border-style屬性的值一樣
outline-width 設定輪廓的寬度 thin、medium、thick、<長度>
outline 在一條宣告中設定輪廓的簡寫屬性 <顏色><樣式><寬度>

程式碼示例:

 <!DOCTYPE html>
 <html lang="zh-cn">
    <head>
        <meta charset="UTF-8">
        <title>盒子陰影</title>
        <style type="text/css">

        input {
            outline-color: blue;
            outline-offset: 0px;
            outline-style: dashed;
            outline-width: 1px;
        }

        </style>
    </head>
    <body>

    <form>
        <input type="button" name="" value="確定">
    </form>

    </body>
 </html>

這裡寫圖片描述