前端路Web前端之路Web 前端开发

CSS3学习总结一

2017-03-13  本文已影响175人  iceman_dev

一、初识CSS3

如同人类的的进化一样,CSS3是CSS2的“进化”版本,在CSS2基础上,增强新增了许多特性, 弥补了CSS2的众多不足之处,使得Web开发变得更为高效和便捷。

CSS3的现状

如何对待

二、选择器

CSS3新增了许多灵活查找元素的方法,极大的提高了查找元素的效率精准度。CSS3选择器与jQuery中所提供的绝大部分选择器兼容。

2.1、属性选择器

其特点是通过属性来选择元素,具体有以下5种形式:

2.2、伪类选择器

除了以前学过的:link、:active、:visited、:hover,CSS3又新增了其它的伪类选择器。

<h5>以某元素相对于其父元素或兄弟元素的位置来获取无素的结构伪类。
</h5>

重点理解通过E来确定元素的父元素:

div>ul>li:nth-child(3){
    color: deeppink;
}

n遵循线性变化,其取值0、1、2、3、4、... 但是当n<=0时,选取无效

li:nth-child(2n-1){
    color: red;
}
li:nth-child(7n){
    color: red;
}
li:nth-child(-1n+5){
    color: red;
}
li:nth-last-child(-1n+5){
    color: red;
}
li:nth-child(even){
    color:red
}
li:nth-child(odd){
    color:blue;
}

n可是多种形式:nth-child(2n)、nth-child(2n+1)、nth-child(-1n+5)等;

E:empty 选中没有任何子节点的E元素;(使用不是非常广泛)没有任何的子元素,包括空格。

<h5>目标伪类</h5>

E:target 结合锚点进行使用,处于当前锚点的元素会被选中;

<li><a href="#title1">CSS (层叠样式表)</a></li>
<h2 id="title1">CSS (层叠样式表)</h2>
h2:target{
    color:red;
}

2.3、伪元素选择器

注意:":" 与 "::" 区别在于区分伪类和伪元素

关于before和after

三、颜色

一种新的颜色的表示方式:rgba(255,0,0,0.1)

RGBA是代表Red(红色) Green(绿色) Blue(蓝色)和 Alpha的色彩空间。虽然它有的时候被描述为一个颜色空间

新增了RGBA、HSLA模式,其中的A 表示透明度通道,即可以设置颜色值的透明度,相较opacity,它们不具有继承性,即不会影响子元素的透明度。

Red、Green、Blue、Alpha即RGBA
Hue、Saturation、Lightness、Alpha即HSLA

RGBA、HSLA可应用于所有使用颜色的地方。

R、G、B 取值范围0~255

H:色调 取值范围0~360,0/360表示红色、120表示绿色、240表示蓝色
S:饱和度 取值范围0%~100%
L:亮度 取值范围0%~100%
A:透明度 取值范围0~1

关于透明度

** 案例:**

.out{
    width: 200px;
    height: 200px;
    background: green;
    border: 1px solid darkgreen;
    margin: 40px auto;
    opacity: 0.3;
}

这样设置的话,在.out中的子盒子也会继承透明度,如果使用使用rgba 来控制颜色的话,相对opacity,就不具有继承性,子盒子就不会有透明度了。

四、文本(shadow阴影)

text-shadow,可分别设置偏移量、模糊度、颜色(可设透明度):

ul>li{
    margin: 20px;
    font-size: 24px;
}
ul>li:nth-child(1){
    text-shadow: 5px 5px 2px #ccc;
}
ul>li:nth-child(2){
    text-shadow: -5px  -5px 2px #ccc;
}
ul>li:nth-child(3){
    text-shadow: 5px 5px 2px #ccc, -5px  -5px 2px #ccc;
}

可用text-shadow来实现浮雕文字的效果。

五、盒模型

CSS3中可以通过box-sizing 来指定盒模型,即可指定为content-box、border-box,这样我们计算盒子大小的方式就发生了改变

box-sizing有两个值:content-box、border-box


个人公众号(icemanFE):分享更多的前端技术和生活感悟

个人公众号.png
上一篇 下一篇

猜你喜欢

热点阅读