简解Css - 多变的边框
1. 甜嘴棒棒糖
实现只需要借助box-shadow两个特性:
- box-shadow可任意个数阴影
- box-shadow的扩张半径参数。
body {background: #000;
}.pin {margin: 60px auto;width: 60px;height: 60px;border-radius: 60px;background: white;box-shadow: 0 0 0 10px hsl(0, 100%, 50%),0 0 0 20px hsl(100, 100%, 50%),0 0 0 30px hsl(200, 100%, 50%);
}
复制代码
如果只用来当作图片显示,那么再加上适当的外边距,显然已经大功告成了。
解决响应问题:
但其实会有一个潜在的问题。 因为用box-shadow生成的边框是出现在元素外圈的,而元素的外圈,是不会响应鼠标事件的。
可以通过把每个box-shadow属性加入inset关键词,让它在元素内部渲染,然后使用同等的内边距来解决。
代码如下:
body {background: #000;
}.pin {margin: 60px auto;border-radius: 60px;width: 60px;height: 60px;padding: 30px;background: white;box-shadow: 0 0 0 10px hsl(0, 100%, 50%) inset,0 0 0 20px hsl(100, 100%, 50%) inset,0 0 0 30px hsl(200, 100%, 50%) inset;
}
复制代码
2. 两层边框
2.1 小试牛刀
只需要两层边框的话,亦可以使用outline(描边)。
但它有个缺陷,由于outline不属于元素的内部空间,所以当使用border-radius时,是无法被渲染成充斥曲线美的弧形的。
不过好消息是,这被Css工作组认为是个bug,有望未来被修正。
示例代码如下:
.pin {margin: 60px auto;width: 60px;height: 60px;background: white;border: 10px solid plum;outline: 10px solid dodgerblue;outline-offset: -20px;}
复制代码
2.2 缝边效果
outline别于box-shadow的一点在于它不仅生成实线边框,还可以生成虚线边框。
同时通过outline-offset可以来控制它的位置,还可以是负值哦。
利用这两点,一个简约而实用的缝边效果轻松诞生。
如下:
.pin {margin: 60px auto;width: 200px;height: 100px;outline: 2px #fff dashed;outline-offset: -10px;background: hsl(20, 80%, 20%);}
复制代码
最后留个想象题,由于是虚线,所以你把outline设置更宽,或者outline-offset设置更大,那么会产生什么效果呢?
3. 边框内圆角
我们了解到box-shadow可以是圆角的,但是outline至少现在是不能的。
结合这两点特性,可以实现边框内圆角。
代码如下:
.pin {margin: 60px auto;width: 200px;height: 100px;background: hsl(20, 80%, 80%);border-radius: 10px;box-shadow: 0 0 0 10px hsl(20, 80%, 20%);outline: 10px hsl(20, 80%, 20%) solid;outline-offset: 0;
}
复制代码
x. 更多的实现...
参考
- css揭秘
简解Css - 多变的边框相关推荐
- html盒子边框内部线条,详解CSS从条纹边框的实现盒子模型的方法
解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS属性,赶紧去补习一下吧. 2.类似下面这个图形,只使用一个标签,可以有多少种实现方式: 假设我们的单标签为 p: 定义 ...
- html边框复合属性,详解CSS的border边框属性及其在CSS3中的新特性
基础你可能很熟悉边的最基本用法. CSS Code复制内容到剪贴板 border:1pxsolidblack; 上面的代码将给元素应用1px的边.即简洁又简单:但我们也可以稍作修改. CSS Code ...
- 【基础】CSS实现多重边框的5种方式
原文:[基础]CSS实现多重边框的5种方式 简言 目前最优雅地实现多重边框的方案是利用CSS3 的 box-shadow属性,但如果要兼容老的浏览器,则需要选择其它的方案.本文简要地列举了几种多重边框 ...
- html多重边框,中间空白,【基础】CSS实现多重边框的5种方式
原文:[基础]CSS实现多重边框的5种方式 简言 目前最优雅地实现多重边框的方案是利用CSS3 的 box-shadow属性,但如果要兼容老的浏览器,则需要选择其它的方案.本文简要地列举了几种多重边框 ...
- 爬虫5-BeautifulSoup模块简解2
1.BeautifulSoup简解2 from bs4 import BeautifulSoup import re file = open("./baidu.html",'rb' ...
- github-markdown-css 使用简解,markdown文案格式优化(笔记)
github-markdown-css 使用简解,markdown文案格式优化 1.npm 安装 $ npm install github-markdown-css 2.使用 导入github-mar ...
- 详解CSS的盒模型(box model) 及 CSS3新增盒模型计算方式box-sizing
W3C规范 一般来说,页面中的每一个元素都会形成一个矩形盒子,渲染引擎根据给定的样式确定这个盒子的呈现.通俗的来说,页面的布局就是一个个盒子的排列和摆放.掌握了盒子呈现的本质,布局也就轻而易举. 在 ...
- 详解CSS float属性
转自:http://luopq.com/2015/11/08/CSS-float/ \详解CSS float属性 Posted on 2015-11-08 | In CSS | 5条评 ...
- css样式之边框和内外边距
1.css样式之边框:border 实心的边框: <!DOCTYPE html> <html> <head> <meta http-equiv="c ...
最新文章
- 挑战练习6.4 报告编译版本
- fsck命令--Linux命令应用大词典729个命令解读
- 18650锂电池保护板接线图_锂电池保护板的原理介绍保护板的构成和主要作用
- Oracle VM VirtualBox Ubuntu1804虚拟机磁盘扩容
- 关于mysql中日期后面多一个 .0
- matlab仿真没有synchr,Synchro交通仿真系统分析及应用
- 天梯L2-029 特立独行的幸福
- linux 终端 reboot,讲解Linux基础命令之:man、reboot
- Python招聘岗位信息聚合系统源码(爬虫爬取、数据分析、可视化、互动等功能)...
- java程序员培训班要多少钱,一招彻底弄懂!
- 这个超级好哎 vector 容器的 怕失效
- 第18.1节 OE3.1实例-加载本地瓦片数据
- PUTT(psftp)文件上传下载
- Java web基础学习笔记
- matlab机器学习入门---大纲
- AI表情包生成器来了!给AI喂了96万个表情包文案,做出的图能接地气吗?
- 地形图加密高程点的两种方法CAD和ARCGIS
- gops —— Go 程序诊断分析工具
- 服务器托管与租用应该怎么选择?
- 简易在线留言板(上)——树洞留言板