美文网首页
第二章 背景与边框

第二章 背景与边框

作者: 惊蛰梧桐 | 来源:发表于2018-05-15 20:11 被阅读0次

    1.半透明边框

    易遗漏点:默认情况下,背景会延伸到边框所在的区域下层。
    关键属性:background-clip——设置元素的背景(背景图片或颜色)是否延伸到边框下面;值:border-box/padding-box/content-box/inherit

    border: 10px solid hsla(0, 0%, 100%, .5);
    background: white;
    background-clip: padding-box;
    

    2.多重边框

    易遗漏点:box-shadow支持逗号分隔语法,可以创建任意数量的投影

    box-shadow方案

    语法

    /* offset-x | offset-y | color */
    box-shadow: 60px -16px teal;
    
    /* offset-x | offset-y | blur-radius | color */
    box-shadow: 10px 5px 5px black;
    
    /* offset-x | offset-y | blur-radius | spread-radius | color */
    box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
    
    /* inset | offset-x | offset-y | color */
    box-shadow: inset 5em 1em gold;
    
    /* Any number of shadows, separated by commas */
    box-shadow: 3px 3px red, -1em 0 0.4em olive;
    

    outline方案

    优点:1、边框样式灵活,可以实现虚线等其他样式;2、可以通过outline-offset属性控制它跟元素边缘之间的间距,可以接收负值,因此可以实现多种效果,比如可以实现在元素内的缝边效果。

    语法

    /* style */
    outline: solid;
    
    /* color | style */
    outline: #f66 dashed;
    
    /* style | width */
    outline: inset thick;
    
    /* color | style | width */
    outline: green solid 3px;
    
    /* Global values */
    outline: inherit;
    outline: initial;
    outline: unset;
    

    3.灵活的背景定位

    应用场景:针对容器某个角对背景图片做偏移定位,或希望图片和容器的边角之间留出一定的空隙

    background-position——指定背景图片距离任意角的偏移量。

    background: url(example-img.svg) norepeat #58a;
    background-position: right 20px bottom 10px;
    

    background-origin方案

    规定了指定背景图片background-image属性的原点位置的背景相对区域。

    语法

    where
    <box> = border-box | padding-box | content-box
    
    
    background-origin: border-box
    background-origin: padding-box(默认)
    background-origin: content-box
    
    background-origin: inherit
    

    calc()方案

    CSS函数calc()可以用在任何一个需要<length><frequency><angle><time><number><integer>的地方,可以通过它来计算决定一个CSS属性的值

    background: url(example-img.svg) no-repeat;
    background-position: calc(100% - 20px) calc(100% - 10px)
    /* 以左上角偏移的思路来考虑,即实现100%-20px的水平偏移量,100%-10px的垂直偏移量 */
    

    4.边框内圆角

    应用场景:需要一个只在内侧有圆角,而边框或描边的四个角在外部仍然保持直角的形状的容器。

    实现方法一:通过两个元素实现

    实现方法二:通过box-shadow+outline实现

    注意点:border-radius是x,那么box-shadow的最小扩张半径就是(sqrt(2)-1)*x

    5.条纹背景

    垂直渐变

    background: linear-gradient(#fb3, #58a)
    
    颜色渐变
    background: linear-gradient(#fb3 40%, #58a 80%)    //设置渐变区间
    
    设置渐变区间
    background: linear-gradient(#fb3 50%, #58a 50%);    //条纹背景
    background-size: 100% 50px;
    
    条纹背景
    background: linear-gradient(#fb3 33.3%, #58a 0, #58a 66.6%, yellowgreen 0);      //三条纹背景
    background-size: 100% 50px;
    
    三条纹背景
    background: linear-gradient(to right, #FB3 33.3%, #58a 0, #58a 66.6%, yellowgreen 0);
    background-size: 50px 100%;
    
    垂直条纹
    background: linear-gradient(45deg, #fb3 50%, #58a 0);
    background-size: 50px 50px;
    
    地板砖条纹
    background: linear-gradient(45deg, #fb3 25%, #58a 0, #58a 50%, #fb3 0, #fb3 75%, #58a 0);
    background-size: 30px 30px;
    
    斜45度条纹

    更好的斜向条纹

    关键属性:repeating-linear-gradient()repeating-redial-gradient()

    background: repeating-linear-gradient(60deg, #fb3, #fb3 15px, #58a 0, #58a 30px);
    
    斜60度条纹
    background: #58a;
    background-image: repeating-linear-gradient(30deg, hsla(0,0%,100%,.1),hsla(0,0%,100%,.1) 15px, transparent 0, transparent 30px);
    
    灵活的同色系条纹

    6.复杂的背景图案

    background-image: linear-gradient(90deg, rgba(200,0,0,.5) 50%, transparent 0),linear-gradient(rgba(200,0,0,.5) 50%, transparent 0);
    background-size: 30px 30px;
    
    方格纹背景
    background-image: linear-gradient(white 2px, transparent 0),linear-gradient(90deg, white 2px, transparent 0), linear-gradient(hsla(0, 0%, 100%, .3) 1px, transparent 0), linear-gradient(90deg, hsla(0, 0%, 100%, .3) 1px, transparent 0);
    background-size: 75px 75px, 75px 75px, 15px 15px, 15px 15px;
    
    image.png

    相关文章

      网友评论

          本文标题:第二章 背景与边框

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