您现在的位置是:网站首页> 编程资料编程资料
CSS3实现多背景模拟动态边框的效果基于CSS 属性实现按钮悬停边框和背景动画集合CSS 制作带边框背景色透明的消息框css3 边框、背景、文本效果的实现代码CSS控制背景图像平铺实现边框阴影效果css div 边框阴影利用背景图或内外层div实现层次感觉阴影效果css样式div或li在ie6下背景平铺及border边框断线解决技巧 CSS新特性:圆角边框多栏Gird布局背景设置css背景和边框标签实例详解
2021-09-04
1194人已围观
简介 前几天在工作的时候遇到一个问题,项目需要实现一个效果,当鼠标移入一个元素的时候,元素出现一个动态的边框,通过网上查找资料看到有人推荐可以使用Css3来实现,后来试了试成功了,现在将实现的方法分享给大家,有需要的朋友们可以参考借鉴。
首先来看看要实现的效果图

实现方法如下
我首先想到的是border属性,可是border属性不能设置长度。如果用border实现,需要用其他元素来模拟,比较麻烦。后来突然想起以前在网上看到有人用CSS3的多背景来模拟边框,就试了一下。
css3 背景
CSS3对于background做了一些修改,最明显的一个就是采用设置多背景,不但添加了4个新属性,并且还对目前的属性进行了调整增强。
1、 多个背景图片
在css3里面,你可以再一个标签元素里应用多个背景图片。代码类似与css2.0版本的写法,但引用图片之间需用“,”逗号隔开。第一个图片是定位在元素最上面的背景,后面的背景图片依次在它下面显示,如下:
background-image: url(top-image.jpg), url(middle-image.jpg), url(bottom-image.jpg);
2、新属性:Background Clip
此讨论让我们回到文章开始提到的关于背景被border边框遮挡的问题。background-clip的添加让我们完全能够控制背景显示的位置。
属性值如下:
background-clip: border; 背景在border边框下开始显示
background-clip: padding; 背景在padding下开始显示,而不是border边框下开始
background-clip: content; 背景在内容区域下开始显示,而不是border边框下开始或padding下开始。
background-clip: no-clip; 默认属性值,类似与background-clip: border;
3、新属性: Background Origin
此属性需要与background-position配合使用。你可以用background-position计算定位是从border,padding或content boxes内容区域算起。(类似background-clip)
background-origin:border; 从border边框位置算起
background-origin:padding; 从padding位置算起
background-origin:content; 从content-box内容区域位置算起;
background-clip和background-origin的不同之处www.CSS3.info网站给做了很好的分析讲解。
4、新属性:Background Size
Background Size属性用来重设你的背景图片。
有几个属性值:
background-size: contain; 缩小背景图片使其适应标签元素(主要是像素方面的比率)
background-size: cover; 让背景图片放大延伸到整个标签元素大小(主要是像素方面的比率)
background-size: 100px 100px; 标明背景图片缩放的尺寸大小
background-size: 50% 100%; 百分比是根据内容标签元素大小,来缩放图片的尺寸大小
你可以去CSS 3 specifications站点看一下简单的案例说明。
5、新属性:Background Break
css3里标签元素能被分在不同区域(如:让内联元素span跨多行),background-break属性能够控制背景在不同区域显示。
属性值:
Background-break: continuous; 此属性是默认值,忽视区域之间的间隔空隙(给它们应用图片就好像把它们看成一个区域一样)
Background-break: bounding-box; 重新考虑区域之间的间隔
Background-break: each-box; 对每一个独立的标签区域进行背景的重新划分。
6、背景颜色的调整
background-color属性在css3版本里面稍微做了增强,除了指定background color背景颜色之外,还可以对不使用的标签元素背景图片进行去色处理。
background-color: green / blue;此例子里,这背景颜色可能是绿色,然而,如果底部背景图片无效的话,蓝色将代替绿色来显示。如果你没有指定某个颜色的话,它将其视为透明。
7、背景重复的调整
css2里当设置背景的时候,它经常被标签元素截取而显示不全,css3介绍了2个新属性来修复此问题。 space:图片以相同的间距平铺且填充整个标签元素 round:图片自动缩放直到适应且填充整个标签元素
CSS 3 specifications网站对background-repeat: space的使用就是一个现成的例子。
8、Background Attachment 的调整
Background Attachment有了一个新属性值:local,当标签元素滚动时它才有效(如设置overflow:scroll;),当background-attachment设置为scroll时,背景图片是不随内容滚条滚动的。现在,有了background-attachment:local,就可以做到让背景随元素内容滚动而滚动了。
css3 多背景模拟元素边框
我们这里主要使用了background-img、background-size 和 background-position 三个属性。
background-image: [background-image], [background-image], [background-image]; background-position: [background-position], [background-position], [background-position]; background-repeat: [background-repeat], [background-repeat], [background-repeat];
简写形式如下:
background: [background-image] [background-position] [background-repeat], [background-image] [background-position] [background-repeat], [background-image] [background-position] [background-repeat];
现在我们用多背景来模拟一个元素的边框
/*CSS*/ .exammple { background: linear-gradient(0, #108b96 2px, #108b96 2px) no-repeat, linear-gradient(-90deg, #108b96 2px, #108b96 2px) no-repeat, linear-gradient(-180deg, #108b96 2px, #108b96 2px) no-repeat, linear-gradient(-270deg, #108b96 2px, #108b96 2px) no-repeat; background-size: 100% 2px, 2px 100%, 100% 2px, 2px 100%; background-position: left top, right top, right bottom, left bottom; }我们用四个渐变的背景来模拟四个边框(为什么我们要用渐变而不是直接的Color呢?这是由于Css的多背景只能是background-image, background-color不支持多个值,所有即便是纯色的边框,我们也只能使用渐变)。

接下来我们让边框动起来
/*CSS*/ .exammple { transition: ease-in .3s; background: linear-gradient(0, #108b96 2px, #108b96 2px) no-repeat, linear-gradient(-90deg, #108b96 2px, #108b96 2px) no-repeat, linear-gradient(-180deg, #108b96 2px, #108b96 2px) no-repeat, linear-gradient(-270deg, #108b96 2px, #108b96 2px) no-repeat; background-size: 0 2px, 2px 0, 0 2px, 2px 0; background-position: left top, right top, right bottom, left bottom; } .exammple:hover { background-size: 100% 2px, 2px 100%, 100% 2px, 2px 100%; }相比border属性,用background的模拟边框的优势在于可以控制边框的宽高,运动方向等,实现很多border不能实现的效果,劣势在于不能实现border的圆角。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用Css3能有所帮助,如果有疑问大家可以留言交流。
相关内容
- HTML5+CSS3实例 :canvas 模拟实现电子刮刮乐代码html5 canvas实现的可用于手机端手指滑动刮刮乐效果源码Html5 Canvas 实现一个“刮刮乐”游戏
- HTML5+CSS3 诱人的实例:3D立方体旋转动画实例html5+css3实现酷炫的3D立方体旋转动画特效源码CSS3 3D立方体效果示例-transform也不过如此纯css3实现的3D立方体旋转动画特效源码css3 transform及原生js实现鼠标拖动3D立方体旋转一款利用html5和css3实现的3D立方体旋转效果教程 纯CSS3实现的3D立方体旋转动画特效源码
- 绝对定位元素的水平垂直居中的方法(3种任选)CSS水平垂直居中的几种方法总结在excel表格中怎么水平垂直居中对齐?css让容器水平垂直居中的7种方式利用CSS3的flexbox实现水平垂直居中与三列等高布局Flexbox制作CSS布局实现水平垂直居中的简单实例ppt表格中的文字怎么设置水平居中或垂直居中?浅析CSS实现水平垂直同时居中的5种思路让DIV水平垂直居中的两种完美方法推荐CSS解决页面图片水平垂直居中问题的方法全面总结使用CSS实现水平垂直居中效果的方法
- 左侧固定,右侧自适应(两种方法任选)CSS左侧固定宽 右侧自适应的实现代码(兼容所有浏览器)左侧固定宽度,右侧自适应宽度的CSS布局
- 解析width:100%;与width:auto;的区别Css深刻理解width:auto的用法
- CSS3实现瀑布流布局与无限加载图片相册的实例代码3种方式实现瀑布流布局小结详解纯css实现瀑布流(multi-column多列及flex布局)css3 column实现卡片瀑布流布局的示例代码用CSS3实现瀑布流布局的示例代码瀑布流布局的两种实现方式:传统多列浮动和绝对定位布局waterfall瀑布流布局+动态渲染的实现
- 深入理解和应用css中Float属性详解css中的floatCSS重要属性之float学习心得(分享)css(display,float,position)深入理解老生常谈css中float的用法CSS使用float属性设置浮动元素的实例教程使用CSS的overflow属性防止float撑开div的方法CSS清除浮动float的三种方法小结
- 纯CSS实现3D按钮效果实例代码基于CSS Bootstrap超酷3D按钮特效源码CSS3实现扁平化风格3D按钮鼠标悬停按钮动画过渡特效源码 CSS3实现的支持单按钮和按钮组3D按钮效果源码纯CSS3实现简易3D按钮可配置背景颜色纯CSS3实现的3D开机按钮附有阴影以及光泽jquery+css3实现无图片的超帅3D按钮效果jQuery+CSS利用阴影实现的超酷3D按钮和文字特效
- 利用css代码实现纸飞机效果实例源码利用CSS实现书签效果实例源码纯css3实现的圆形从中心向四周扩散动画效果源码使用CSS3实现一个3D相册效果实例纯CSS3实现鼠标悬停卡片翻转切换特效源码CSS3实现文字波浪线效果示例代码CSS3 2D模拟实现摩天轮旋转效果css3基于svg绘制的唐老鸭图片样式效果源码CSS3实现同时执行倾斜和旋转的动画效果CSS3实现个性可爱的甜品店动画幻灯片切换特效源码CSS3点击按钮实现背景渐变动画效果
- 用CSS属性transparent实现各种三角形示例代码 css 中的background:transparent到底是什么意思有什么作用利用css绘制三角形的方法及拓展CSS3 画基本图形,圆形、椭圆形、三角形等DIV+CSS实现带三角箭头的提示框 用CSS制作三角形和按钮的简单实例CSS仿网易首页的头部菜单栏按钮和三角形制作方法利用CSS伪元素创建带三角形的提示框的实现方法纯CSS绘制三角形箭头图案技术解析Html+CSS绘制三角形图标使用CSS实现小三角形效果【附实例】
