CSS3——边框

一、简介

CSS3新增了3中边框属性:

  • border-radius:圆角边框。
  • box-shadow:边框阴影。
  • border-image:图片边框。

注意:目前IE9+支持border-radius和box-shadow属性。Firefox、Chrome以及Safari支持所有新的边框属性。对于border-image,Safari5以及更老的版本需要前缀-webkit-。Opera支持border-radius和box-shadow属性,但是对于bordor-image需要前缀-o-。

二、圆角边框(border-radius)

1、基本用法

圆角边框最基本的用法是设置4个相同弧度的圆角,例如:

.div {
    border: 1px solid black;
    border-radius: 5px;
    -moz-border-radius: 5px; /*支持旧版本的Firefox浏览器*/
    -webkit-border-radius: 5px; /*支持旧版本的webkit核心浏览器*/
}  

2、使用百分比作为单位

border-radius可以使用百分比作为单位,比如对一个正方形设置border-radius: 50%;会形成一个圆形,不过使用百分比和使用像素并不能等效。

注意:百分比大于50%之后,形状就不会再变化了,因为圆角的半径不能超过长/宽的一半。

3、设置不同弧度的圆角

在设置中我们可以为元素的4个角设置不同弧度的圆角。
例如:

border-top-left-radius: 10px;  /*左上角*/
border-top-right-radius: 10px; /*右上角*/
border-bottom-left-radius: 10px; /*左下角*/
border-bottom-right-radius: 10px; /*右下角*/

三、边框阴影(box-shadow)

box-shadow的参数
描述
h-shadow必需,水平阴影的位置,允许负值
v-shadow必需,垂直阴影的位置,允许负值
blur可选,模糊距离
spread可选,阴影的尺寸
color可选,阴影的颜色
inset可选,将外部阴影(outset)改为内部阴影

参数的组合顺序为:

box-shadow: {color h-shadow v-shadow blur spread inset}

1、内外阴影

外部阴影显示在边框的外部,而内部阴影则显示在边框的内部。

2、偏移量

用于表示阴影的偏移方向,当其为外阴影且水平阴影的位置和垂直阴影的位置均设置为正值时,则向其右下方进行偏移;当其为内部阴影时,其相关的偏移方向则相反。

注意:对于水平方向,其右边为正值;对于垂直方向,其下方为正值。

3、阴影尺寸

指外阴影外延出去的总的长度。

4、模糊距离

模糊距离的外延长度等于其设定值的1/2。

注意:和边框不同,阴影是不占据空间的。

四、图片边框(border-image)

图片边框可以让图片环绕在元素周围。

注意:IE均不支持该属性,同时由于其仍然需要加载图片,相比于传统的图片背景的方式性能提升性并不是很大,所以这个新属性在实际环境中应用很少。

border-image的参数选项
描述
border-image-source用在边框的图片的路径
border-image-slice图片边框向内偏移
border-image-width图片边框的宽度
border-image-outset边框图像区域超出边框的量
border-image-repeat图像边框是否应平铺(repeat)、铺满(round)或拉伸(stretch)

Firefox、Chrome以及Safari6都支持border-image属性。Opera支持替代的-0-border-image属性,因此在编写兼容性代码时需要添加-o-前缀,以适应Opera浏览器。Safari5支持替代的-webkit-border-image属性。

注意:图片边框是不占据空间的。

1、border-image-source

相关语法如下所示:

border-image-source: url(image url); /*image url可以是相对地址也可以是绝对地址*/

2、border-image-slice

相关的语法为:

border-image-slice: [<number>|<percentage>]

在相关的取值中,其支持数字和百分比。其中数字是没有单位的,专指像素(px),如果加上了单位反而是错误的。另外还可以使用百分比值来作为单位,百分比的值是相对于边框背景图片而言的。

3、border-image-width

定义了图片边框的宽度

4、border-image-outset

定义了图片边框外延的距离,默认为0,即图片边框默认在元素内部。

5、border-image-repeat

定义了4条边的显示,它含有3个选项:repeat、round、stretch。

repeat、round和stretch3个选项的区别:

  • repeat不管是否适合border-width的宽度,直接居中重复。
  • round会压缩或伸展border-image的背景图片使其能够刚好适应border-width的宽度,从而正好在边框区域内显示。
  • stretch实际上是将除了4个角以外的其他部分进行拉伸,以适应元素的边长。

五、通过resize属性来改变输入框的大小

对于像<textarea>这样可以设置overflow属性的元素,CSS3提供了一个叫做resize的方法,让用户可以通过拖拽来改变框体的大小。

resize属性的选项参数
描述
none用户无法调整元素的尺寸
both用户可调整元素的高度和宽度
horizontal用户可调整元素的宽度
vertical用户可调整元素的高度

注意:目前只有webkit核心浏览器才支持resize属性,并且只支持等比例调整。

resize属性默认是打开的,如果想关闭resize,可以使用如下两种方法:
(1)通过resize属性禁止对元素进行缩放:

textarea {
	resize: none;
}

(2)限制文本框的最大以及最小宽、高:

textarea {
    max-height: 10px;
    min-height: 10px;
    height: 10px;
    max-width: 10px;
    min-width: 10px;
    width: 10px;
}

注意:此方法不能去掉右下角可拖动样式。

六、总结

  • 可以为边框的4个角设置不同的圆角。
  • 可以采用百分比设置圆角,其中值大于等于50%时,正方形元素将呈现为圆形。
  • 一般边框外阴影展现凸起效果,内阴影展现内凹效果。
  • 图片边框目前由于浏览器兼容性以及对图片的依赖性,目前并不推荐使用。
  • textarea等可以设置overflow属性的元素,在webkit核心浏览器下可以通过拖拽改变其大小,当然也可以通过resize: none禁用这种拖拽。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值