背景样式

RGB函数表示法

RGB接受三个数值,每个数值分别代表红绿蓝的比例

r red , g green , b blue

每一种颜色的范围在0-255 ( 0% - 100%)之间

语法: rgb(红色 , 绿色, 蓝色)

255,255,0-纯黄 0,255,255 青色 255,0,255紫红色

rgba()函数表示法----rgb的加强版

就是在rgb的基础上增加了一个a

a表示alpha是用于控制透明度的阿尔法通道,

其中1表示完全不透明,0表示完全透明。

也可以写百分比的参数.100%完全不透明,0%完全透明.

十六进制法

就是一个#后面加上6位十六进制的数字构成.(十六进制相对于十进制最大的区别就是逢十六进一.)

语法:#红色(2位)绿色(2位)蓝色(2位)

每个数字有十六种不同的可能,

分别是0~9与 a~f , 0表示颜色没有, f表示颜色最浓.

每两位颜色也对应RGB中的红绿蓝颜色.

例如#ff0000对应rgb中的(255,0,0).

2位十六进制代表的也是256种的可能情况,

就是16*16=256;跟RGB一个数字所代表的的可能性是一致的.

RGB一个数值就相当代表十六进制两个数字.

如果颜色两位两位的重复可以进行简写 #aabbcc --> #abc

这两者都是可以互相转化的,有专门的的16进制转RGB的工具.

hsl()函数表示法

H 色相 (0deg - 360deg)

S 饱和度 颜色的浓度 (0 -100%)

L 亮度 颜色的亮度(0 - 100%)

角度的话红色在0deg 绿色在顺时针方向三分之一圆(120度),而蓝色在三分之2圆(240度)

hsla()函数表达式

它的关系跟rgb()和rgba()关系一样,都可以接受一个透明的参数

**PS:**使用那种颜色表示法没有本质区别,他们只是同一事物不同的方法而已.

opacity透明度

知道了如何控制颜色的透明度,css其实还有另一种方式来控制透明度.就是opacity.

取值 0-1 0表示完全透明 1表示完全不透明

内部所有内容都会变得透明

.box{
     width: 300px;
	 height: 300px;
     background-color:blue;   
     opcity:0.5; 
}
  .smallbox{
	width: 100px;
	height: 100px;
	background-color: green;
}
 <div class="box">
       <div class="smallbox"></div>
  </div>

元素显示状态(visibility)

visibility: visible 子元素显示

visibility:hidden; 不显示隐藏,渲染占据空间

display:none; visibility:hidden; opacity:0;之间的区别

一、空间占据

display:none隐藏后不占据额外空间,它会产生重排(回流)和重绘。 重新排列

visibility:hidden和opacity:0元素虽然隐藏了,但它们仍然占据着空间,它们俩只会引起页面重绘。

二、子元素继承

display:none不会被子元素继承,但是父元素都不在了,子元素自然也就不会显示了

visibility:hidden 会被子元素继承,可以通过设置子元素visibility:visible 使子元素显示出来

opacity: 0 也会被子元素继承,但是不能通过设置子元素opacity: 1使其重新显示

三、事件绑定

display:none 的元素都已经不再页面存在了,因此肯定也无法触发它上面绑定的事件;

visibility:hidden 元素上绑定的事件也无法触发;

opacity: 0 元素上面绑定的事件是可以触发的。

四、过渡动画

transition对于display肯定是无效的,大家应该都知道;

transition对于visibility也是无效的;

transition对于opacity是有效,大家也是知道的:).


背景图片(background-image)格式

background-image:url(“路径”);插入图片

什么时候插入内容图片,什么时候插入背景图片。

简而言之如果图片从网页中去掉,网页本身仍然有意义,没有什么影响,该图片可以作为背景图片。这个主要是页面和盒子的装裱

但是如果图片从网页中去掉这个图片,网页的观感完全变了样,说明图片是具有意义,那么该图片当作内容图片例如淘宝上的商品之类的.会常常更换的.


背景平铺(background-repeat)

如果背景图片小于元素大小,则背景图片会自动在元素中平铺将元素铺满

如果背景的图片大于元素,将会一个部分背景无法完全显示

如果背景图片和元素一样大,则会直接正常显示

background-repeat

​ 可选值

​ repeat 默认值 背景会沿着x轴 y轴 方向重复

​ repeat-x 沿着x轴方向重复

​ repet-y 沿着y轴方向重复

​ no-repeat 背景图片不重复

游览器的坐标系(唯一)

水平向右x+

垂直向下y+

游览器左上为坐标原点


背景大小(background-size)

我们的图片选择不可能都是正好符合我们盒子的大小

如果我们使用了一张大图覆盖了整个元素盒子.这样的话在小屏幕上图片会进行裁切.

反之如果屏幕特别大,元素边缘就会出现空白,

要避免这种情况.让背景图片大小变的理想就使用background-size.

background-size:设置图片的大小

​ 第一个值表示宽度

​ 第二个值表示高度

​ 如果只写一个,则第二个默认是auto

.box{
		width: 700px;
		height: 700px;
		border:3px solid skyblue;
		background-image: url(1.jpg);
  		background-repeat: no-repeat;
 		background:size:100px 200px;
  /*第一个值表示水平X轴的背景图片大小,Y表示Y轴背景图片大小*/
}
.box{ background-size:100% 100%; }
/*想让元素随着元素缩放而缩放,就必须使用百分比值. 
 注意:百分比不是相对于图片固有大小,而是相对于容器大小.
 但是如果简单的把图片的宽度和高度都设置为百分比值,可能会因为容器高度变化而 导致图形变形.*/
.box{ background-size:100% auto; }
/*这里我们让图片宽度(即X值)始终保持为100%,高度等比例放缩.保持了自己规定的宽高比.
  auto自动计算,等比例放大和缩小,都写auto就是原始尺寸*/

只写一个值的话.

.box{ background-size:100%; }
/*第二个值默认是auto*/

但是我们很多时候很有可能不知道图片的宽高比例,很有可能出现留白的情况.

但是单纯用百分比图片又容易变形.

这时候我们还可以去使用一种方法,我们可以去使用关键字

background-size:cover;
/*背景图片会覆盖掉盒子所有空间(不留白),可能会进行裁切*/

background-size:contain;
/*等比例放大和缩小,一条边触碰到边框就停止,图片全部展示不会超出盒子*/

contain

​ 图片比例不变,保持图片的完整显示

cover

​ 保证图片覆盖元素的每一个像素,同时不会变形.

​ 但如果在一个高而窄的元素,元素高度会被填满,图片左右两边会被裁切

​ 而在一个较宽的元素之中,元素宽度会被填满,但图片的上下两边会被裁切.


背景位置(backgroun-position)

通过使用关键字来调整图片位置.

在X轴上用left.center,right方位

在Y轴上用top,center,bottom方位

顺序一般是先X轴再Y轴,

使用方位词必须要同时指定两个值,如果只写一个值第二个值默认center

通过偏移量来制定背景图片的位置

backgroun-position:x y; 水平方向偏移量 垂直方向偏移量

单位

​ 1.像素px单位

​ 2.百分比单位调整

百分比值不像绝对数值那样定位背景图片的左上角。

而是定位图片中对应的点.

background-position:100% 0%;
/*没有移出盒子,元素的宽度-图片的宽度=100%.*/


盒子的宽度-图片的宽度=100%
500  -  400 = 100px =  100%对应的值;

/*如何让图片在盒子中水平垂直居中*/
background-position:50% 50%;

这上面都可以混合去进行使用

百分比和具体偏移量

background-position:50% 20px;

还可以写这样.

background-position:right 20px bottom;
/*表示图片靠最右边去显示,但是距离右边有20px*/

也可以去写关键字和百分比

background-position:right 20% bottom;
/*表示图片靠最右边去显示,但是距离右边有20%*/

背景原点(background-origin)

规定了在图片不平铺的情况下,背景图片的左上角顶点的初始位置

background-origin 背景图片的基点

​ 可选值:

​ padding-box 默认值 背景图片从内边距左上角开始

​ content-box 背景图片相对于内容区左上角开始

​ border-box 背景图片相对于边框左上角开始


背景裁切(background-clip)

​ background-clip设置背景的出现的范围

​ 可选值:

​ border-box默认值 背景会出现边框的下边

​ padding-box 背景不会出现在边框,只会出现在内容 区和内边距

​ content-box背景只会出现在内容区

溢出(overflow)

如果子元素大小超过了父元素,则子元素会从父元素溢出,使用overflw属性来设置父元素如何处理溢出的子元素

可选值

​ visible 默认值 子元素会从父元素中溢出 在父元素外部的 位置显示

​ hidden 溢出内容将会被裁剪不显示

​ scroll 生成两个滚动条来查看完整的内容

​ auto 根据需要生成滚动条

背景附着(background-attachment)

background-attachment决定背景是在视口中固定的还是随包含它的区块滚动的

​ 可选值:

​ scroll 默认值背景图片相对于元素本身固定.背景本身不移动, 里面的内容如文字会移动.

​ local 背景图片相对于元素中的内容固定,

​ fixed:背景相对于视口固定。即使一个元素拥有滚动机制, 背景也不会随着元素的内容滚动。

body{
	height: 3000px;
	background-image: url(0.jpg);/*花纹图片*/
}
.girl{
	width: 800px;
	height: 200px;
	margin-top:600px;
	background-color: skyblue;
	background-image: url(1.jpg);
    background-repeat: no-repeat;
	background-attachment: fixed;/*让图片贴着视口的左上角排布*/
}

<div class="girl"></div>

background简写属性

backgroud-color

background-image

background-repeat

backgroun-position

background-size

background-orgin

background-clip

background-attachment

background背景相关的简写属性,所有背景相关的样式都可以通过改样式设置

​ 并且该样式没有顺序要求,也没有哪个属性是必须写的

注意:

​ background-position必须写在background-size前面 , 并且用/隔开

​ ----- background-position / background-size

​ background-origin background-clip两个样式 , orgin要在clip的前面

多重背景

前面我们假设只用一张图片来作为背景,一般来说当然是这样.但CSS3中支持一个元素设置多个背景图片,因此每个背景属性也就有了相应的多值语法,多个值用逗号分隔.

其中position和size严格按照书写顺序

多重背景按声明的先后顺序上下堆叠,

最先声明的的在最上面,最后声明的在最下面,背景颜色在所有背景图片的下面.

div{
		width:600px;
		height:600px;
		margin:20px auto 0;
		background: url(1.jpg) no-repeat top left/200px 200px,
                     url(2.jpg) no-repeat bottom right/200px 200px;
	}

复合型的优秀写法

center/contain

center/cover/更优秀


雪碧图(CSS-sprite)

特点

整合了页面所有图标的一个图,请求一次将多个图片加载进页面,降低请求次数,加快访问速度,提升用户体验

请求:三次握手,四次挥手.

服务器发送很多次访问请求,1.造成资源浪费2.导致访问速度变慢。

显示雪碧图的条件:

1.测量图标大小根据测量结果,创建好一个宽和高的容器。

2.background-image 引入图片

background-position:-xpx -ypx;

f12即可进行调试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值