来帮同学解答一个问题
章节
问答
课签
笔记
评论
占位
占位

CSS3边框 为边框应用图片 border-image

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

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

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

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

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

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

根据border-image的语法:

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

效果:

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



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

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

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

#border-image {

     width:170px;

     height:170px;

     border:70px solid;

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

 }

效果:

可见图片被压扁了。

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

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

看一下效果:

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

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

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

 

任务

为DIV应用下面的边框图片。图片绝对路径为:

http://img1.sycdn.imooc.com//52e22a1c0001406e03040221.jpg

?不会了怎么办

参考前面的说到的语法吧,不能总让我提示。

||
1
2
<!doctype html>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / 住月亮上的猫
啊这!!!我没看到border-imagn后面的值被我不小心删掉了,但是我在任务那里没掉,对比好几次也没错,可是提交他显示出错,为什么啊,还有切割图片这个宽度值为什么是20呢

最赞回答 / 呦_摸鱼呢
看的懂前面就能看懂这个,你是跳着来看的吧,任何一个知道css是啥的,讲这么细也该知道怎么写了😥

最新回答 / 创客2018
按照代码切割的呀怎么了。

最赞回答 / Spring_Yang
repeat就是重复图片,数值越大,图片大小不变,就越密集。这篇文章写的挺详细,你可以看看https://segmentfault.com/a/1190000010969367?utm_source=tag-newest

最赞回答 / 薄荷青年
类似于把图片分成几份

已采纳回答 / riguangChen
没错阿

最新回答 / qq_Breakthrough_1
浏览器的版本

最新回答 / 王民会
就是切边。好比你现在给相片镶框,给你一块完整的木板(背景图片),是按尺寸从木板的四个边来切的。<!doctype html><html><head><meta charset="utf-8"><title>边框图片</title><style>#border_image {    margin:0 auto; height:100px; line-height:100px; text-align:center; font-...

已采纳回答 / HiMary
对于top right bottom left不要加单位,虽然标准上面说默认单位是px像素,但是实际使用时是不可以加px单位的,可以使用百分比。(其实不加px不是更方便?)

最新回答 / 慕粉3209380
是有兼容性的-moz-border-image:url(/i/border.png) 30 30 round; /* Old Firefox */-webkit-border-image:url(/i/border.png) 30 30 round; /* Safari and Chrome */-o-border-image:url(/i/border.png) 30 30 round; /* Opera */border-image:url(/i/border.png) 30 30 round;

最新回答 / qq_慕圣3404251
顺序是上右下左不想要设置0就行 0 0 20 0 下边框20

最赞回答 / 爱上慕婉清6262634
假设图片是300*200,设置border的宽度是10像素  border-image裁剪宽度分别是10  20  30  40;以图片为基准从top=0向下裁剪10px;  right=0向左裁剪20px;  bottom=0向上裁剪30px;  left=0向右裁剪40px;  然后将裁剪的那些片段   按照border设置的10像素宽度进行内容填充

最新回答 / HEternally
你要为边框添加边框图片,首先得先有边框吧,所以要先设置边框,不然你设置了图片也看不到
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言