在制作页面的时候我们经常需要设置字体颜色或者背景颜色,丰富多彩的颜色能够让页面呈现更好的效果,在网站中用到颜色的地方也很多,文字颜色,背景颜色,边框颜色等都需要用到。
在css中表示颜色的方法主要有以下几种。
1. 关键字颜色
属性值是颜色的名称。
例如:
div{
color:red
}
2. 十六进制
十六进制表示颜色的原理是利用光的三原色:红色,绿色,蓝色。利用这三种颜色就能组合出很多颜色,比如红色光和绿色光就可以组合成黄色,三种颜色的光可以组成白色,没有光的时候就是黑色。
下图为光色三原色:
请点击输入图片描述
十六进制颜色是由#加六位的十六进制表示的,范围是00到ff,前两位表示红色,中间两位表示绿色,最后两位表示蓝色。
例如:
#ff0000表示红色,这个色值包含最大数量的红色,但是没有绿色和蓝色,所以是红色。
#00ff00表示绿色,这个色值包含最大数量的绿色,但是没有红色和蓝色,所以是绿色。
#0000ff表示蓝色,这个色值包含最大数量的蓝色,但是没有红色和蓝色,所以是蓝色。
#000000表示黑色,这个色值没有颜色,表示没有光,所以是黑色。
#ffffff表示白色,这个色值包含最大数量的红色绿色和蓝色,组合到一起是白色。
十六进制的00到ff,是十进制的0到255,因此每种颜色都有256种取值,能够组合出来的颜色就是:256*256*256=16777216,这么多种色值足够可以让我们的页面变的丰富多彩。
这里的三原色为什么是红色、绿色、蓝色,而和我们学美术的时候的红色、黄色、蓝色不一样呢?因为学美术的时候用的是颜料的三原色,颜料的三原色利用的是光的反射原理。
3. RGB
RGB表示颜色的方式原理和十六进制是一样的,是利用光的三原色:红色,绿色,蓝色。
R表示red,红色。
G表示green,绿色。
B表示blue,蓝色。
取值从0到255,也可以是百分数。
rgb(red, green, blue)
例如:
rgb(255,0,0)或者rgb(100%,0,0)表示红色,
rgb(0,255,0)或者rgb(0,100%,0)表示绿色,
rgb(0,0,255)或者rgb(0,0,100%)表示蓝色,
rgb(0,0,0)或者rgb(0,,0,0)表示黑色,
rgb(255,255,255)或者rgb(100%100%,100%)表示白色,
4. HSL
HSL表示颜色的方法是通过色相,饱和度和亮度表示的。其中H是Hue色相,S是Saturation饱和度,L是Lightness亮度。
下图为HSL颜色模式:
请点击输入图片描述
H:色相。就是颜色名称。取值为是0到360。
S:饱和度。是色彩的纯度,取值是0%到100%。
L:亮度。取值为是0%到100%。
hsl(hue, saturation, lightness)
例如:
div{
width: 100px
height: 100px
background: hsl(100, 80%, 50%)
}
5. RGBA
RGBA颜色表示形式只是比RGB多了一个A。A表示Alpha透明度。取值是0到1.
rgba(red, green, blue, alpha)
例如:
div{
width: 100px
height: 100px
background: rgba(255, 0, 0, 0.5)
}
效果图:
6. HSLA
HSLA颜色表示形式只是比HSL多了一个A。A表示Alpha透明度。取值是0到1.
hsla(hue, saturation, lightness, alpha)
例如:
div{
width: 100px
height: 100px
background:hsla(100, 80%, 50%,0.8)
}
在css中使用rgba(255, 255, 255, 0.5)这样的格式来表示rgha。其中最后一个参数表示Alpha通道,表示透明度。
例如:给两个div添加一样的背景色设置不同的透明度
代码:
<div class="div1">rgba透明度0.4</div>
<div class="div2">rgba透明度0.6</div>
css:
div{
margin:10px auto
width:200px
height:100px
text-align: center
line-height: 90px
}
.div1{background: rgba(83,172,150,0.4)}
.div2{background: rgba(83,172,150,0.8)}
效果:
2018.7.16
em,px,都为长度单位,CSS直接设置就可以。
%不是一个长度单位,比如2%就是一个完整的值,是一个整体,比如0.02是一个值,没错,2%也同样是值(出处:《css世界》)
注:有一个特殊情况需要注意,如果,p为span的父元素(如下情况)
css里设置为
p{font-size:14px}
span{font-size:0.8em}
自然就会继承父元素,然后再进行子元素的独特性,即(14*0.8=11.2px)以父元素的px为单位。
简写:当值为0px时,可以简写为0。(如下图所示)
颜色设置有 三种方法
第一种就是直接用英文名字(p{color:red})第二种就是根据R(red)G(green)B(blue)颜色的比例来配色,每一项地值在0-255之间,也可以用百分比(p{color:rgb(133,45,200)})第三种就是常用的,原理也是rgb设置,但是将255变成了十六进制(p{color:#336699})
补充:background-color属性接受任意合法的CSS颜色值,如预定义颜色名、十六进制数值、RGB值、RGB百分比、RGBA值、HSL值、HSLA值(这些都是颜色设置的)
tips:1.十六进制的如果每两个之间数字相同可以简写成一个,如上面的p{color:#336699}为p{color:#369}
2.RGB和我当时学的美术的三原色相类似,美术三原色为红黄蓝。(三间色可以直接用三原色调出,红黄为橙,红蓝为紫,黄蓝为绿)
之前一直分不太清楚,今天试了一下,然后懂了。(如下图)
margin为边界,又可以叫做外边框;padding为内边框,也为“填充”。
流动模型为网页的默认模型,流动模型的块元素是自上而下,行元素是从左到右显示。
模型移动(以层模型中的元素为例)
向右移动和向下移动不是我想的right:XXbottom:XX
而是距离左边XX,距离上面XX,距离原来的0,动了XX那么多,自然就是向那里移动了XX。(默认位置为左上角)
另外,层模型使得元素块移动后,它移动前的仍然保留。