美文网首页
阅读CSS Secrets(七)

阅读CSS Secrets(七)

作者: _陈慧敏 | 来源:发表于2015-12-18 10:41 被阅读80次

连续图片边框

2.png

大家看到这张图 一开始的想法是怎么去实现呢
1.可以使用div+div来实现,外div设置背景图和padding 内div放置内容、设置背景颜色和padding即可达到效果

<div class="something">
    <div>
        I have a nice stone art border,don't i look pretty
    </div>
</div>
.something{
  background: url(1.png);
  background-size: cover;
  padding:1em;
  width:200px;
}
.something>div{
  background: white;
  padding:1em;
}  

但这种实现方法并不是最佳的,这不仅需要混合样式,而且需要额外增加一个html并不是一个理想的办法。
那我们如何只使用一个div来实现这种效果呢

我们可以使用渐变+图片+clip+origin来实现

<div class="something">
    I have a nice stone art border,don't i look pretty
</div>
.something{
    background: linear-gradient(white,white),url(1.png);
    border:1em solid transparent;
    background-size: cover;
    padding:1em;
    width:200px;
    background-clip: padding-box,border-box;
    background-origin: border-box;
}

首先,我们使用background来制作2种背景,排前面的z-index值大点,用透明的border来实现边框,当我不用clip 和origin时,此时,padding部分颜色和border部分颜色都是白色,本来应该还有图片,当时被遮在下面了

3.png

这时候我们把背景颜色包住的范围改变下,即改变clip属性,使白色来包住padding+content中的东西,而背景图片可以影响border,

background-clip: padding-box,border-box;

加上这一条属性后,距离我们想要的效果很接近了

5.png

为什么会这样子呢,因为background的开始平铺的点是以padding的左上为(0,0)点,所以 我们看到的效果都是平铺后的效果,我们把背景图片起始点改变成border-box即可以达到我们想要的效果

6.png

将部分代码合并,可以减少大量代码,不过显示效果有点不同

.something{
    background: linear-gradient(white,white) padding-box,
                url(1.png) border-box 0 / cover;
    border:1em solid transparent;
    padding:1em;
    width:200px;
}
7.png

边框可以使用图片来显示,也可以使用渐变色来生成

.something{
    width:200px;
    padding: 1em; 
    border: 1em solid transparent; 
    background: linear-gradient(white, white) padding-box, 
    repeating-linear-gradient(-45deg, 
    red 0, red 12.5%, 
    transparent 0, transparent 25%, 
    #58a 0, #58a 37.5%, 
    transparent 0, transparent 50%) 
    0 / 5em 5em; 
}

单用一个div 也可以实现这么好看实用的效果!


8.png

相关文章

  • 阅读CSS Secrets(七)

    连续图片边框 大家看到这张图 一开始的想法是怎么去实现呢1.可以使用div+div来实现,外div设置背景图和pa...

  • 阅读CSS Secrets(二)

    如何减少不必要的媒体查询 使用百分比代替固定宽度,当无法实现的时候,可以使用窗口的相对单位(vw,wh,vmin,...

  • 阅读CSS Secrets(三)

    inner rounding 看到这个图会怎么做?外面的框的尖的,里面的框的有弧度的最简单的办法一个div中嵌套一...

  • 阅读CSS Secrets(四)

    使用CSS制作条纹背景图 prerequisitesCSS linear gradients,background...

  • 阅读CSS Secrets(五)

    Complex background patterns复杂的背景组合 网格,栅格 原理:用渐变色来生成背景图片,2...

  • 阅读CSS Secrets(六)

    (伪随机背景) 随机的背景比有规则的背景看起来更加自然,然而如何去制作随机背景呢。 首先做一个四色条纹 这是一个重...

  • 阅读CSS Secrets(一)

    CSS编码提示 减少重复的代码一个重要的组成部分就是尽可能减少必要的修改看下面一个例子 当属性相互依赖的时候,尽量...

  • 阅读CSS Secrets(十)

    Cutout corners角 首先做一个最简单的,多边形,然后右下角一个边角 方法一:使用渐变来做,斜角度,然后...

  • 阅读CSS Secrets(八)

    灵活的椭圆 我们都知道,在一个正方形的时候,定义一个border-radius的值大于等于一半的宽度后就可以生成一...

  • 阅读CSS Secrets(九)

    平行四边形 这里需要用到css3的transform属性 使用skewY来制作跟向Y轴倾斜的四边形 多个div然后...

网友评论

      本文标题:阅读CSS Secrets(七)

      本文链接:https://www.haomeiwen.com/subject/ssuphttx.html