马黑黑 发表于 2024-3-11 18:33

认识CSS的background(四)

本帖最后由 马黑黑 于 2024-3-11 18:34 编辑 <br /><br /><style>
.ma { font: normal 18px/24px sans-serif; }
.ma p { margin: 12px 0; }
.mum { position: relative; margin: 0; padding: 10px; font: normal 16px/20px Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; color: black; background: rgba(240, 240, 240,.95); box-shadow: 2px 2px 4px gray; border: thick groove lightblue; border-radius: 6px; }
.mum ::selection { background-color: rgba(0,100,100,.35); }
.mum div { margin: 0; padding: 0; }
.mum cl-cd { display: block; position: relative; margin: 0 0 0 50px; padding: 0 0 0 10px; white-space: pre-wrap; overflow-wrap: break-word; border-left: 1px solid silver; }
.mum cl-cd::before { position: absolute; content: attr(data-idx); width: 50px; color: gray; text-align: right; transform: translate(-70px); }
.tRed { color: red; }
.tBlue { color: blue; }
.tGreen { color: green; }
.tDarkRed { color: darkred; }
.tMagenta { color: magenta; }
#showDiv {margin: 20px auto;width: 718px;height: 363px;font-size: 20px;line-height: 30px;color: navy;box-sizing: border-box;overflow-y: auto;background: rgba(100,100,0,.5) url('https://638183.freep.cn/638183/small/bg-sm.png') scroll no-repeat 10px 10px / auto;}
.btnWrap { margin: 20px auto; width: fit-content; }
.btnWrap > button { margin: 6px; width: 120px; }
</style>

<div class="ma">

<p>本节单单讨论 background-repeat 属性。上一讲简单介绍了 background-repeat 属性,它用来定义背景图像是否重复、如何重复,这里再详细介绍它的属性值及其含义等。请看:</p>

<div class='mum'>
<cl-cd data-idx="1"><span class="tBlue">background-repeat:</span> repeat; <span class="tGreen">/* xy方向都重复(缺省、默认值) */</span></cl-cd>
<cl-cd data-idx="2"><span class="tBlue">background-repeat:</span> repeat-x; <span class="tGreen">/* x方向都重复,y方向不重复 */</span></cl-cd>
<cl-cd data-idx="3"><span class="tBlue">background-repeat:</span> repeat-y; <span class="tGreen">/* y方向都重复,x方向不重复 */</span></cl-cd>
<cl-cd data-idx="4"><span class="tBlue">background-repeat:</span> no-peat; <span class="tGreen">/* xy方向都不重复 */</span></cl-cd>
<div class="tGreen"><cl-cd data-idx="5">/* ↓</cl-cd>
<cl-cd data-idx="6">   能重复时头尾两个图像固定在元素的四个边,中间均匀分布</cl-cd>
<cl-cd data-idx="7">   图像尺寸大于等于元素尺寸时此设置无效,大于时图片被剪裁</cl-cd>
<cl-cd data-idx="8"> */</cl-cd></div>
<cl-cd data-idx="9"><span class="tBlue">background-repeat:</span> space; <span class="tGreen">/* 等同于 space space,xy均这样设置 */</span></cl-cd>
<div class="tGreen"><cl-cd data-idx="10">/* ↓</cl-cd>
<cl-cd data-idx="11">   图像会根据允许的空间进行伸缩,图形会变形</cl-cd>
<cl-cd data-idx="12">   怪异属性值,不同浏览器对 round 的解析行为可能不一致</cl-cd>
<cl-cd data-idx="13">*/</cl-cd></div>
<cl-cd data-idx="14"><span class="tBlue">background-repeat:</span> round; <span class="tGreen">/* 等同于 round round,xy均这样设置 */</span></cl-cd>
</div>
<p>以上是 background-repeat 简写属性赋值举例和说明,共六个属性值。另外还有:一个继承属性值(inherit),表示继承父级元素的设置,一个取消设置(unset)属性值,一个初始设置值(initial),后两者均用于JS动态交互。针对六个属性值,我们需要注意的是,任意一个方向的图像重复设置,以及 round 属性值设置,都会从 background-position 设置或默认设置的位置开始复制,最后复制到与复制出发点相衔接(图像的右对左、下对上,但左右和上下两边的图像可能不能拼凑成完整图像,大家可以在后面的演示中观察感受);space 属性值则会令 background-position 的设置失效,图像重复总是从最上边、最左边开始。</p>
<p>最后给出一个演示示例,示例的初始设置是背景图像定位在元素的左上角,background-position 设置为 10px 10px,可以通过点击各个按钮逐一查看不同的 background-repeat 设置是什么样的效果:</p>

<div id="showDiv"></div>
<div class="btnWrap">
        <span class="tRed">设置 background-repeat 属性: </span><br><br>
        <button class="btnAttr" type="button" value="repeat">repeat</button>
        <button class="btnAttr" type="button" value="repeat-x">repeat-x</button>
        <button class="btnAttr" type="button" value="repeat-y">repeat-y</button>
        <button class="btnAttr" type="button" value="no-repeat">no-repeat</button>
        <button class="btnAttr" type="button" value="space">space</button><br>
        <button class="btnAttr" type="button" value="space no-repeat">space no-repeat</button>
        <button class="btnAttr" type="button" value="no-repeat space">no-repeat space</button>
        <button class="btnAttr" type="button" value="round">round</button>
        <button class="btnAttr" type="button" value="round no-repeat">round no-repeat</button>
        <button class="btnAttr" type="button" value="no-repeat round">no-repeat round</button>
</div>

</div>

<script>
(function() {
        let lastBtn = 3;
        let btns = document.querySelectorAll('.btnWrap > button');
        btns.style.color = 'red';
        btns.forEach((btn,idx) => {
                btn.onclick = () => {
                        btns.style.color = 'unset';
                        lastBtn = idx;
                        btn.style.color = 'red';
                        showDiv.style.backgroundRepeat = btn.value;
                }
        });
})();

</script>

红影 发表于 2024-3-11 19:58

这里面还有这么细致的划分啊。平常只用用repeat,还有space和round呢,而且这两个的设置还有细分{:4_187:}

红影 发表于 2024-3-11 20:00

这样的演示真好,可以直接看到各种效果的实际样子了{:4_199:}

马黑黑 发表于 2024-3-11 20:06

红影 发表于 2024-3-11 20:00
这样的演示真好,可以直接看到各种效果的实际样子了

不过我设置的图片可能不是很理想,有兴趣可以试试其他的小图片

马黑黑 发表于 2024-3-11 20:06

红影 发表于 2024-3-11 19:58
这里面还有这么细致的划分啊。平常只用用repeat,还有space和round呢,而且这两个的设置还有细分

要讲究把它们较可能讲完吧

红影 发表于 2024-3-11 20:59

马黑黑 发表于 2024-3-11 20:06
不过我设置的图片可能不是很理想,有兴趣可以试试其他的小图片

这个圆形的就挺好,看得更明显呢。{:4_187:}

红影 发表于 2024-3-11 21:00

马黑黑 发表于 2024-3-11 20:06
要讲究把它们较可能讲完吧

黑黑辛苦了。这个讲解十分全面呢{:4_199:}

马黑黑 发表于 2024-3-11 21:47

红影 发表于 2024-3-11 21:00
黑黑辛苦了。这个讲解十分全面呢

不一定的。个人理解能力有限

马黑黑 发表于 2024-3-11 21:48

红影 发表于 2024-3-11 20:59
这个圆形的就挺好,看得更明显呢。

喜欢就好

红影 发表于 2024-3-11 23:41

马黑黑 发表于 2024-3-11 21:47
不一定的。个人理解能力有限

黑黑把每一个都讲得这么详细呢,很不容易{:4_190:}

红影 发表于 2024-3-11 23:41

马黑黑 发表于 2024-3-11 21:48
喜欢就好

如果是方的图形,还不一定看得这么清楚呢{:4_187:}

南无月 发表于 2024-3-12 18:05

background-repeat
光一个重复就有这么多效果。。。
示例第二排左边两个和右边两个,名称看上去差不多,效果也不相同。。{:4_173:}

南无月 发表于 2024-3-12 18:07

{:4_199:}很详细,老师讲得清楚 。。又是最好的教程。。。

马黑黑 发表于 2024-3-12 18:24

南无月 发表于 2024-3-12 18:07
很详细,老师讲得清楚 。。又是最好的教程。。。

废话不多{:4_170:}

南无月 发表于 2024-3-12 19:15

马黑黑 发表于 2024-3-12 18:24
废话不多

{:4_199:}简洁明了。。一等一的好

马黑黑 发表于 2024-3-12 19:44

南无月 发表于 2024-3-12 19:15
简洁明了。。一等一的好

{:5_108:}

南无月 发表于 2024-3-12 19:55

马黑黑 发表于 2024-3-12 19:44


{:4_191:}白酒来一杯吧

马黑黑 发表于 2024-3-12 20:05

南无月 发表于 2024-3-12 19:55
白酒来一杯吧

谢谢,干

南无月 发表于 2024-3-13 17:51

马黑黑 发表于 2024-3-12 20:05
谢谢,干

这么干脆啊。。不留小池不养鱼{:4_173:}

马黑黑 发表于 2024-3-13 18:03

南无月 发表于 2024-3-13 17:51
这么干脆啊。。不留小池不养鱼

看看养的是什么鱼儿
页: [1] 2
查看完整版本: 认识CSS的background(四)