最近,我在项目开发中遇到这样的问题。

要给这个tab的底部的蓝线左右加上圆角。

然而,这个元素实际如上图所示,只是active的时候加了个underline的类,蓝线并没有单独的html。

若给这个span加上border-bottom-left-radius和border-bottom-right-radius也只能给蓝线的下半部分加上圆角。

正当困惑时,我突然想到了CSS3的border-image属性,也许可以解决这个问题。

然后,我查阅了相关资料,解决了上面的问题。代码为:

.register-search .navbar__title__underline {
padding-bottom: .8rem; border: .125rem solid transparent;
-webkit-border-image:url(../images/blueline@3x.png) ; /* Safari 5 */
-o-border-image:url(../images/blueline@3x.png) ; /* Opera */
border-image:url(../images/blueline@3x.png) ;
}

这段代码的要点为:

1.设置border的宽度,并且设置为透明。

2.让设计师切出设计图的蓝线(324*6),然后用border-image引用,调好上右下左的切割位置即可。

这里详细介绍下border-image。

border-image的第一个参数是边框图片路径,即border-image-source。

border-image的第二个参数是border-image-slice,即可按上右下左的顺序切割背景图。

如图所示,30% 35% 40% 30%即是像上图一样进行剪裁,裁剪所形成的矩形即为边框。若只是单纯的数字,则默认单位是px。

border-image的第三个参数是border-image-repeat。

例如,这张图作为边框背景图,菱形的对角线为30px。

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

所对应的效果为

另外,

border-image: url(border.png)  stretch;

所对应的效果为

stretch是默认值。

于是,要实现切下来的图位于边框底部的效果,则上边切0px,右边切0px,下边切6px,左边切0px。即

border-image:url(../images/blueline@3x.png)    ;

这样整张边框图就直接落在了边框底部,从而实现需求。

虽然这段代码在电脑和安卓手机上都能成功显示蓝线,但是在ios上不显示蓝线。

解决方法:

把border样式拆成

border-width: .125rem;
border-style: solid;

即可成功显示。

CSS3之border-image的使用的更多相关文章

  1. css3学习--border

    http://blog.sina.com.cn/s/blog_61671b520101gelr.html border-radius border-radius: 50px 20px;上下都是50px ...

  2. css3实现border渐变色

    案例1 .box{ width: 100px; height: 100px; border:10px solid #ddd; border-image: -webkit-linear-gradient ...

  3. css3 做border = 0.5px的细线

    参考: https://blog.csdn.net/Tyro_java/article/details/52013531

  4. CSS3 用border写 空心三角箭头 (两种写法)

    之前一直在寻找这种空心三角箭头, 终于知道了原理! 自己记录一下,顺便分享给之前跟我一样想要的撸友们~ 第一种写法 利用常见的 after伪元素 <!DOCTYPE html> <h ...

  5. css3动画使用技巧之—border旋转时的应用。

    <html> <head> <title>css3动画border旋转时的应用.</title> <meta charset="UTF- ...

  6. css3图形绘制

    以下几个例子主要是运用了css3中border.bordr-radius.transform.伪元素等属性来完成的,我们先了解下它们的基本原理. border:简单的来说border语法主要包含(bo ...

  7. css3之图形绘制

    由于近期的项目中出现了不规则的边框和图形, 所以重新温习一下CSS3的图形绘制...样式绘制的图形比图片的性能要好,体验更佳,关键一点是更加有趣! 以下几个例子主要是运用了css3中border.bo ...

  8. 总结html

    1.初识html W3C : 万维网联盟!(World Wide Web Consortium )   创建于1994年,是web技术领域最权威最具有影响力的标准机构!           W3C规定 ...

  9. 你务必知道的css简写

    欢迎加入前端交流群来py:749539640   简写属性是可以让你同时设置其他几个 CSS 属性值的 CSS 属性.使用简写属性,Web 开发人员可以编写更简洁.更具可读性的样式表,节省时间和精力. ...

  10. CSS3 笔记一(Rounded Corners/Border Images/Backgrounds)

    CSS3 Rounded Corners The border-radius property is a shorthand property for setting the four border- ...

随机推荐

  1. vs2017项目上传到github

    如果要把项目提交到一个厂库里面,需要建个git存储库,比如选择新建git库选择VSVIEW文件夹,以后在这个文件夹下的项目,提交时都会提交到VSVIEW这个github仓库 选择的文件夹不在git文件 ...

  2. python笔记带你走向测试开发之路-第一篇(数据类型之数字,序列)

    数字 数字的类型 数字是 Python中比较常用的数据类型,数字有可以分为: 整型 int如 1,2,3 浮点型 float如 2.1,3.5 长整型 long如 3L,需要注意的是 Python2. ...

  3. Pycharm学习记录---注释

    在方法下面添加三个双引号然后回车即可添加参数注释

  4. 基于 HTML5 Canvas 的病毒模拟视觉试验台

    前言 2020 年 1 月 12 日,世界卫生组织以武汉病毒肺炎病例命名了一种病毒,2019新型冠状病毒 ( 2019-nCoV ) .随着春运的到来,该病毒迅速的蔓延开来,大家都唯恐避之不及.病毒的 ...

  5. C++ map通过key获取value

    c++的map中通过key获取value的方法 一般是value  =map[key],或者另一种迭代器的方式 1.在map中,由key查找value时,首先要判断map中是否包含key. 2.如果不 ...

  6. Android 7.0新特性“Nougat”(牛轧糖)。

    1.Unicode 9支持和全新的emoji表情符号 Android Nougat将会支持Unicode 9,并且会新增大约70种emoji表情符号.这些表情符号大多数都是人形的,并且提供不同的肤色, ...

  7. 杭电-------2051Bitset(C语言)

    #include<stdio.h> ] = { }; int main() { int m; ; while (~scanf("%d", &m)) { whil ...

  8. 1.3.6 详解build.gradle文件——Android第一行代码(第二版)笔记

    不同于Eclipse,Android Studio是采用Gradle来构建项目的.Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置. 首先看 ...

  9. Linux安装Redis、后台运行、系统自启动

    Redis是用C语言编写的开源免费的高性能的分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库. 安装 1)从官网http://download.redis.io/releases/下载re ...

  10. Office Tool Plus - 一个OFFICE 管理、下载、安装器

    文章选自我的博客:https://blog.ljyngup.com/archives/160.html/ 教程摘自官方教程. 官网:https://otp.landian.vip/zh-cn/ Off ...