风趣的CSS标题(2): 从条纹边框的落到实处谈盒

2019-09-19 05:09 来源:未知

2、类似上边那几个图形,只利用一个标签,能够某些许种达成格局:

彩民之家高手论坛 1

只要大家的单标签为 div:

XHTML

<div></div>

1
<div></div>

概念如下通用 CSS:

CSS

div{ position:relative; width: 180px; height: 180px; }

1
2
3
4
5
div{
    position:relative;
    width: 180px;
    height: 180px;
}

这一题首要考察的是盒子模型 Box Model 与 背景 background 的涉嫌,以及选择 background-clip 退换背景的填充格局。

background 在 Box Model 中,他是遍布整个因素的盒子区域的,实际不是从 padding 内部伊始(也正是说从 border 就起来啦),只不超过实际线边框(solid)部分遮住了一些 background ,所以大家选择虚线边框(dashed)就足以看出背景象是从 border 内部开端的。

我们给 div 加多如下样式:

CSS

div{ background:#9c27b0; border:20px dashed #2196f3; }

1
2
3
4
div{
    background:#9c27b0;
    border:20px dashed #2196f3;
}

结果如下:
彩民之家高手论坛 2

但有一点点亟需留心,background-color 是从要素的边框左上角起到右下角止,而 background-image 却不相同等,他是从 padding 边缘的左上角起而到 border 的右下角边缘止。

background image 的绘图中有三个因素决定了绘图区域:

  • background positioning area。background-origin 属性决定了那么些相对固化地点,默以为 padding-box。所以暗许的背景图片绘制是从 padding box 的左上顶点开首的。
  • background painting area。background-clip 属性决定了绘图区间,默感到 border-box。所以在background-repeat: repeat 的情状下:

The image is repeated in this direction as often as needed to cover the background painting area.

啊,什么看头啊,你可以戳进那几个 demo 看看,平常景况下的背景图填充如下:

彩民之家高手论坛 3

本来,这几个填充法规是足以通过 background-clip 改变的。

background-clip 设置成分的背景(背景图片或颜色)是不是延长到边框下面。

语法:

CSS

{ background-clip: border-box; // 背景延伸到边框外沿(可是在边框之下) background-clip: padding-box; // 边框上边未有背景,即背景延伸到内边距外沿。 background-clip: content-box; // 背景裁剪到内容区 (content-box) 外沿。 }

1
2
3
4
5
{
    background-clip: border-box;  // 背景延伸到边框外沿(但是在边框之下)
    background-clip: padding-box; // 边框下面没有背景,即背景延伸到内边距外沿。
    background-clip: content-box; // 背景裁剪到内容区 (content-box) 外沿。
}

XHTML

<!-- 填充与background-clip属性有关 --> <!-- 背景象的填充准绳,默以为 border-box 从盒子最左上角到最右下角 --> <div class="bgColor"></div> <div class="bgColor contentBox"></div> <div class="bgColor paddingBox"></div> <!-- 背景图的填写法则,默感到 border-box 从盒子的左上角padding到最右下角 --> <div class="bgImg"></div> <div class="bgImg content博克斯"></div> <div class="bgImg paddingBox"></div>

1
2
3
4
5
6
7
8
9
10
11
12
<!-- 填充与background-clip属性有关 -->
<!-- 背景色的填充规则,默认为 border-box
            从盒子最左上角到最右下角 -->
<div class="bgColor"></div>
<div class="bgColor contentBox"></div>
<div class="bgColor paddingBox"></div>
 
<!-- 背景图的填充规则,默认为 border-box
            从盒子的左上角padding到最右下角 -->
<div class="bgImg"></div>
<div class="bgImg contentBox"></div>
<div class="bgImg paddingBox"></div>

CSS

div{ width:150px; height:150px; margin:50px 10px;; border:20px dashed rgba(0, 0, 0, 0.5); float:left; padding:10px; // background-size:cover; } .bgColor{ background-color:#ff7300; // background-clip:border-box; } .bgImg{ background-color:#ff7300; background-image:url(''); background-repeat:no-repeat; // background-clip:border-box; } .contentBox{ background-clip:content-box; } .paddingBox{ background-clip:padding-box; }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
div{
    width:150px;
    height:150px;
    margin:50px 10px;;
    border:20px dashed rgba(0, 0, 0, 0.5);
    float:left;
    padding:10px;
    // background-size:cover;
}
.bgColor{
    background-color:#ff7300;
    // background-clip:border-box;
}
.bgImg{    
    background-color:#ff7300;
    background-image:url('http://www.qq1234.org/uploads/allimg/150602/8_150602171754_2.jpg');
    background-repeat:no-repeat;
    // background-clip:border-box;
}
.contentBox{
    background-clip:content-box;
}
.paddingBox{
    background-clip:padding-box;
}

See the Pen CssBackground by Chokcoco (@Chokcoco) on CodePen.

后续说回本题,接下去,只需求将中等有个别填充为深紫灰就可以,这几个用伪成分能够轻便做到,所以,个中八个主意如下:

CSS

div{ background:#9c27b0; border:20px dashed #2196f3; } div::after{ content:""; position:absolute; top:0; left:0; bottom:0; right:0; background:#fff; }

1
2
3
4
5
6
7
8
9
10
11
12
13
div{
    background:#9c27b0;
    border:20px dashed #2196f3;
}
div::after{
    content:"";
    position:absolute;
    top:0;
    left:0;
    bottom:0;
    right:0;
    background:#fff;
}

  

css3 UI 修饰——回顾,css3ui修饰回看

1.box-shadow 属性向框增添多少个要么多少个黑影。
  语法: box-shadow: h-shadow v-shadow blur spread color inset
    h-shadow 必得,水平阴影的岗位,允许负值。
    v-shadow 必需,垂直阴影的职位,允许负值。
    blur 可选 模糊距离。
    spread 可选,阴影的尺码。
    color 可选,阴影的颜料。
    inset 可选,将表面阴影(outset) 改为剧情步阴影。
  示例:
    <style>
      .shadow{width: 300px; height: 150px; margin: 0 auto;}
      .shadow img{ box-shadow: 3px 3px 4px #000;}
    </style>
    <div class="shadow">
      <img src="1.png">
    </div>
  结果:如图

      彩民之家高手论坛 4

    

  示例:
    <style>
      .shadow{width: 300px; height: 150px; margin: 0 auto;
        background: yellow; box-shadow: 4px 4px 3px #000 inset;}
    </style>
    <div class="shadow">
    </div>
  结果:如图

    彩民之家高手论坛 5  

2.border-radius

    成分加多圆角边框。
      语法:border-radius: 1-4 length | % / 1-4 length | %;
      注意:四个值的顺序为,左上角,右上角,右下角,左下角。
        border-radius: 2em 1em 4em / 0.5em 3em;
          等价于:
        border-top-left-radius: 2em 0.5em;
        border-top-right-radius: 1em 3em;
        border-bottom-right-radius:4em 0.5em;
        border-bottom-left-radius:1em 3em;
        border-radius帮忙百分比率 %
      示例:
        <style>
          .radius-test1 { width: 100px; height: 100px;
                   margin: 0 auto; border: 50px solid #cd0000;
                    border-radius: 50%; }
        </style>
        <div class="radius-test1"></div>
      结果:如图

        彩民之家高手论坛 6

3.border-image
  成分边框背景
  用于安装属性:
    border-image-source 用在边框的图纸的路子
    border-image-slice 图片边框向内偏移
    border-image-width 图片边框的增长幅度
    border-image-outset 边框图像区域超过边框的量
    border-image-repeat 图像边框是还是不是平铺(repeated)
        铺满(rounded )可能拉伸(stretched)暗许。
    边框将border-image 分成了9部分: border-top-image,border-right-image
      border-bottom-image , border-left-image, border-top-left-image
      border-top-right-image, border-bottom-left-image,
      border-bottom-right-image 位于多个正方向的尚未出示效果,不会平铺...
  示例:
    <style>
      .border_image{width:400px; height:100px;border:1em double orange;border-image:url(1.png) 27;}
    </style>
    <div class="border_image"></div>
  结果:如图

    彩民之家高手论坛 7

  示例:(平铺 round)
    <style>
      .border_image{width:400px; height:100px;border:1em double orange;border-image:url(1.png) 27 round;}
    </style>
    <div class="border_image"></div>
  结果:如图

    彩民之家高手论坛 8

  

  示例:(平铺 repeat)
    <style>
      .border_image{width:400px; height:100px;border:1em double orange;border-image:url(1.png) 27 repeat;}
    </style>
    <div class="border_image"></div>
  结果:如图

    彩民之家高手论坛 9

4.gradient 渐变

  分为linear-gradient(线性渐变) 和 radial-gradient (径向渐变)

    linear-gradient
      语法background: -webkit-linear-gradient( top,#ccc,#000);
        参数: 共八个参数 第贰个参数表示为线性渐变的取向,top是从上往下,
            left 是从左到右 借使定义成left top,那正是从左上角到右下角。
            第二个和第多个参数分别是起源颜色和终极颜色。
        示例:
          <style>
              .gradient{width:300px; height: 180px;
                background:-webkit-linear-gradient(left,
                red 50px, yellow 200px);}
          </style>
          <div class="gradient"></div>
        结果:如图

          彩民之家高手论坛 10

      示例:能够填充角度
        <style>
            .gradient{width:300px; height: 180px;
                background:-webkit-linear-gradient(45deg,
                red 50px, yellow 200px);}
        </style>
        <div class="gradient"></div>
        结果:如图

          彩民之家高手论坛 11

    radial-gradient 径向渐变。
      渐变的模样是ellipse(表示星型) farthest-cormer(表示到最远的角落)
      语法:radial-gradient(red, green, blue);
      示例:
        <style>
            .gradient{width:300px; height: 180px;
              background:-webkit-radial-gradient
              (circle, red, yellow, green);}
        </style>
        <div class="gradient"></div>
      结果:如图

        彩民之家高手论坛 12

      示例:ellipse椭圆
          <style>
            .gradient{width:300px; height: 180px;
              background:-webkit-radial-gradient(
                ellipse, red, yellow, green);}
          </style>
          <div class="gradient"></div>
      结果:如图

        彩民之家高手论坛 13

      示例: 区别尺寸大小关键字的运用。
        <style>
          .gradient{width:300px; height:180px;background:
              -webkit-radial-gradient(60% 55%, closest-
                side,blue,green,yellow,black);}
        </style>
        <div class="gradient"></div>
      结果:如图

        彩民之家高手论坛 14  

    重复的通往渐变
      repeating-radial-gradient() 函数用于重复径向渐变
    示例:
      <style>
        .gradient{width:300px; height: 180px;
            background: -webkit-repeating-radial-
            gradient(red, yellow 10%, green 15%);}
      </style>
      <div class="gradient"></div>
    结果:如图

      彩民之家高手论坛 15

    进程条小效用
      <style>
        .wrap{width:300px;height:25px;
            overflow:hidden;border:1px
            solid #000;}
        .box{width:400px;height:30px;
            background:-webkit-repeating-
            linear- gradient(15deg,green 0,
            green 10px,#fff 10px,#fff
            20px); transition:3s;}
        .wrap:hover .box{ margin-
              left:-100px;}
      </style>
      <div class="wrap">
        <div class="box"></div>
      </div>
     结果:如图

      彩民之家高手论坛 16

5.background-origin
  规定background-position 属性相对于 什么岗位来恒定
    语法:background-origin: padding-box|border-box|content-box;
        padding-box 背景图像相对于内边距框来定位。
        border-box 背景图像嫌贵对于
        content-box 背景图像相对月剧情框来定位
    示例:
      <style>
        .background_origin{width: 300px;height: 150px;border:1px solid black;padding:35px;background-image:url('1.png');
            background-repeat:no-repeat;background-position:left;background-origin:content-box;}
      </style>
      <div class="background_origin"></div>
    结果:如图

      彩民之家高手论坛 17

6.background-clip
  规定背景的绘图区域
    值: border-box 背景被减弱到边框盒
       padding-box 背景被裁剪到内边距框
      content-box 背景被裁剪到内容框
      no-clip:从border区域向外裁剪背景。
    示例:
      <style>
        .background_clip{width:200px;height:50px;padding:50px;background-color:yellow;
                background-clip:content-box;border:2px solid #92b901;}
      </style>
      <div class="background_clip"></div>
    结果:如图

      彩民之家高手论坛 18

     demo下载

UI 修饰——回看,css3ui修饰回看 1.box-shadow 属性向框增加三个只怕多少个黑影。 语法: box-shadow: h-shadow v-shadow blur spread color inset h-shadow 必...

幽默的CSS标题(2): 从条纹边框的实现谈盒子模型

2016/09/29 · CSS · CSS

正文作者: 伯乐在线 - chokcoco 。未经作者许可,禁止转发!
招待参加伯乐在线 专栏撰稿人。

开本连串,斟酌一些交相辉映的 CSS 标题,抛开实用性来讲,一些难题为了加大学一年级下消除难点的思绪,另外,涉及一些便于忽略的 CSS 细节。

解题不思虑包容性,标题天马行空,想到怎样说怎么,若是解题中有您以为到生僻的 CSS 属性,赶紧去补习一下啊。

不断更新,不断更新,不断更新,主要的事体说一遍。

商酌一些妙不可言的CSS题目(1): 左边竖条的落到实处际情形势

持有失水准汇总在自身的 Github 。

5.background-origin
  规定background-position 属性相对于 什么岗位来恒定
    语法:background-origin: padding-box|border-box|content-box;
        padding-box 背景图像相对于内边距框来定位。
        border-box 背景图像嫌贵对于
        content-box 背景图像绝对月剧情框来恒定
    示例:
      <style>
        .background_origin{width: 300px;height: 150px;border:1px solid black;padding:35px;background-image:url('1.png');
            background-repeat:no-repeat;background-position:left;background-origin:content-box;}
      </style>
      <div class="background_origin"></div>
    结果:如图

    彩民之家高手论坛 19

  分为linear-gradient(线性渐变) 和 radial-gradient (径向渐变)

     demo下载

    

      彩民之家高手论坛 20

    彩民之家高手论坛 21

      彩民之家高手论坛 22

      示例:ellipse椭圆
          <style>
            .gradient{width:300px; height: 180px;
              background:-webkit-radial-gradient(
                ellipse, red, yellow, green);}
          </style>
          <div class="gradient"></div>
      结果:如图

          彩民之家高手论坛 23

  规定背景的绘图区域
    值: border-box 背景被缩减到边框盒
       padding-box 背景被裁剪到内边距框
      content-box 背景被裁剪到内容框
      no-clip:从border区域向外裁剪背景。
    示例:
      <style>
        .background_clip{width:200px;height:50px;padding:50px;background-color:yellow;
                background-clip:content-box;border:2px solid #92b901;}
      </style>
      <div class="background_clip"></div>
    结果:如图

    彩民之家高手论坛 24  

    进程条小效能
      <style>
        .wrap{width:300px;height:25px;
            overflow:hidden;border:1px
            solid #000;}
        .box{width:400px;height:30px;
            background:-webkit-repeating-
            linear- gradient(15deg,green 0,
            green 10px,#fff 10px,#fff
            20px); transition:3s;}
        .wrap:hover .box{ margin-
              left:-100px;}
      </style>
      <div class="wrap">
        <div class="box"></div>
      </div>
     结果:如图

    重复的通往渐变
      repeating-radial-gradient() 函数用于重复径向渐变
    示例:
      <style>
        .gradient{width:300px; height: 180px;
            background: -webkit-repeating-radial-
            gradient(red, yellow 10%, green 15%);}
      </style>
      <div class="gradient"></div>
    结果:如图

          彩民之家高手论坛 25

    成分增加圆角边框。
      语法:border-radius: 1-4 length | % / 1-4 length | %;
      注意:四个值的顺序为,左上角,右上角,右下角,左下角。
        border-radius: 2em 1em 4em / 0.5em 3em;
          等价于:
        border-top-left-radius: 2em 0.5em;
        border-top-right-radius: 1em 3em;
        border-bottom-right-radius:4em 0.5em;
        border-bottom-left-radius:1em 3em;
        border-radius补助百分比率 %
      示例:
        <style>
          .radius-test1 { width: 100px; height: 100px;
                   margin: 0 auto; border: 50px solid #cd0000;
                    border-radius: 50%; }
        </style>
        <div class="radius-test1"></div>
      结果:如图

        彩民之家高手论坛 26

      彩民之家高手论坛 27

  示例:(平铺 round)
    <style>
      .border_image{width:400px; height:100px;border:1em double orange;border-image:url(1.png) 27 round;}
    </style>
    <div class="border_image"></div>
  结果:如图

  示例:
    <style>
      .shadow{width: 300px; height: 150px; margin: 0 auto;
        background: yellow; box-shadow: 4px 4px 3px #000 inset;}
    </style>
    <div class="shadow">
    </div>
  结果:如图

4.gradient 渐变

        彩民之家高手论坛 28

  示例:(平铺 repeat)
    <style>
      .border_image{width:400px; height:100px;border:1em double orange;border-image:url(1.png) 27 repeat;}
    </style>
    <div class="border_image"></div>
  结果:如图

      彩民之家高手论坛 29

    linear-gradient
      语法background: -webkit-linear-gradient( top,#ccc,#000);
        参数: 共多少个参数 第二个参数表示为线性渐变的样子,top是从上往下,
            left 是从左到右 假使定义成left top,那便是从左上角到右下角。
            第二个和第五个参数分别是源点颜色和极端颜色。
        示例:
          <style>
              .gradient{width:300px; height: 180px;
                background:-webkit-linear-gradient(left,
                red 50px, yellow 200px);}
          </style>
          <div class="gradient"></div>
        结果:如图

2.border-radius

    radial-gradient 径向渐变。
      渐变的造型是ellipse(表示正方形) farthest-cormer(表示到最远的角落)
      语法:radial-gradient(red, green, blue);
      示例:
        <style>
            .gradient{width:300px; height: 180px;
              background:-webkit-radial-gradient
              (circle, red, yellow, green);}
        </style>
        <div class="gradient"></div>
      结果:如图

        彩民之家高手论坛 30

    彩民之家高手论坛 31

3.border-image
  成分边框背景
  用于安装属性:
    border-image-source 用在边框的图样的路线
    border-image-slice 图片边框向内偏移
    border-image-width 图片边框的增长幅度
    border-image-outset 边框图像区域赶上边框的量
    border-image-repeat 图像边框是或不是平铺(repeated)
        铺满(rounded )或然拉伸(stretched)暗中同意。
    边框将border-image 分成了9部分: border-top-image,border-right-image
      border-bottom-image , border-left-image, border-top-left-image
      border-top-right-image, border-bottom-left-image,
      border-bottom-right-image 位于多少个正方向的未有显得效果,不会平铺...
  示例:
    <style>
      .border_image{width:400px; height:100px;border:1em double orange;border-image:url(1.png) 27;}
    </style>
    <div class="border_image"></div>
  结果:如图

      示例:能够填充角度
        <style>
            .gradient{width:300px; height: 180px;
                background:-webkit-linear-gradient(45deg,
                red 50px, yellow 200px);}
        </style>
        <div class="gradient"></div>
        结果:如图

        彩民之家高手论坛 32  

      示例: 分裂尺寸大小关键字的接纳。
        <style>
          .gradient{width:300px; height:180px;background:
              -webkit-radial-gradient(60% 55%, closest-
                side,blue,green,yellow,black);}
        </style>
        <div class="gradient"></div>
      结果:如图

1.box-shadow 属性向框增多三个可能多少个黑影。
  语法: box-shadow: h-shadow v-shadow blur spread color inset
    h-shadow 必得,水平阴影的地点,允许负值。
    v-shadow 必需,垂直阴影的岗位,允许负值。
    blur 可选 模糊距离。
    spread 可选,阴影的尺码。
    color 可选,阴影的水彩。
    inset 可选,将表面阴影(outset) 改为剧情步阴影。
  示例:
    <style>
      .shadow{width: 300px; height: 150px; margin: 0 auto;}
      .shadow img{ box-shadow: 3px 3px 4px #000;}
    </style>
    <div class="shadow">
      <img src="1.png">
    </div>
  结果:如图

      彩民之家高手论坛 33

6.background-clip

TAG标签: css3 css css3 ui 修饰
版权声明:本文由彩民之家高手论坛发布于前端知识,转载请注明出处:风趣的CSS标题(2): 从条纹边框的落到实处谈盒