CSS border-width

border-width

语法

  1. <line-width>{1, 4}: 表示接收最少 1 个, 最多 4 个的 <line-width> 类型的数据.
    • 📕CSS 中的数据也是有类型的😀
  2. 其中 <line-width> 可以是
    • <line-width> = <length> | thin | medium | thick
    • | 表示互斥, 即<length>, thin, mediumthick 有且只有一个能出现
    • 其中, 文档写的很清楚, 这个 <length> 必须非负

取值

  1. 关键词属性

    • 支持 thin, mediumthick
    • 规范中并没有定义每个关键字代表的具体宽度, 但是遵循的规则是宽度一次增加 thin <= medium <= thick
    • 下面看不同浏览器的实现
      • 不过各家浏览器表现竟然出乎意料的一致, 三者的计算值分别为 1px, 3px, 5px,
      • 请添加图片描述
      • 请添加图片描述
    • 同时, medium 也是边框宽度的默认值, 所以我们可以下面的代码时相同效果的
  2. <length>

    • 正数和负数: 这个应该不用多想, 正数肯定支持, 文档里说的很清楚不支持负数, 但是如果真的写负数, 浏览器会怎么渲染呢? EdgeFirefox 都是这样渲染的

      • .box3 {
          border: 1px solid #111;
          border-top-width: -1px;
        }
        
      • 请添加图片描述
    • 小数

      • .box4 {
          border: 1px solid #111;
          border-top-width: .1px;
          border-left-width: .01px;
          border-bottom-width: 1.1px;
          border-right-width: 1.8px;
        }
        
      • 首先看 Chrome 浏览器, 不足 0.5px 的都渲染为 0.5px, 其他的多少就是渲染多少

        • 请添加图片描述
      • 但是在 Firefox 中, 似乎对小数单位进行了四舍五入, 但是四舍五入的规则是把我整蒙了😵😵😵. 比如第一张图, 0.7px 进为 1px 但是第二张图 1.7px 又舍为 1.5px. 可以参考这篇博客, 其中也说到了 Firefox 浏览器将有些值向上取整而有些值向下取整. 所以为了避免这种情况, 还是乖乖使用整数吧

        • 请添加图片描述

        • 请添加图片描述

    • 百分数

      • 目前看来, ChromeFirefox 都不支持百分数的属性, 所以暂时用不了
      • 请添加图片描述
  3. 特殊的事情

    • border 这个简写属性中, 是可以省略 border-width 的, 比如
    • .box2 {
        border: solid #111;
      }
      
    • ❗❗但是, 这个样式在不同浏览器中却展示不一样的. 在 Chrome, OperaEdge 浏览器中, 边框宽度都是 1.5px; 但是在 Firefoxie11 浏览器中, 边框都是 3px. 所以为了避免浏览器展示不同, 还是尽量不要省略这个属性
    • 请添加图片描述
    • 请添加图片描述

应用规则

<line-width>{1, 4}
既然这个属性可以只有 1 个值, 也可以有 4 个值, 那么看一下应用规则

  1. 1个值
    • 四个边框同样宽度
  2. 2个值
    • 第一个值应用于上, 下边框
    • 第二个值应用于左, 右边框
  3. 3个值
    • 第一个值应用于边框;
    • 第二个值应用于左, 右边框;
    • 第三个值应用于边框;
  4. 4个值
    • 四个值分别按照上, 右, 下, 左(顺时针)的顺序应用于四个边框
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值