rgba(0,255,255,0.3)
#看上去稍微淡一点的青色
例如
#00ffff
表示青色,FF和255都一样,只是FF是用十六进制表示
注:在写VS代码中,我们经常会使用颜色板去查找颜色且在实际生活中,我们经常会使用十六进制去表示颜色,但是如果我们需要使用到透明度,我们还是会使用rgba函数
注意:在RGB模型中,三种颜色所占的比例一致时,就是灰色。所以灰色有很多种不同的灰色
h1 {
font-size: 26px;
text-transform: uppercase;
font-style: italic;
color:#1098ad
}
h1,
h2,
h3 {
color: #1098ad;
}
h1,
h2,
h3,
h4,
p,
li {
font-family: sans-serif;
color: #444;
}
h1,
h2,
h3 {
color: #1098ad;
}
注意:h123的颜色还是#1098ad,CSS中如果一个元素多次被定义颜色,使用最后的那个;
###HTML代码
<header class="main-header">
<h1>代码介绍</h1>
<nav>
<a href="./blog.html">BLOG</a>
<a href="#">挑战</a>
<a href="#">弹性盒子</a>
<a href="#">CSS</a>
</nav>
</header>
###CSS代码
.main-header {
background-color: #f7f7f7;
}
###HTML代码
<aside>
<h4>相关文章</h4>
<ul class="related">
<li>
<img
src="img/related-1.jpg"
alt="related-1"
width="75px"
height="75px"
/><a href="#">如何去学习网页开发</a>
<p class="related-author">作者:乔纳斯·施梅德特曼</p>
</li>
<li>
<img
src="img/related-2.jpg"
alt="related-2"
width="75px"
height="75px"
/>
<a href="#">CSS 的未知力量</a>
<p class="related-author">作者:吉姆.狄龙</p>
</li>
<li>
<img
src="img/related-3.jpg"
alt="related-3"
width="75px"
height="75px"
/>
<a href="#">为什么 JavaScript 很棒</a>
<p class="related-author">作者:玛蒂尔达</p>
</li>
</ul>
</aside>
###CSS代码
aside {
background-color: #f7f7f7;
border: 5px solid #1098ad;
}
###border: 边框5px粗 实心 边框颜色
reamweaver的CSS面板分类
type(类型)
background(背景)
block(区块)
box(方框) 或盒子意思
border(边框)
list(列表)
positioning(定位)
extensions(扩展)
共八个部分
1. type(类型)
type面板主要是对文字的字体,大小,颜色,效果等基本样式进行设置。
注意:属性名带*号的是指样式效果不能在编辑文档时显示,要用浏览器打开才能看到效果。
(1)font-family:设置字体系列。什么叫字体系列呢?是指对文字设定几个字体,当遇到第一个字体不能显示的文字时会自动用系列中的第二个
字体或后面的字体显示。
注意:一般英文字体我们用"Verdana, Arial, Helvetica, sans-serif"这个系列比较好看。如果不用这些字体系列,你就需要自己编辑字体系列,
也可以直接手动在下拉框里写字体名,字体之间用逗号隔开。中文网页默认字体是宋体, 一般就空着不要选取任何字体。
默认值: not specified(取决于浏览器,系统默认的字体, 如: 微软雅黑)
注意:
1.如果有汉字, 那么我们要加引号
2.如果有多个英文字母组成的单词, 我们也要加引号; "microsoft yahei" 中间用空格隔开
3.font-family:"黑体","宋体","华文隶书"; 首先找黑体, 没有黑体找宋体...
为了避免在CSS中使用 font 或 font-family 设置中文字体时乱码, 可以使用 Unicode 编码来表示字体。
/* 示例:使用Unicode字体编码设置字体为"微软雅黑" */
font-family: "\5FAE\8F6F\96C5\9ED1";
(2)font-size:定义文字的大小。你可以通过选取数字和度量单位来选择具体的字体大小,或者你也可以选择一个相对的字体大小。
最好使用pixels作为单位,这样不会在浏览器中文本变形。一般字体用比较标准的12px或14px, 默认值为16px。
注意:CSS中长度的单位分绝对长度单位和相对长度单位:
绝对长度单位有:
pt:磅(point)
mm、cn、in、pc:(毫米、厘米、英寸、活字)根据显示的实际尺寸来确定长度。
此类单位不随显示器的分辨率改变而改变。
相对长度单位有:
px:(像素)根据显示器的分辨率来确定长度。
em:当前文本的尺寸。例如:{font-size:2em}是指文字大小为原来的2倍。
比如自身font-size: 30px; 那么此时1em=30px;
ex:当前字母"x"的高度,一般为字体尺寸的一半。
%:是以当前文本的百分比定义尺寸。例如:{ font-size:300%}是指文字大小为原来的3倍。
small、large:表示比当前小一个级别或大一个级别的尺寸。
默认值:medium(标准大小)
(3)font-style:定义字体样式为normal、italic、oblique。默认设置为normal。
注意: italic 斜体 oblique 歪斜体 italic和oblique实际效果是一样的。
默认值:normal
(4)line-height:设置文本所在行的行高。默认为normal。可以是行内元素、行内块元素, 通常与height设置的高度值相同, 可以做到垂直居中的作用。
你也可以自己键入一个精确的数值并选取一个计量单位。
比较直观的写法用百分比, 例如140%是指行高等于文字大小的1.4倍。
最常用的方法: line-height:1.5em; /*行间距,相对数值,1.5倍行距,*/ 可有效的避免文字发生重叠
默认值: normal
(5)text-decoration:在文本中添加underline(下划线)、overline(上划线)、line-through(中划线)、blink(闪烁效果)。
这些效果可以同时存在,将效果前的复选框选定即可。
注意:链接的默认设置是underline,我们可以通过选none去除下划线。blink(闪烁效果)只在mozilla浏览器里可以看到, IE、opera不支持
默认值: none
(6)font-weight:给字体指定粗体字的磅值。
normal 默认值。定义标准的字符。
bold 定义粗体字符。
bolder 定义更粗的字符。
lighter 定义更细的字符。
100
200
300
400
500
600
700
800
900
inherit 规定应该从父元素继承字体的粗细。
定义由粗到细的字符。400 等同于 normal, 而 700 等同于 bold。
默认值: normal
(7)font-variant:允许你选取字体的变种, 选small-caps(小型大写字母)时, 此样式区域内所有字母大写。
normal表示正常的字体, 为默认值;
默认值: normal
(8)text-transform:将选区中每个单词的第一个字母转为大写, 或者令单词全部大写或全部小写。
参数:capitalize(单词首字母大写)、uppercase(转换成大写)、lowercase(转换成小写)、none(不转换)。
默认值:none
(9)color:定义文字颜色。包括对表单输入的文字颜色。
CSS中颜色的值有三种表示方法:
#RRGGBB格式,是由红绿蓝三种颜色的值组合,每种颜色的值为"00 – FF"的两位十六进制正整数。
例如:#FF0000表示红色,#FFFF00表示黄色。
rgb(R,G,B)格式, RGB为三色的值, 取0~255, 例如:rgb(255,0,0)表示红色, rgb(255,255,0)表示黄色。
用颜色名称。CSS可以使用已经定义好的颜色名称。例如:red表示红色, yellow表示黄色。
颜色值的缩写:
p{color:#000000} 可以缩写为:p{color:#000}
p{color:#336699} 可以缩写为:p{color:#369}
默认值: not specified
color: transparent; 透明色
rgba() 解释: rgba(红0-255, 绿0-255, 蓝0-255, 透明度0-1)
注意: 如果文字的颜色通过单独的类选择去设置没有改变颜色, 则应该通过组合选择器(.header .top .topR .blue)去设置, 改变它的优先级。
2. background(背景)
background面板主要是对元素的背景进行设置,包括背景颜色、背景图象、背景图象的控制。
一般是对body(页面)、table(表格)、div(区域)的设置。
(1)background-color:设置元素的背景色。包括对input表单输入框的背景颜色;
默认值: transparent(背景颜色为透明)
rgba() 解释: rgba(红0-255, 绿0-255, 蓝0-255, 透明度0-1) 一般用于背景色
(2)background-image:设置元素的背景图像。
默认值:none
CSS3支持多重背景图,只要加上一个url指定图片路径,并用逗号(,)将两组url分隔就可以了
background-image:url(a.jpg),url(b.jpg);
base64使用
background-image: url("data:image/png;base64,iVBORw0KGgo=...");
(3)background-repeat:确定背景图像是否以及如何重复。
repeat 默认值。背景图像将在垂直方向和水平方向重复。
repeat-x 背景图像将在水平方向重复。
repeat-y 背景图像将在垂直方向重复。
no-repeat 背景图像将仅显示一次。
inherit 规定应该从父元素继承background-repeat属性的设置。
注意:如果定义的元素的body,可以控制页面背景是否重复。
默认值: repeat
(4)background-attachment:固定背景图像或者跟随内容滚动。
参数fixed表示固定背景(不随屏幕滚动而滚动,决定背景图像是否要固定在原来的位置), scroll表示跟随内容滚动的背景。
注意:如果定义的元素的body, 可以使页面背景固定。
默认值: scroll
(5)background-position(X):指定背景图像的水平位置。
可以指定为left(左边), center(居中),right(右边);
也可以指定数值,如20px是指背景距离左边20象素。
background-position(Y):指定背景图像的垂直位置。
可以指定为top(顶部), center(居中), bottom(底部);也可以指定数值。
background-position属性值:
left top
center top
right top
left center
center center
right center
left bottom
center bottom
right bottom
如果您仅规定了一个关键词,那么第二个值将是"center"。
注意:采用英文单词的水平位置和垂直位置的属性值可以调换
x% y% 第一个值是水平位置,第二个值是垂直位置。左上角是 0% 0%。右下角是 100% 100%。如果您仅规定了一个值,另一个值将是 50%。
xpos ypos 第一个值是水平位置,第二个值是垂直位置。左上角是 0 0。单位是像素 (0px 0px) 或任何其他的 CSS 单位。
如果您仅规定了一个值,另一个值将是50%。
您可以混合使用 % 和 position 值。
默认值:0% 0%
者 | 小胡
责编 | 郭芮
说到图片处理,我们经常会想到PhotoShop这类的图像处理工具。作为前端开发者,我们经常会需要处理一些特效,例如根据不同的状态,让图标显示不同的颜色。或者是hover的时候,对图片的对比度,阴影进行处理。”
不过你以为上面的图片都是经过PS软件处理出来的?不不不,纯粹是用CSS写出来的,很神奇吧。
CSS滤镜(filter)能够提供模糊、锐化或元素变色等图形特效,过滤器则通常用于调整图片、背景和边界的渲染。
CSS标准里包含了一些已实现预定义效果的函数:
filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();
<!--html--> <img src="https://note.youdao.com/yws/res/237/WEBRESOURCE7e77df2551fe1a1db1b9d91f4d518917" alt="原图">
filter: none
没有任何效果,默认filter就为none。
filter:blur( ) 高斯模糊
给图像一个高斯模糊效果,length值越大,图像越模糊。我们来尝试一下:
img { filter:blur(2px);; }
brightness(%) 线性乘法
可以让图片看起来更亮或者更暗:
img { filter:brightness(70%); }
contrast(%) 对比度
调整图像的对比度:
img { filter:contrast(50%); }
设置阴影效果(h-shadow v-shadow blur spread color)
阴影是合成在图像下面、有模糊度的,可以以特定颜色画出的遮罩图的偏移版本。函数接受<shadow>(在CSS3背景中定义)类型的值,除了"inset"关键字是不允许的。该函数与已有的box-shadow box-shadow属性很相似,不同之处在于,通过滤镜,一些浏览器为了更好的性能会提供硬件加速。
利用这个方案,我们可以改变图标的颜色,比如黑色图标变成蓝色图标:
img { filter: drop-shadow(705px 0 0 #ccc); }
在这里,我们将图片投影形成一个同等大小的灰色区域:
hue-rotate(deg) 色相旋转
img { filter:hue-rotate(70deg); }
看,我的小姐姐变成了阿凡达!
invert(%) 反转
这个函数的作用是反转输入图像,有点像曝光的效果:
img { filter:invert(100%) }
grayscale(%) 将图像转换为灰度图像
这个效果可以将图片做旧,有一种时代沧桑感。喜欢古风的人一定会喜欢上这个效果的:
img { filter:grayscale(80%); }
除了古风还有一种用法是有的时候需要将全站变成灰色,如大屠杀纪念日的时候:
可以这样设置:
*{ filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); }
sepia(%) 将图像转换为深褐色
下面给我的小姐姐一个暖暖的色调:
img { filter:sepia(50%) }
大家是不是发现我并没有把url()方法写到这上面来?
没错,因为我想把这个内容放到最后来说,filter:url()就是CSS滤镜改变图片的终极方法。CSS:filter可以导入一个svg滤镜,作为它自己的滤镜。
为什么说filter:url()是图片变色的终极解决方案?请容我慢慢道来。
我们先科普一下PS的工作原理,我们都知道网页是有三原色的R(红) G(绿) B(蓝),常见的RGBA还包括一个opicity值,而opcity值是根据alpha通道计算出来的。也就是说,我们见到的网页的每一个像素点都是由红蓝绿再加alpha四个通道组成,每一个通道我们称之为色板,PS中8位板的意思就是2的八次方256,意思就是每一个通道的取值范围都是(0-255)。
如果我们可以改变每个通道的值是不是就能完美的得到我们想要的任意颜色了呢?原理上,我们可以像PS那样利用svg滤镜得到任何我们想要的图像,不仅仅是变色,我们甚至可以凭空生成一幅图像。
svg feColorMatrix大法好
<svg height="0" xmlns="http://www.w3.org/2000/svg"> <defs> <filter id="change"> <feColorMatrix type="matrix" values=" 0 0 0 0 0.55 0 0 0 0 0.23 0 0 0 0 0 0 0 0 0 1" /> </filter> </defs> </svg> <img src="https://note.youdao.com/yws/res/237/WEBRESOURCE7e77df2551fe1a1db1b9d91f4d518917" alt="">
img { filter:url(#change); }
通过单通道我们可以将图片变成单一的颜色:
<svg height="0" xmlns="http://www.w3.org/2000/svg"> <defs> <filter id="change"> <feColorMatrix values="3 -1 -1 0 0 -1 3 -1 0 0 -1 -1 3 0 0 0 0 0 1 0" /> </filter> </defs> </svg>
通过双通道我们可到一些非常炫酷的PS效果:
当然,在这里只是举个例子,通过配置矩阵中的值,我们可以配置每一个像素点的值按照我们定义的规则显示。
我们在这里详细讲一下feColorMatrix 矩阵的计算方式:
其中Rin Gin Bin a(alpha) 为原始图片中每个像素点的rgba值,通过矩阵计算,得到的Rout Gout Bout Aout就是最终显示出来的rgba值。
将图片转为单色,以棕色rgba(140,59,0,1)为例
根据上面的公式,我们可以简化一些计算,同一行中,只设置一个通道的值,其他通道为0。不难得出矩阵:
0 0 0 0 目标值R 0 0 0 0 目标值G 0 0 0 0 目标值B 0 0 0 0 1
根据规则,只需要计算,255/想要显示的颜色对应通道=目标值,我们想要的棕色rgba(140,59,0,1) 换算成色板 rgba 为 140 59 0 255,可以算出目标值0 0 0 0 0.55。
0 0 0 0 0.55 0 0 0 0 0.23 0 0 0 0 0 0 0 0 0 1
多通道设置出来的炫酷效果
就如同之前我们看到的双通道形成的炫酷图片一般。
要把图片的饱和度提高,首先当然是想想饱和度的成因,就是红的越红,蓝的越蓝,绿的越绿。由这个成因出发,我们的矩阵就可以写成下面的样子,看到矩阵当中出现了3 和-1,一定会很那闷这是怎么来的,原理其实很容易理解,让我们假设某一个像素的RGB 分别是(200/255),(100/255),(50/255),呈现的应该是有点暗沉的橘色,经过矩阵的换算:
R 变成了200/255x3-100/255-50/255=1.76;
G 变成200/255x(-1)+100/255*3-50/ 255=0.2;
B 变成200x(-1)+100x(-1)+50x3=-0.59。
因此RGB转换后就是:200x1.76,100x0.2,50x-0.5。
<svg height="0" xmlns="http://www.w3.org/2000/svg"> <defs> <filter id="change"> <feColorMatrix values="3 -1 -1 0 0 -1 3 -1 0 0 -1 -1 3 0 0 0 0 0 1 0" /> </filter> </defs> </svg>
其他方案
除了feColorMatrix svg滤镜还有很多的方法可以定义滤镜,它们同样可以作用到图片上。由于篇幅限制,这里就不详细展开了。
CSS3提供了filter这个属性,使得通过前端技术实现更多炫酷的特效成为了可能;依赖于svg的滤镜,我们可以实现复杂的滤镜效果。
但是要注意:
文章难免会有疏漏,欢迎大家指正批评。
作者:小胡,晓教育前端,开源爱好者。
声明:本文为作者投稿,版权归其个人所有。
*请认真填写需求信息,我们会在24小时内与您取得联系。