共用的css 写在最上面
body {
margin: 0;
box-sizing: border-box;
font-size: 16px;
}
h1,
h2 {
text-align: center;
}
p {
padding: 0;
margin: 0;
color: yellowgreen;
background-color: rgba(0, 0, 0, .3);
display: inline-block;
padding: .3rem;
font-size: 1.2rem;
text-shadow: 0 0 3px rgb(0, 0, 0);
font-weight: 700;
}
制作一个盒子300x300
css
.box {
width: 300px;
height: 300px;
border: 5px solid #fff;
margin: 50px auto;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
backdrop-filter: blur(10px);
}
html
<div class="box">
<p>box</p>
</div>
然後增加一个background-img(300x300图片) class
css
.bg-img-300 {
background-image: url("https://picsum.photos/300/300/?random=1");
}
再将class挂载到html box上
<div class="box bg-img-300">
<p>background-img-300x300</p>
</div>
此时会出现一个符合盒子的图片
再来我们将图片缩小成100x100放入300x300盒子内
css
.bg-img-100 {
background-image: url("https://picsum.photos/100/100/?random=1");
}
html
<div class="box bg-img-100">
<p>background-img-100x100</p>
</div>
此时图片会排满整个盒子3x3
此时加上background-repeat:no-repeat
css
.bg-img-100 {
background-image: url("https://picsum.photos/100/100/?random=1");
}
.bg-no-repeat {
background-repeat: no-repeat;
}
html
<div class="box bg-img-100 bg-no-repeat">
<p>background-img-100x100</p>
<p>no-repeat</p>
</div>
盒子左上角就只会出现一张图片
background-repeat的属性还有repeat-x, repeat-y
repeat-x 横向重复排列
repeat-y 直向重复排列
css
.bg-repeat-x {
background-repeat: repeat-x;
}
.bg-repeat-y {
background-repeat: repeat-y;
}
如果盒子放入比自己还要大的图片
css
.bg-img-500 {
background-image: url("https://picsum.photos/500/500/?random=1");
}
html
<div class="box bg-img-500">
<p>background-img-500x500</p>
</div>
右下角多出来的地方会被裁切掉且图片会从左上角开始排列
如果想要显示图片中央的话需要添加background-position属性
立马来加看看
css
.bg-img-500 {
background-image: url("https://picsum.photos/500/500/?random=1");
}
.bg-position {
background-position: center;
}
html
<div class="box bg-img-500 bg-position">
<p>background-img-500x500</p>
<p>background-position-center</p>
</div>
会发现图片变成中间了,周围的部分被裁切掉
如果盒子比例跟图片一样且图片不想被裁切掉可加入background-size:cover
css
.bg-img-500 {
background-image: url("https://picsum.photos/500/500/?random=1");
}
.bg-position {
background-position: center;
}
.bg-size-cover {
background-size: cover;
}
html
<div class="box bg-img-500 bg-position bg-size-cover">
<p>background-img-500x500</p>
<p>background-position-center</p>
<p>background-size-cover</p>
</div>
这样就会等比例缩小把500x500的图片塞进300x300的盒子内
backguround-position 为图片在盒子内定位
css
.bg-img-200 {
background-image: url("https://picsum.photos/200/200/?random=1");
}
.bg-position {
background-position: center;
}
html
<div class="box bg-img-200 bg-position">
<p>background-img-200x200</p>
<p>background-position-center</p>
</div>
这样图片就会在盒子的正中间
其background-position 属性还有left, right, top, bottom 可以更改图片位置
如background-position:top; 图片就会在盒子上方中央位置
若打background-position:left top; 图片就会在盒子左上方中央位置
另外可以试看看"盒子 < 图片"会发生什麽事情
先放一个200x100的图片在盒子里
css
.bg-img-200-100 {
background-image: url("https://picsum.photos/200/100/?random=1");
}
html
<div class="box bg-img-200-100">
<p>background-img-200x100</p>
</div>
会发现图片在左上角,其他没覆盖到的部分为空白的
此时加入background-size
css
.bg-img-200-100 {
background-image: url("https://picsum.photos/200/100/?random=1");
}
.bg-size-contain {
background-size: contain;
}
html
<div class="box bg-img-200-100 bg-size-contain">
<p>background-img-200x100</p>
<p>background-size-contain</p>
</div>
此时图片会被放大直到宽度碰到盒子的边缘後停止
试看看另外一个属性background-size: cover
css
.bg-img-200-100 {
background-image: url("https://picsum.photos/200/100/?random=1");
}
.bg-size-cover {
background-size: cover;
}
html
<div class="box bg-img-200-100 bg-size-cover">
<p>background-img-200x100</p>
<p>background-size-cover</p>
</div>
此时图片被放得更大,直到填满整个盒子为止,放大时图片起始位置在左上角
如果想把图片显示在正中间要加入background-position:center
css
.bg-img-200-100 {
background-image: url("https://picsum.photos/200/100/?random=1");
}
.bg-size-cover {
background-size: cover;
}
.bg-position {
background-position: center;
}
html
<div class="box bg-img-200-100 bg-size-cover">
<p>background-img-200x100</p>
<p>background-size-cover</p>
<p>background-position-center</p>
</div>
感觉顺眼多了
缩写的值可以随意摆放,但在有个小规则background-position後面要用斜线(/)并紧接着background-size 如下
background-position / background-size
css
.bg-abbr {
background: url("https://picsum.photos/500/500/?random=1") no-repeat center center/cover;
}
html
<div class="box bg-abbr">
<p>background-img-abbr</p>
</div>
正常写法
css
.bg-normal {
background: url("https://picsum.photos/500/500/?random=1");
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
html
<div class="box bg-normal">
<p>background-img-normal</p>
</div>
还是缩写的简单
最後一个了(终於)
一般多重背景写法
css
.bg-tree {
background-image:
url("https://picsum.photos/300/100/?random=1"),
url("https://picsum.photos/300/100/?random=2"),
url("https://picsum.photos/300/100/?random=3");
background-repeat: no-repeat, no-repeat, no-repeat;
background-position: left top, left 100px, left bottom;
}
html
<div class="box bg-tree">
<p>background-img-tree</p>
</div>
这边要注意若第一个图片大於下面的图片则会被覆盖掉
多重背景的缩写
css
.bg-tree-abbr {
background-image:
url("https://picsum.photos/300/100/?random=1"),
url("https://picsum.photos/300/100/?random=2"),
url("https://picsum.photos/300/100/?random=3");
background-repeat: no-repeat, no-repeat, no-repeat;
background-position: left top, left 100px, left bottom;
}
html
<div class="box bg-tree-abbr">
<p>background-img-tree-abbr</p>
</div>
终於ending了
附上范例CODEPEN
後续若有想到再补上(CODEPEN 根本文有一丢丢不同,请见谅)
>>: Day18 Combine 05 - Operators 类型介绍 : 转换操作符
同样的例子。 假设这次我希望某些状态是依赖於某些状态的! 比如说有输入有效(valid)跟输入无效(...
零信任 零信任是一种用於访问控制的网络安全范例,具有以数据为中心,细粒度,动态且具有可见性的特徵。 ...
TabLayout提供了一个水平的布局方式显示,TabItem是TabLayout显示的物件。 de...
激活函数 每个神经元都有一个激活函数,由这层神经元输出给下层神经元的输入,中间就会有个函数关系,将之...
连续 30 天不中断每天上传一支教学影片,教你如何用 React 加上 Firebase 打造社群...