边框

一、为何border-width不支持百分比值
个人理解,border-width是根据 语义和使用场景决定的。 不会因为设备大就按比例变大的。
border-width还支持关键字:thin 1px,medium(默认值) 3px,think 5px

为何border-width默认值是medium(3px)呢?明明thin(1px)更常用!因为border-style:double至少3px才有效果

那么border-style:double是什么鬼,平时都没怎么用过

二、border-style类型
border-style:solid; 实线,很熟的,pass~~
border-style:dashed; 虚线, 挺熟,pass~~
border-style:dotted; 点线, 不熟,但有故事,ie,火狐的表现不一样,形状不一样
border-style:double; 双线,非常不熟,但有故事
双线宽度永远相等,中间间隔正负1。
1px: 0+1+0
2px: 1+0+1
3px: 1+1+1
4px: 1+2+1
5px: 2+1+2
6px: 2+2+2
7px: 2+3+2
这个双线对我们实际布局有什么用呢?很有用的,因为兼容性非常好,可以用来绘制图形。
<style>
  div{
    width: 120px;
    height: 20px;
    border-top:60px double;
    border-bottom: 20px solid;
  }
</style>
<body>
  <div></div>
</body>
比如这个,三等分,移动端非常常见。点击展开,点击收起。不需要伪元素,不需要图标,是不是很有意思,赶紧拿笔记下来
border-style:inset; 内凹,大眼瞪小眼,非常鸡肋,基本上没什么卵用,兼容性还差,毫无价值
border-style:outset; 外凸,大眼瞪小眼,非常鸡肋,基本上没什么卵用,兼容性还差,毫无价值
border-style:groove; 沟槽,大眼瞪小眼,非常鸡肋,基本上没什么卵用,兼容性还差,毫无价值
border-style:ridge; 山脊,大眼瞪小眼,非常鸡肋,基本上没什么卵用,兼容性还差,毫无价值

三、border-color与color
border-color就是color。更准确的讲,border-color默认颜色就是color.
<style>
  div{
    border: 5px solid;
    color:pink;
  }
</style>
<body>
  <div>It is never too old to learn</div>
</body>
字体颜色是什么,border-color默认颜色就是什么。当没有指定border-color的时候,会使用color作为边框色!

这个特性有什么用呢?没什么用,当今iconfont横行的时候,没用,哈哈哈哈

四、border与三角等图形构建
利用solid构建三角和梯形。
<style>
  div{
    width: 0px;
    border-width: 12px 20px;
    border-style: solid;
    border-color:red red transparent transparent;
  }
</style>
<body>
  <div></div>
</body>
非常朴实和有用,没有兼容性,原理是什么。
<style>
  .test2{
    width: 100px;
    height: 100px;
    border: 100px solid;
    border-color: red green blue orange
  }
</style>
<body>
  <div class="test2"></div>
</body>
发现四个角都是规则的45度,正好一切为2。所以要实现梯形就很简单,把边隐藏掉。

那么为什么边框的边缘是这样斜过来的。是巧合么。不是巧合,前面不是有什么inset,outset,groove,ridge等。这是更正一下,它们并不是一无是处,如果要做这样凹陷的效果,他的边缘就必须是斜过来的。这样才会是个凹槽,3d效果,于是乎,在设置border的时候,就继承过来了。这就是实现三角的根基所在。往下,往上,往左,往右,斜着的,随便玩

实际应用场景
1)下拉,消息框,tip的那种三角
2)模拟圆角(不使用css3,兼容性好)


五、border与透明边框
透明边框很有用,运用很广,而且兼容性很好。
1)三角
2)增加可视渲染区域
<style>
  .wrap{
    width:32px;
    height: 32px;
    overflow: hidden;
  }
  .icon{
    position: relative;
    left: -32px;
    border-right: 32px solid transparent;
    filter: drop-shadow(32px 0 red);
  }
</style>
<body>
  <div class="wrap">
    <img class="icon" src="imgs/message.png" width="32px" alt="">
  </div>
</body>

 

 
边框的属性:线型 大小 颜色
边框背景图
边框衔接(三角形)
 
 
边框的属性
<style>
  .c1 {
    width: 400px;
    height: 200px;
    border: 1px solid red;
  }
</style>
<body>
  <div class="c1">
</div>
</body>

 

如右侧样式,这里是组合在一起写的,其实里面包含了color,style,width。



背景图片
border.png

 经典的九宫格,适合与九宫格

<style>
  .c2 {
    width: 400px;
    height: 200px;
    border: 30px solid transparent;
    border-image: url('border.png') 30;
  }
</style>
<body>
  <div class="c2">
  </div>
</body>

 

 

但这个不是我们想要的结果,我们想要的结果是中间的黄色方形是平铺的效果,我们将border-image改成
border-image: url('border.png') 30 repeat;

 这个跟我们想要的结果接近了。但是边上还是有一点问题,并不是完整的填充。那我们将border-image改成

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

这个结构几乎就跟预想中的一样了。round是怎么拼的,它会去空间上进行压缩,成为整图



边框衔接(三角形)
<style>
  .c3 {
    width: 400px;
    height: 200px;
    border-bottom: 30px solid red;
    /* border-left: 30px solid transparent;
    border-right: 30px solid transparent; */
  }
</style>
<body>
  <div class="c3">
  </div>
</body>

 

 

现在有一个30px的底边,这个时候我们给右边加个蓝色 border-right: 30px solid blue; 那么她们衔接的时候是怎么样的呢。
可以看到是斜切下来的样式。那如果是斜切下来的话。如果右边改成透明色会怎么样。把上面的注释放开,
<style>
  .c3 {
    width: 400px;
    height: 200px;
    border-bottom: 30px solid red;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
  }
</style>
<body>
  <div class="c3">
  </div>
</body>

 

这样就变成了一个梯形。我们看到上面边框是盒子的宽度。如果盒子区域的宽度把它去掉。那么它就变成了三角形

<style>
  .c3 {
    width: 0px;
    height: 200px;
    border-bottom: 30px solid red;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
  }
</style>
<body>
  <div class="c3">
  </div>
</body>

 

当我们宽度变成0的时候。它就变成了一个三角形。那这个就是用边框实现三角形的办法。


这个时候我们给边框加个圆角会怎么样,在c3样式中添加
border-radius: 30px;

这个时候变成了一个扇形。这是第三个点,如何用边框实现一个三角形。

 
posted @ 2019-01-28 06:59  wzndkj  阅读(226)  评论(0编辑  收藏  举报