zoukankan      html  css  js  c++  java
  • CSS半透明边框

    我使用的测试代码:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>CSS:半透明</title>
    <style>
    body {
    background:yellow;
    }
    
    #div1{
     100px;
    height: 100px;
    border: 20px solid rgba(0,0,0,0.1);
    background: red;
    background-clip: padding-box;
    }
    #div2{
    position:absolute;
    margin-top: 70px;
    
    }
    span {
    border: 10px blue;
    border-style: dotted double;
    margin: 1em;
    padding: 2em;
    background: #F8D575;
    }
    .border-box { background-clip: border-box; }
    .padding-box { background-clip: padding-box; }
    .content-box { background-clip: content-box; }
    .text { background-clip: text; }
    
    
    </style>
    
    </head>
    <body>
    <div id="div1">
    
    </div>
    <div id="div2">
    <span class="border-box">border-box</span>
    <span class="padding-box">padding-box</span>
    <span class="content-box">content-box</span>
    <span class="text">text</span> 
    </div>
    
    </body>
    </html>

    和下面的图不一样的地方是:我的这个是纯色的背景

     
    1.半透明边框

    问题:

    如果我们要为一个容器设置红色背景和一道黑色半透明边框,我们可能会这样写:

    border: 20px solid rgba(0,0,0,0.5);
    background: red;

    但是效果却是这样的(图1-1.png);我们的半透明颜色怎么没有实现半透明边框?


    图1-1.png

    解决方案:

    我们可以通过background-clip属性来调整上面的默认行为,把它是值设为padding-box,然后就出现了我们想要的效果(图1-2.png);

    border: 20px solid rgba(0,0,0,0.5);
    background: red;
    background-clip: padding-box;

    图1-2.png

    2.background-clip

    既然用到了background-clip属性,那我们就来看看这个属性吧;
    background-clip:
    设置元素的背景(背景图片或颜色)是否延伸到边框下面。

    值(values )说明
    border-box 默认初始值,背景延伸到边框外沿(但是在边框之下)
    padding-box 边框下面没有背景,即背景延伸到内边距外沿
    content-box 背景裁剪到内容区 (content-box) 外沿
    text 实验API,背景裁剪到前景文本( foreground text)内

    CSS content

    span {
       border: 10px blue;
       border-style: dotted double;
       margin: 1em;
       padding: 2em;
       background: #F8D575;
    }
    .border-box { background-clip: border-box; }
    .padding-box { background-clip: padding-box; }
    .content-box { background-clip: content-box; }
    .text { background-clip: text; }

    HTML content

    <span class="border-box">border-box</span>
    <span class="padding-box">padding-box</span>
    <span class="content-box">content-box</span>
    <span class="text">text</span>

    效果:(图2-1.png)


    图2-1.png

    3.border-style

     
    还有一个border-image,但是在现实中并不怎么常用,如果有强迫症,可以参考MDN,去MDN查看!
  • 相关阅读:
    爬虫
    vue进级
    el-upload加header
    上传图片到服务器报错 {errMsg: "uploadFile:fail ssl hand shake error"}
    【Node.js】论一个低配版Web实时通信库是如何实现的1( WebSocket篇)
    【Node.js】 bodyparser实现原理解析
    【JavaScript】EventEmitter的前端实现
    【JavaScript】当我们尝试用JavaScipt测网速
    git命令
    【Java】利用注解和反射实现一个"低配版"的依赖注入
  • 原文地址:https://www.cnblogs.com/xujintao/p/6839001.html
Copyright © 2011-2022 走看看