马黑黑 发表于 2024-3-8 20:38

认识CSS的background(一)

本帖最后由 马黑黑 于 2024-3-8 20:44 编辑 <br /><br /><style>
.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; }

#mydiv {
      width: 600px;
      height: 338px;
      border: 1px solid red;
      background: url('https://638183.freep.cn/638183/t24/jpg/dysonstar.jpg');
}
</style>

<p>在CSS中设置元素背景,需要至少五个基于 background 的属性,分别是背景颜色(background-color)、背景图片(background-image)、背景重复与否(background-repeat)、背景尺寸(background-size)、背景位置(background-position),后四个属性都是基于背景图片,意思是,后三个属性都是作用于第二个即背景图片、对背景颜色(background-color)没有影响。<br><br></p>
<p>以下代码,基于元素的背景,仅设置了背景图片,这意味着其他属性都是用默认值。为了美观,元素的 width 和 height 必须和图片的实际尺寸一致,同时,为了便于观察,元素设置了1像素的红色实线边框。然后,通过JS的 window.getComputedStyle(element) 来获取元素的五个基于 background 的属性值——默认和缺省值。通过比较、分析源码和JS获取的属性情况,可以大致了解元素的 background 设置。<br><br></p>
<p>代码:<br><br></p>
<div class='mum'>
<cl-cd data-idx="1">&lt;<span class="tDarkRed">style</span>&gt;</cl-cd>
<cl-cd data-idx="2">#mydiv {</cl-cd>
<cl-cd data-idx="3">&nbsp; &nbsp; <span class="tBlue">width:</span> 600px;</cl-cd>
<cl-cd data-idx="4">&nbsp; &nbsp; <span class="tBlue">height:</span> 338px;</cl-cd>
<cl-cd data-idx="5">&nbsp; &nbsp; <span class="tBlue">border:</span> 1px solid red;</cl-cd>
<cl-cd data-idx="6">&nbsp; &nbsp; <span class="tBlue">background:</span> url(<span class="tMagenta">'https://638183.freep.cn/638183/t24/jpg/dysonstar.jpg'</span>);</cl-cd>
<cl-cd data-idx="7">}</cl-cd>
<cl-cd data-idx="8">&lt;<span class="tDarkRed">/style</span>&gt;</cl-cd>
<cl-cd data-idx="9">&nbsp;</cl-cd>
<cl-cd data-idx="10">&lt;<span class="tDarkRed">div</span> <span class="tRed">id</span>=<span class="tMagenta">"mydiv"</span>&gt;&lt;<span class="tDarkRed">/div</span>&gt;</cl-cd>
</div>
<p><br>效果:<br><br></p>
<div id="mydiv"></div>
<p><br></p>
<pre id="bgMsg"></pre>

<script>
(function() {
      let showBgMsg = (ele) => {
                let bg = window.getComputedStyle(ele);
                return `
background-color: ${bg.backgroundColor};
background-iamge: ${bg.backgroundImage};
background-repeat: ${bg.backgroundRepeat};
background-size: ${bg.backgroundSize};
background-positiion: ${bg.backgroundPosition};
                `;
      }
      bgMsg.innerText = 'JS获取的background属性详情:\n' + showBgMsg(mydiv);
})();
</script>

南无月 发表于 2024-3-8 21:04

从背景图片属性开讲。。。好课程。。

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

南无月 发表于 2024-3-8 21:04
从背景图片属性开讲。。。好课程。。

这里面学问还挺多的,资深前端程序员都不敢说自己能完全掌握

红影 发表于 2024-3-8 22:10

这个好,通过js的获取值,可以知道默认的都是什么内容了{:4_199:}

马黑黑 发表于 2024-3-8 23:19

红影 发表于 2024-3-8 22:10
这个好,通过js的获取值,可以知道默认的都是什么内容了

你懂用F12,一切一目了然

红影 发表于 2024-3-9 11:52

马黑黑 发表于 2024-3-8 23:19
你懂用F12,一切一目了然

我对那个一直用不来啊{:4_173:}

马黑黑 发表于 2024-3-9 12:07

红影 发表于 2024-3-9 11:52
我对那个一直用不来啊

按个F12都不会

南无月 发表于 2024-3-9 17:03

马黑黑 发表于 2024-3-8 21:47
这里面学问还挺多的,资深前端程序员都不敢说自己能完全掌握

{:4_170:}所以小白默默的,就跟着老师好好学呀。

马黑黑 发表于 2024-3-9 18:36

南无月 发表于 2024-3-9 17:03
所以小白默默的,就跟着老师好好学呀。

我也只讲我懂的,我不懂的我不懂讲

红影 发表于 2024-3-9 21:40

马黑黑 发表于 2024-3-9 12:07
按个F12都不会

按完看到的都不认识,仿佛闯入了异世界啊{:4_173:}

马黑黑 发表于 2024-3-9 21:41

红影 发表于 2024-3-9 21:40
按完看到的都不认识,仿佛闯入了异世界啊

来来去去就是26个字母和数字

红影 发表于 2024-3-9 23:23

马黑黑 发表于 2024-3-9 21:41
来来去去就是26个字母和数字

组合起来变化无穷{:4_173:}

马黑黑 发表于 2024-3-9 23:41

红影 发表于 2024-3-9 23:23
组合起来变化无穷

比汉字容易一点吧

红影 发表于 2024-3-10 09:56

马黑黑 发表于 2024-3-9 23:41
比汉字容易一点吧

比汉字难多了,毕竟汉字我们是天然学会的{:4_173:}

马黑黑 发表于 2024-3-10 09:57

红影 发表于 2024-3-10 09:56
比汉字难多了,毕竟汉字我们是天然学会的

据说汉字是世界上最难学的文字,所以中国人厉害

红影 发表于 2024-3-10 10:55

马黑黑 发表于 2024-3-10 09:57
据说汉字是世界上最难学的文字,所以中国人厉害

而且这份厉害是天然的{:4_173:}

马黑黑 发表于 2024-3-10 12:17

红影 发表于 2024-3-10 10:55
而且这份厉害是天然的

就是呀

南无月 发表于 2024-3-10 17:17

马黑黑 发表于 2024-3-9 18:36
我也只讲我懂的,我不懂的我不懂讲

对小白来说老师懂得太多太多。。。深不可测。。{:4_199:}

南无月 发表于 2024-3-10 17:18

马黑黑 发表于 2024-3-9 18:36
我也只讲我懂的,我不懂的我不懂讲

老师你只管讲,需要擦黑板拿粉笔打杂的我来{:4_170:}

马黑黑 发表于 2024-3-10 17:38

南无月 发表于 2024-3-10 17:18
老师你只管讲,需要擦黑板拿粉笔打杂的我来

现在谁还用黑板,李什么乐老师都改用电子黑板了
页: [1] 2 3 4 5 6 7
查看完整版本: 认识CSS的background(一)