首頁 >web前端 >前端問答 >css3新增了哪三種邊框效果

css3新增了哪三種邊框效果

青灯夜游
青灯夜游原創
2022-04-25 16:30:352375瀏覽

css3新增的三種邊框效果:1、邊框圖片“border-image”,可為邊框添加背景圖片;2、邊框圓角“border-radius”,可為邊框添加一個或多個圓角效果;3、邊框陰影“box-shadow”,可將一個或多個陰影添加到元素框上。

css3新增了哪三種邊框效果

本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。

css3新增了三種邊框效果

#屬性 說明 #CSS
border-image 設定所有邊框圖像的速記屬性。 3
border-radius 一個用來設定所有四個邊框- *-半徑屬性的速記屬性 3
box-shadow 附加一個或多個下拉方塊的陰影 3

1、邊框圖片「border-image」

border-image屬可以為邊框新增背景圖片。現在所有主流瀏覽器最新版本都支援border-image屬性。

語法:

css3新增了哪三種邊框效果

#說明:

border-image屬性需要定義3個方面的內容。

(1)圖片路徑。

(2)切割寬度:四邊的切割寬度,依序為上邊、右邊、下邊、左邊(順時針)。

(3)平鋪方式:有3種取值,分別為repeat、round和stretch。

在本節所有範例中,我們都是使用圖所示的這張90px×90px的圖片作為邊框的背景圖片。

css3新增了哪三種邊框效果

程式碼範例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        div
        {
            width:210px;
            height:150px;
            border:30px solid gray;
            border-image:url(img/border.png) 30 repeat;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

瀏覽器預覽效果如下圖所示。

css3新增了哪三種邊框效果

分析:

從預覽​​效果我們可以知道,位於4角的數字1、3、7、9還是乖乖地位於4個角落。然後4條邊框的2、4、6、8會不斷地平鋪。

對於border-image屬性,我們總結如下:

(1)在製作邊框背景圖片時,應該製作4條邊,中間部分需要挖空。

(2)邊框背景圖片每條邊的寬度跟對應的邊框寬度(即border-width)應該相同。

2、邊框圓角「border-radius」

#border-radius屬性可以為邊框添加圓角效果

#border-radius 屬性定義元素角的半徑,透過CSS border-radius 屬性,可以實現任何元素的「圓角」樣式。

語法:

border-radius: none | length{1,4} [/ length{1,4}

其中每一個值可以是 數值或百分比的形式。 

length/length 第一個lenght表示水平方向的半徑,而第二個表示垂直方向的半徑。 

如果是一個值,那麼 top-left、top-right、bottom-right、bottom-left 四個值相等。 

如果是兩個值,那麼 top-left和bottom-right相等,為第一個值,top-right和bottom-left值相等,為第二個值。
css3新增了哪三種邊框效果 
如果是三個值,那麼第一個值是設定top-left,而第二個值是top-right 和bottom-left 並且他們會相等,第三個值是設定bottom-right。
css3新增了哪三種邊框效果 
如果是四個值,那麼第一個值就是設定top-left,而第二個值是top-right 第三個值bottom-right 第四個值是設定bottom- left 
css3新增了哪三種邊框效果

除了上述的簡寫外,還可以和border一樣,分別寫四個角,如下: 

border-top-left-radius: //左上角 
border-top-right-radius: //右上角 
border-bottom-right-radius: //右下角 
border-bottom-left-radius: //左下角

分別是水平方向和垂直方向半徑,第二值省略的情況下,水平方向和垂直方向的半徑相等。
border-radius 只有在以下版本的瀏覽器:Firefox4.0 、Safari5.0 、Google Chrome 10.0 、Opera 10.5 、IE9 支援border-radius 標準語法格式,對於舊版的瀏覽器,border-radius 需要根據不同的瀏覽器核心添加不同的前綴,比說Mozilla 核心需要加上“-moz”,而Webkit 核心需要加上“-webkit”等,但是IE和Opera沒有私有格式,因此為了最大程度的兼容瀏覽器,我們需要設定如下: 

-webkit-border-radius: 10px 20px 30px; 
-moz-border-radius: 10px 20px 30px; 
border-radius: 10px 20px 30px;

請將標準形式寫在瀏覽器私有形式之後。

範例:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="Keywords" content="关键词一,关键词二">
<meta name="Description" content="网站描述内容">
<meta name="Author" content="刘艳">
<title></title>
<style>
img {
border-radius: 30px;
margin: 100px;
}
</style>
</head>
<body>
<img  src="../images/photo.jpg"    style="max-width:90%" alt="css3新增了哪三種邊框效果" >
</body>
</html>

css3新增了哪三種邊框效果

#3、邊框陰影「box-shadow」

在css中,可使用box-shadow屬性實作邊框陰影效果,box-shadow屬性可以設定一個或多個下拉陰影的方塊。

語法

box-shadow: h-shadow v-shadow blur spread color inset;

可能的值:

说明
h-shadow 必需的。水平阴影的位置。允许负值
v-shadow 必需的。垂直阴影的位置。允许负值
blur 可选。模糊距离
spread 可选。阴影的大小
color 可选。阴影的颜色。
inset 可选。从外层的阴影(开始时)改变阴影内侧阴影

注意:boxShadow 属性把一个或多个下拉阴影添加到框上。该属性是一个用逗号分隔阴影的列表,每个阴影由 2-4 个长度值、一个可选的颜色值和一个可选的 inset 关键字来规定。省略长度的值是 0。

box-shadow属性的使用

1、水平垂直偏移为0也可以有阴影

如果offset-x或offset-y值为0,则阴影在元素背后,此时给blur-radius值或spread值可以产生阴影效果。

例子:

  • 第一个div通过设置blur-radius产生阴影效果。

  • 第二个div通过设置spread正值产生阴影效果。

  • 第三个div通过设置spread负值产生阴影效果。

但是有一点要注意:扩展阴影必须和阴影模糊半径配合使用。

我个人觉得应该是没有配合使用这一说,但不可能只设置扩展阴影,因为扩展阴影和阴影模糊的取值都可以为正。如果只有扩展阴影的话,会被浏览器当做模糊阴影来解析,所以也可以简单理解为“扩展阴影必须和阴影模糊半径配合使用”,如果只用扩展阴影,可以写成:box-shadow:0 0 0 1px;。

<style type="text/css">
div{
    width: 100px;
    height: 100px;
    margin:50px;
    border: 10px dotted pink;
    display: inline-block;
}
.blur{
        box-shadow: 0 0  20px ;
        /*box-shadow: 0 0  20px green;*/ /*也可以自定义颜色*/
}  
.spread-positive{
        box-shadow: 0 0 20px 5px ;
        /* box-shadow: 0 0 20px 5px green;*/ /*也可以自定义颜色*/
}
.spread-negative{
        box-shadow: 0 0 20px -5px ;
        /* box-shadow: 0 0 20px -5px green;*/ /*也可以自定义颜色*/
}
</style>
<body>
<div class="blur"></div>
<div class="spread-positive"></div>
<div class="spread-negative"></div>
</body>

2、设置水平垂直偏移得到阴影效果

outset情况:水平垂直偏移为0,但是不设置blur和spread,看不到阴影,因为此时box-shadow的周长和border-box一样,所以可以通过设置偏移让阴影显示出来。

inset情况:水平垂直偏移为0,不设置blur和spread,同样看不到阴影,因为此时box-shadow的周长和padding-box一样,同样可通过设置偏移让阴影显示出来。

例子:

<style type="text/css">
div{
    width: 100px;
    height: 100px;
    margin:50px;
    border: 10px dotted pink;
    display: inline-block;
}
.shadow0{box-shadow: 0 0;}  
.shadow1{box-shadow: 1px 1px;}
.shadow10{box-shadow: 10px 10px;}
.inset-shadow0{box-shadow: 0 0 inset;}  
.inset-shadow1{box-shadow: 1px 1px inset;}
.inset-shadow10{box-shadow: 10px 10px inset;}
</style>
<body>
    <div class="shadow0"></div>
    <div class="shadow1"></div>
    <div class="shadow10"></div>
    <div class="inset-shadow0"></div>
    <div class="inset-shadow1"></div>
    <div class="inset-shadow10"></div>
</body>

3、投影方式

投影方式默认是outset,即外部投影,可设置inset让向内投影。

例子:第一个div默认outset,第二个设置inset,第三个同时设置两个阴影可以更好的看到outset和inset的关系,第四个div可以看出inset阴影在背景之上,内容之下。

<style type="text/css">
div{
    width: 100px;
    height: 100px;
    margin:50px;
    border: 10px dotted pink;
    display: inline-block;
    vertical-align: top;
} 
.outset{
    box-shadow: 10px 10px teal;
}
.inset{
    box-shadow: 10px 10px teal inset;    
}
.double{
    box-shadow: 10px 10px teal inset,10px 10px teal;
}
.bg{
    background-color: yellow;
}
</style>
<body>
    <div class="outset"></div>
    <div class="inset"></div>
    <div class="double"></div>
    <div class="inset bg">inset阴影在背景之上,内容之下</div>
</body>

4、如果元素同时指定border-radius属性,则阴影呈现相同的圆角。

<style type="text/css">
 div{
 width: 100px;
    height: 100px;
    margin:50px;
    border: 10px dotted pink;
    display: inline-block;
    border-radius: 50px;
 }
.shadow{
    box-shadow: 0 0  10px 10px green;
}
</style>
<body>
<div class="shadow"></div>
</body>

(学习视频分享:css视频教程web前端

以上是css3新增了哪三種邊框效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn