博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css中的有趣的border
阅读量:6436 次
发布时间:2019-06-23

本文共 1462 字,大约阅读时间需要 4 分钟。

CSS 中的 border 属性,我想凡是了解一点 CSS 的都知道它是作用,可以在 MDN 上找到对它的详细介绍。

border

简单来说,就是我们常用的边框,一个非常基础的用法,就是

 
  1. border: 1px solid black; 
  2. // 等价于 
  3. border-width: 1px; 
  4. border-style: solid; 
  5. border-color: black;  

下面是演示的效果:

当然还可以定义很多奇形怪状的边框类型,比如圆角(radius,可能兼容性不是很好),椭圆(其实只要懂了椭圆,边框就可以随意绘制了)。

 
  1. border 1px solid black; 
  2.  
  3. border-radius: 50%; 

border-top,-right,-bottom,-left

看了这么多有意思的 DEMO,那么对于边框,你真的了解了吗?

最近碰到一个有意思的 CSS 样式,让我对于边框有了很深刻的了解。平时我们用边框,基本都要给边框一个宽度,1px,偶尔2px,并没有发现边框与元素之间的关系,当我们把 border-width换大一点的值,问题就来了。

 
  1. border: 20px solid gray; 

并且,边框是可以单独设置 top,right,bottom,left 的值:

 
  1. border: 20px solid gray; 
  2.  
  3. border-top-width: 40px; 
  4.  
  5. border-left-width: 40px;  

边框与边框的交界处该如何来判断呢?

了解这一点非常重要,如果你也发现了这个问题,那么下面有意思的东西就来了:

 
  1. border: 20px solid; 
  2.  
  3. border-top-color: black; 
  4.  
  5. border-right-color: red; 
  6.  
  7. border-bottom-color: gray; 
  8.  
  9. border-left-color: blue; 

居然是内顶点与外顶点的连线把边框分开了,如果把元素的 width 和 height 都设置成 0,再加一个 radius:

 
  1. width: 0; 
  2.  
  3. height: 0; 
  4.  
  5. border-radius: 50%; 

前面 border-radius 的原理你也应该懂了吧!

有关于 border-radius 的选取,可以看下 SF 上的这个提问 border-radius内外半径=<边框宽度时,盒子内边就成了直角怎么一回事。

用 border 实现箭头

知道了一些 border 的基本知识,我们就可以实现常见于对话框的箭头,像下面这种:

这个需要借助于 CSS 中的透明 transparent 来实现,比如我们需要一个向右的箭头,参考上面 width 和 height 为 0 时的例子,对应的边框大小 15px,0px,15px,30px,先看下面这个例子

 
  1. border-width: 15px 0px 15px 30px; 
  2.  
  3. border-color: black gray; 
  4.  
  5. border-style: solid; 

这个时候需要把 border-top 和 border-bottom 的颜色设置成透明,

 
  1. border-color: transparent gray; 

那么,对于的其他三个角度的箭头也可以以同样的方式设计出来:

总结

看了这篇文章,是不是觉得 border 的功能非常强大,其实我们常见的一些气泡和形状都可以用 border 来实现,哈哈,非常鄙视那些用图片的同学。共勉。

作者:songjz

来源:51CTO

转载地址:http://wsega.baihongyu.com/

你可能感兴趣的文章
CentOS下如何修改主机名
查看>>
“机器人商店”是什么?卖机器人的吗?
查看>>
SVN的代码正确提交方法
查看>>
js框架 vue
查看>>
tomcat关闭时进程未退出
查看>>
Git分支管理策略
查看>>
kali安装软件遇到的问题&解决
查看>>
Azure系列2.1.10 —— CloudBlobClient
查看>>
【04-20】httpclient处理302重定向问题
查看>>
OpenGLes2.0 什么是Pbuffer
查看>>
Docker Java+Tomcat 环境搭建
查看>>
uoj#179. 线性规划
查看>>
bzoj 2244 [SDOI2011]拦截导弹(dp+CDQ+树状数组)
查看>>
全局方法
查看>>
DOM 获取、DOM动态创建节点
查看>>
do{...}while(0)的意义和用法
查看>>
【CJOJ】Contest4 - A+B Series
查看>>
Python中四种交换两个变量的值的方法
查看>>
ora-01033:oracle initialization or shutdown in progress 解决方法
查看>>
移动自动化相关名词解释
查看>>