玉米地里吃了亏 發表於 2026-5-3 22:16:50

关于css中的 background-attachment 属性详解

<h2>1、background-attachment的官方说明</h2>
<p>设置背景图像是否固定或者随着页面的其余部分滚动</p>
<p>这句话很简洁,简洁到我无法去理解,所以我决定用我自己的想法去理解。</p>
<h2>2、background-attachment的值</h2>
<p>background-attachment有三个值:</p>
<ul><li>scroll:背景图片随着页面的滚动而滚动,这是默认的。</li><li>fixed:背景图片不会随着页面的滚动而滚动。</li><li>local:背景图片会随着元素内容的滚动而滚动。</li></ul>
<h2>3、关于个人的理解</h2>
<p>大家先来看看我的html代码:</p>
<div class="jb51code"><pre class="brush:xhtml;">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class="div1"&gt;
      &lt;p&gt;1&lt;/p&gt;&lt;p&gt;1&lt;/p&gt;
      &lt;p&gt;1&lt;/p&gt;&lt;p&gt;1&lt;/p&gt;
      &lt;p&gt;1&lt;/p&gt;&lt;p&gt;1&lt;/p&gt;
      &lt;p&gt;1&lt;/p&gt;&lt;p&gt;1&lt;/p&gt;
      &lt;p&gt;1&lt;/p&gt;&lt;p&gt;1&lt;/p&gt;
      &lt;p&gt;1&lt;/p&gt;&lt;p&gt;1&lt;/p&gt;
      &lt;p&gt;1&lt;/p&gt;&lt;p&gt;1&lt;/p&gt;
      &lt;p&gt;1&lt;/p&gt;&lt;p&gt;1&lt;/p&gt;
      &lt;p&gt;1&lt;/p&gt;&lt;p&gt;1&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class="div2"&gt;&lt;/div&gt;
    &lt;style&gt;
      .div1 {
             background-image: url("../img/qier.png");
             width: 100px;
             height: 400px;
             overflow: scroll;
      }
      .div2{
            background-color: white;
            width: 100px;
            height: 3000px;
      }
    &lt;/style&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div>
<p>大家可以看见,这个html里面有两个div,第一个div里面有很多p标签,目的是为了让overflow:scroll 能起作用,同时也设置宽高和一张背景图片(像素为100*100)。第二个div,目的为了让窗口可以滚动。</p>
<p>大家也可以直接复制我的代码去看看效果。</p>
<p>页面效果如下:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202310/2023101016324573.png" /></p>
<p>可以看见,盒子内部和窗口都可以滚动</p>
<h3>&nbsp;3.1、默认值 scroll</h3>
<p>背景图片随着页面的滚动而滚动</p>
<p>当我们滚动div里面的滚动条时,发现图片不会动</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202310/2023101016324574.png" /></p>
<p>而当我们滚动窗口的滚动条时,发现图片会跟着动</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202310/2023101016324575.png" /></p>
<p>这就是 background-attachment:scroll 的效果</p>
<h3>3.2、fixed</h3>
<p>背景图片不会随着页面的滚动而滚动</p>
<p>我们给予div&nbsp;background-attachment:fixed 属性</p>
<div class="jb51code"><pre class="brush:css;">      .div1 {
             background-image: url("../img/qier.png");
             width: 100px;
             height: 400px;
             overflow: scroll;
             background-attachment: fixed;
      }</pre></div>
<p>我们保存刷新页面,然后继续进行上面的操作</p>
<p>当我们滚动div里面的滚动条时,发现图片还是不会动。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202310/2023101016324576.png" /></p>
<p>而当我们滚动窗口的滚动条时,发现图片不会跟着动,而是固定在窗口一样</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202310/2023101016324677.png" /></p>
<p>这就是 background-attachment:fixed 的效果</p>
<h3>3.3、local</h3>
<p>背景图片会随着元素内容的滚动而滚动</p>
<p>我们给予div&nbsp;background-attachment:local 属性</p>
<div class="jb51code"><pre class="brush:css;">      .div1 {
             background-image: url("../img/qier.png");
             width: 100px;
             height: 400px;
             overflow: scroll;
             background-attachment: local;
      }</pre></div>
<p>我们保存刷新页面,然后继续进行上面的操作</p>
<p>当我们滚动div里面的滚动条时,发现图片会跟着动。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202310/2023101016324678.png" /></p>
<p>&nbsp;而当我们滚动窗口的滚动条时,发现图片也会跟着动</p>
<p>这就是 background-attachment:local 的效果</p>
<h2>4、个人总结</h2>
<p>background-attachment的值,以及相对于的效果相信大家已经感受到了,实践出真知,动手操作一遍就懂了。</p>
<p>在日常的使用中,还是background-attachment:fixed 使用的最多,因为这个属性更多的时候是跟background-image等 背景相关的属性一起使用,目的更多的是设置背景图,而一般背景图是固定的,不会随窗口的滚动而滚动,就像是&ldquo;镶&rdquo;在窗口的一样,所以background-attachment:fixed 是我学习和工作以来使用最多的,而其他的几乎没有使用的机会(也可能是我个人的接触有限)。</p>
頁: [1]
查看完整版本: 关于css中的 background-attachment 属性详解