zoukankan      html  css  js  c++  java
  • background-clip

    background-clip允许你控制背景图片或颜色延伸到一个元素的内间距(padding)或内容(content)之外的距离。

    .frame {
      background-clip: padding-box;
    }

    border-box是默认值。它允许背景一直延伸到元素边框(border)的外边缘。

    padding-box 在元素内间距(padding)的外边缘处剪切背景,并且不允许背景延伸进边框(border)。

    content-box 在元素内容盒子的边缘剪切背景。

    inherit将父级的background-clip设置应用于所选元素。

    演示

    background-clip在行动中得到最好的阐释,因此我们将两个演示放在一起以展示它是如何工作的。

    第一个演示,每个div内部都有一个段落。段落是div的内容。每个div有一个黄色背景和一个5像素、半透明的浅蓝色边框。

    <!DOCTYPE html>
    <html lang="zh-CN">
    
    <head>
      <meta charset="UTF-8">
      <title>background-clip</title>
      <meta name='description' content='background-clip'>
      <meta name='keywords' content='background-clip'>
      <style>
        div {
          background-color: yellow;
           225px;
          padding: 1em 0;
          border: 5px solid rgba(156, 224, 251, .5);
        }
    
        .nomargin {
          margin: 0;
        }
    
        #border-box {
          background-clip: border-box;
        }
    
        #padding-box {
          background-clip: padding-box;
        }
    
        #content-box {
          background-clip: content-box;
        }
    
        /* 外围样式, 与background-clip无关 */
    
        body {
          font-family: sans-serif;
        }
    
        div {
          margin-bottom: 2em;
        }
      </style>
    
    </head>
    
    <body>
      <h2>background-clip: border-box;</h2>
      <div id="border-box">
        <p>This paragraph is the content.</p>
      </div>
    
      <h2>background-clip: padding-box;</h2>
      <div id="padding-box">
        <p>This paragraph is the content.</p>
      </div>
    
      <h2>background-clip: content-box;</h2>
      <h3>browser default paragraph margins</h3>
      <div id="content-box">
        <p>This paragraph is the content.</p>
      </div>
    
      <h2>background-clip: content-box;</h2>
      <h3>paragraph is set to margin: 0;</h3>
      <div id="content-box">
        <p class="nomargin">This paragraph is the content.</p>
      </div>
    </body>
    
    </html>

    background-clip: border-box;

    This paragraph is the content.

    background-clip: padding-box;

    This paragraph is the content.

    background-clip: content-box;

    浏览器默认段落margin值

    This paragraph is the content.

    background-clip: content-box;

    段落设置 margin: 0;

    This paragraph is the content.

    默认情况下或者设置为background-clip:border-box;,黄色背景一直延伸到边框的外边缘。请注意边框看起是绿色的,是因为它下方有黄色背景。

    当background-clip改变为padding-box时,背景颜色在元素填充(padding)结束的位置就停止了。请注意边框是蓝色的,是因为背景不允许进入边框区域。

    使用background-clip:content-box;,背景颜色仅仅适用于div的内容,在本例中是单个段落元素。div的填充和边框并没有背景颜色。但是,还有值得一提的小细节:颜色延伸到内容的空白区域。查看第一个和第二个例子与使用content-box之间的差异。

    第一个content-box示例,浏览器默认margin值应用于段落,背景在段落margin区域之外剪切(这里是指背景区域包括了段落的margin区域,但是在段落margin之外就没有div的背景颜色区域了。)。在第二个例子中,在CSS中设置margin值为0,背景在文本边缘开始剪切。

    下面交互性展示带有背景图片的background-clip。此演示中的内容是一个较小的空div。

      <div class="box " id='border-box'>
        <div class="little_box"></div>
      </div>
      <div class="box " id='padding-box'>
        <div class="little_box"></div>
      </div>
      <div class="box " id='content-box'>
        <div class="little_box"></div>
      </div>
    

      

        .box {
          position: relative;
          background: #545454 url(images/clipboard.png);
          height: 200px;
           200px;
          margin: 0 auto;
          border: 18px solid rgba(0, 0, 0, 0.2);
          background-clip: border-box;
          background-origin: border-box;
          background-size: cover;
          background-repeat: no-repeat;
          padding: 30px;
          margin:2em auto;
        }
    
        .little_box {
          text-align: center;
          color: white;
          font-size: 1.5em;
           100%;
          height: 100%;
          padding: 4px;
          box-sizing: border-box;
        }
    
        #border-box {
          background-clip: border-box;
        }
    
        #padding-box {
          background-clip: padding-box;
        }
    
        #content-box {
          background-clip: content-box;
        }
    

    border-box

     

    padding-box

     

    content-box

     

    此演示也是应用于background-size:cover和background-repeat:no-repeat加上background-clip来控制背景图片,否则图片将重复平铺到裁剪位置。

    文本

    有一个引擎前缀版本,可应用于将背景剪切为文本。为了看到这项工作,文本也需要透明。幸运的是,还有另外一个浏览器前缀文本颜色属性,它可以有效覆盖颜色,由于它有一个回退使其可以安全使用。

    .background-clip-text { 
      /* 如果我们可以裁剪, 就那么做吧 */
      -webkit-text-fill-color: transparent;
      -webkit-background-clip: text;
      /* 通过文本会展示什么
          ~ 或者 ~
        那个元素的背景是什么 */
      background: whatever;
    
      /* 回退文本颜色
          ~ 或者 ~
          文本的实际颜色,它更适合在背景上起作用 */
      color: red;
     
    }
    

    Firefox, Chrome, and Safari 支持这个属性.

    <!DOCTYPE html>
    <html lang="zh-CN">
    
    <head>
      <meta charset="UTF-8">
      <title>background-clip</title>
      <meta name='description' content='background-clip'>
      <meta name='keywords' content='background-clip'>
      <style>
        @import url(https://fonts.googleapis.com/css?family=Syncopate);
    
        body {
          background: black;
          text-align: center;
          padding: 120px 20px;
        }
    
        h1 {
          display: inline-block;
          font-size: 80px;
          line-height: 0.9;
          padding: 20px;
          font-family: 'Syncopate', sans-serif;
          text-transform: uppercase;
          background: radial-gradient(circle farthest-corner at center center,
              white,
              #111) no-repeat;
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;
        }
      </style>
    
    </head>
    
    <body>
    
      <h1>mega<br>fancy</h1>
    
    </body>
    
    </html>
    

      

  • 相关阅读:
    Python--__init__方法
    Python--面向对象编程
    用R语言对NIPS会议文档进行聚类分析
    docker oracle install
    java 删除字符串左边空格和右边空格 trimLeft trimRight
    mysql 表名和字段、备注
    docker学习
    shell爬虫
    shell 解析json
    SecureCRT 7.1.1和SecureFx key 亲测可用
  • 原文地址:https://www.cnblogs.com/f6056/p/11420034.html
Copyright © 2011-2022 走看看