前言

大家好,今天与大家一起学习分享css3中的background-size,background-clip使用与实践。

知识点讲解

background-size

一般情况下,我们设置的背景图与背景为完全匹配,但也有情况是可能不匹配的,或者大或者小,那么当尺寸不匹配时,你希望如何控制尺寸呢?这就是background-size的价值所在。
可能取值:px|percentage|cover|contain,详细说明如下:

取值 说明
px 设置背景图像的宽度和高度,如果只设置一个,第二个被认为auto
percentage 设置背景图像的宽度和高度,如果只设置一个,第二个被认为auto
contain 缩放背景图像,让其能显示完整
cover 缩放其图像,让其能完全覆盖区域,但可能背景显示不全
  • 兼容性:ie9+以及现代浏览器

    background-clip

    背景裁剪一般用于控制其背景的显示策略,显示覆盖区域,常规默认是覆盖全部也就是border-box的。
    可能取值:padding-box|content-box|border-box,与box-sizing一致的取值范围。

  • 兼容性:ie9+以及现代浏览器

    代码实践

    场景讲解

    在下面的实践中我们主要实现一个全屏背景中的注册窗,效果有以下几点是需要完成的:

  • 背景全屏效果

  • 背景模糊效果
  • 注册窗水平垂直居中
  • 注册表格内容与边框之间有透明背景映射

    方案讲解

  • 背景全屏效果:background-size:cover;

  • 背景模糊效果,用filter:blur(10px)实现.其他的有兴趣的可以百度css3 filter ,查看菜鸟教程或者w3c介绍。
    其语法如下:filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();
  • 注册窗水平垂直居中用绝对定位加margin修正(略)
  • 背景裁剪,background-clip:content-box;

    代码方案

    1. <!--特别说明,因为filter效果会影响到子元素,所以我们背景层单独用了一个mask样式元素-->
    2. <div class="mask">
    3. </div>
    4. <form class="m-login">
    5. <h2>立即注册</h2>
    6. </form>
    7. <style>
    8. *{
    9. margin:0;
    10. padding:0;
    11. border:none;
    12. box-sizing:border-box;
    13. }
    14. html,body{
    15. height:100%;
    16. }
    17. .mask{
    18. height:100%;
    19. background:url(https://study.miaov.com/img/pc/remote_chapter/bannerBg.png) no-repeat center;
    20. background-size:cover;
    21. position:relative;
    22. filter: blur(6px);
    23. }
    24. .m-login{
    25. position:absolute;
    26. width:500px;
    27. height:250px;
    28. border-radius:10px;
    29. border:1px solid #fff;
    30. top:50%;
    31. left:50%;
    32. margin-top:-100px;
    33. margin-left:-250px;
    34. padding:5px;
    35. background:#fff;
    36. background-clip:content-box;
    37. font-size:14px;
    38. h2{
    39. text-align:center;
    40. line-height:40px;
    41. }
    42. }
    43. </style>

    效果图

    background-size,clip - 图1

    代码案例地址

  • code案例

    参考文档

  • w3c background-size