当前位置:Gxlcms > css > 详解cssbackground-attachment属性进阶

详解cssbackground-attachment属性进阶

时间:2021-07-01 10:21:17 帮助过:275人阅读

这篇文章详解css background-attachment属性进阶

前提是定义了background-image属性,然后用background-attachment来指明背景图的位置是固定于视口的,还是随着包含块移动的。可简单理解为定义背景图片随滚动轴的移动方式。


取值:

scroll:默认值,背景图相对于元素固定,背景随页面滚动而移动,即背景和内容绑定。
fixed:背景图相对于视口固定,所以随页面滚动背景不动,相当于背景被设置在了body上。
local:背景图相对于元素内容固定,
inhert:继承,没什么说的。

该属性可以应用于任何元素。

一、scroll【背景图滚动】
设置background-attachment:scroll,背景图是相对于元素自身固定,内容动时背景图也动。附加到元素的border。

详解css background-attachment属性进阶

local

Note:

对于scroll,一般情况背景随内容滚动,但是有一种情况例外。

对于可以滚动的元素(设置为overflow:scroll的元素)。当background-attachment设置为scroll时,背景图不会随元素内容的滚动而滚动。

详解css background-attachment属性进阶

二、local【滚动元素背景图滚动】
对于可以滚动的元素(设置为overflow:scroll的元素),设置background-attachment:local,则背景会随内容的滚动而滚动。

因为背景图是相对于元素自身内容定位,开始固定,元素出现滚动条后背景图随内容而滚动。


  1. <style>
  2. p{
  3. width: 200px;
  4. height: 350px;
  5. border: 1px solid red;
  6. background-image: url(img/img_tree.png);
  7. background-repeat: no-repeat;
  8. background-attachment: local;
  9. overflow: scroll;
  10. line-height: 1.5;
  11. }
  12. </style>
  13. <body>
  14. <p>
  15. 1内容超出会出现滚动条
  16. 2内容超出会出现滚动条
  17. 3内容超出会出现滚动条
  18. 4内容超出会出现滚动条
  19. 5内容超出会出现滚动条
  20. 6内容超出会出现滚动条
  21. 7内容超出会出现滚动条
  22. 8内容超出会出现滚动条
  23. 9内容超出会出现滚动条
  24. 10内容超出会出现滚动条
  25. 11内容超出会出现滚动条
  26. 12内容超出会出现滚动条
  27. 13内容超出会出现滚动条
  28. 14内容超出会出现滚动条
  29. 15内容超出会出现滚动条
  30. 16内容超出会出现滚动条
  31. 17内容超出会出现滚动条
  32. 18内容超出会出现滚动条
  33. 19内容超出会出现滚动条
  34. 20内容超出会出现滚动条
  35. </p>
  36. </body>

详解css background-attachment属性进阶

三、fixed:【背景图静止】
背景图片相对于视口固定,就算元素有了滚动条,背景图也不随内容移动。

fixed用法如下:


  1. <style>
  2. body{
  3. background-image: url(img/cartooncat.png);
  4. background-position: bottom left;
  5. background-attachment: fixed;
  6. background-repeat: no-repeat;
  7. height: 1000px;
  8. }
  9. </style>
  10. </head>
  11. <body>
  12. <h1>下拉看效果:</h1>
  13. </body>

详解css background-attachment属性进阶

或者看mozilla的demo。

这里我要强调一点我的看法:

给任何元素的背景图设置background-attachment: fixed;效果都是一样的,都是相对于视口,因为一个网页只有一个视口,该背景和元素已经没关系了,要说有关大概也只是元素不可见则背景图不可见。

四、多背景图background-attachment
也可以为多个背景图设置background-attachment


  1. body {
  2. background-image: url("img1.png"), url("img2.png");
  3. background-attachment: scroll, fixed;
  4. }

以上就是详解css background-attachment属性进阶的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行