css3边框之圆角阴影应用图片效果

目录
文章目录隐藏
  1. 圆角效果 border-radius
  2. 阴影 box-shadow
  3. 阴影模糊半径与阴影扩展半径的区别
  4. X 轴偏移量和 Y 轴偏移量值可以设置为负数
  5. 边框应用图片 border-image

圆角效果 border-radius

border-radius 是向元素添加圆角边框。

接下来我们以实例来看一下效果:

HTML 代码

<div class="test"></div>

CSS 代码

.test{
	height:100px;/*与 width 设置一致*/
    	width:100px;
	border-radius:10px; /* 所有角都使用半径为 10px 的圆角 */
	background-color: red;
}

效果如下图

border-radius 是向元素添加圆角边框

再来看一下另外一个例子

border-radius: 5px 4px 3px 2px; /* 四个半径值分别是左上角、右上角、右下角和左下角,顺时针 */ 

radius 四个角设置不同值

另外 border-radius 的值不单单只用 px 单位,还可以用百分比或者 em,但兼容性目前还不太好。

实心上半圆

实现方法:把高度(height)设为宽度(width)的一半,并且只设置左上角和右上角的半径与元素的高度一致(大于也是可以的)。

div{
    height:50px;/*是 width 的一半*/
    width:100px;
    background:#9da;
    border-radius:50px 50px 0 0;/*半径至少设置为 height 的值*/
}

实心圆

实现方法:把宽度(width)与高度(height)值设置为一致(也就是正方形),并且四个圆角值都设置为它们值的一半。如下代码:

div{
    height:100px;/*与 width 设置一致*/
    width:100px;
    background:#9da;
    border-radius:50px;/*四个圆角值都设置为宽度或高度值的一半*/
}

实心左半圆形

div{ 
    height:100px;
    width:50px;
    background:#9da;
    border-radius:50px 0 0 50px;
}

阴影 box-shadow

box-shadow 是向盒子添加阴影。支持添加一个或者多个。

语法:

box-shadow: X 轴偏移量 Y 轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];

参数介绍:

shadow 参数介绍

注意:inset 可以写在参数的第一个或最后一个,其它位置是无效的。

元素设置外阴影

.box_shadow{
  box-shadow:4px 2px 6px #333333; 
}

设置外阴影

元素设置内阴影

.box_shadow{
  box-shadow:4px 2px 6px #333333 inset; 
}

元素设置内阴影

添加多个阴影

添加多个阴影,只需用逗号隔开即可。

.box_shadow{
    box-shadow:4px 2px 6px #f00, -4px -2px 6px #000, 0px 0px 12px 5px #33CC00 inset;
}

添加多个阴影

阴影模糊半径与阴影扩展半径的区别

阴影模糊半径:此参数可选,其值只能是为正值,如果其值为 0 时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊;

阴影扩展半径:此参数可选,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值时,则缩小;

X 轴偏移量和 Y 轴偏移量值可以设置为负数

box-shadow: X 轴偏移量 Y 轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];

X 轴偏移量为负数:

.boxshadow-outset{
    width:100px;
    height:100px;
    box-shadow:-4px 4px 6px #666;
}

X 轴偏移量为负数

Y 轴偏移量为负数:

.boxshadow-outset{
    width:100px;
    height:100px;
    box-shadow:4px -4px 6px #666;
}

Y 轴偏移量为负数

边框应用图片 border-image

顾名思义就是为边框应用背景图片,它和我们常用的 background 属性比较相似。例如:

background:url(xx.jpg) 10px 20px no-repeat;

但是又比背景图片复杂一些。

想象一下:一个矩形,有四个边框。如果应用了边框图片,图片该怎么分布呢? 图片会自动被切割分成四等分。用于四个边框。

可以理解为它是一个切片工具,会自动把用做边框的图片切割。怎么切割呢?为了方便理解,做了一张特殊的图片,由 9 个矩形(70*70 像素)拼成的一张图(210*210 像素),并标注好序号,是不是像传说中的九宫图,如下:

为边框应用图片 border-image

我们把上图当作边框图片 来应用一下, 看一看是什么效果

根据 border-image 的语法:

border-image 的语法

#border-image{
   background:#F4FFFA;
   width:210px; height:210px; border:70px solid #ddd;
   border-image:url(borderimg.png) 70 repeat  
}

border-image 的语法

从序号可以看出 div 的四个角分别对应了背景图片的四个角。而 2,4,6,8 被重复。5 在哪?因为是从四周向中心切割图片的所以,5 显示不出来。而在 chrome 浏览器中 5 是存在的,下图的样子:

borderimg 边框

repeat 的意思就是重复,目前因为是刚好被整除,效果看不出来。如果改下 DIV 的宽高,再来看重复的效果:

border0mg3

边角部分为裁掉了,可见 repeat 就是一直重复,然后超出部分剪裁掉,而且是居中开始重复。

Round 参数:Round 可以理解为圆满的铺满。为了实现圆满所以会压缩(或拉伸);

#border-image {

     width:170px;

     height:170px;

     border:70px solid;

     border-image:url(borderimg.png) 70 round;

 }

border-image

可见图片被压扁了。

Stretch 很好理解就是拉伸,有多长拉多长。有多远“滚”多远。

border-image:url(borderimg.png) 70 stretch

borderimg

2,4,6,8 分别被拉伸显示。

注意:Chrome 下,中间部分也会被拉伸,webkit 浏览器对于 round 属性和 repeat 属性似乎没有区分,显示效果是一样的。

Firefox 26.0 下是可以准确区分的。

「点点赞赏,手留余香」

2

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » css3边框之圆角阴影应用图片效果

发表回复