# CSS3 新增特性
- 选择器
- 边框:圆角,阴影和边框图片
- 背景:背景图片大小,位置,平铺 1,2,3 今天
- 文字阴影、溢出,加载新字体 (将图标当字体使用) 1 次课
- 2D/3D 转换,过渡,动画 做出类似于 PPT 的效果,2 次课
- 多栏布局,弹性布局 1 次课
- 媒体查询,响应式 1 次课(一套代码可以用在多个终端中使用)
# CSS3 新增的选择器
在 5 年前,如果要体验 CSS3 的新特性,可能需要添加前缀来实现。
渐进增强的开发方式
1 | chrome/safari:-webkit- |
-
之前学 jquery 接触过一部分 CSS3 选择器了
回顾:1
2
3
4div+p
div~p
div>p
[属性名='属性值']{}伪元素 VS 伪类
before VS 爱恨原则的区别1
2
3
4
5
6
7div:before{} //伪元素
div:after{}
...
//伪类
div:active{}
div:visited{}
。。。 -
新增的选择器
1
2
3
4E:first-child 父元素的第一个子元素
E:last-child 父元素的最后一个子元素
E:nth-child(n) 匹配父元素的第n个子元素
E:nth-of-type(n) 选择所有其父元素中同类型第n个位置的匹配E的子元素
# 边框样式:圆角和阴影 - 必备技能
-
圆角
语法:跟 padding 一样,可以有多个取值1
2
3
4
5
6
7
8
9
10
11
12
13
14
15div{
//4个圆角都拥有10px的弧度
border-radius:10px;
//左上、左下为10,右上、右下为20px
border-radius:10px 20px;
//左上,右上,右下,左下
border-radius:10px 5px 15px 20p;
//左上1,右上和左下是3,右下是5px
borde-radius:1px 3px 5px;
//很奇怪的写法: / 得到一个不规则的圆角
border-radius:10px/20px;
//正圆:宽高一样,圆角为50%
border-radus:50%
} -
阴影 - 盒子的阴影 - 立体效果(PS 中差不多)
语法–必备技能
1
2
3
4
5
6
7
8
9
10
11
12语法:
box-shadow: h-shadow v-shadow [blur spread color inset];
blur:模糊的程度
spread:展开; 伸开;范围-模糊的半径
inset:默认是外阴影,如果去掉,则变成内阴影
//值的设置:
box-shadow:5px 5px;水平、垂直阴影的位置,必需,颜色默认为黑色
box-shadow:5px 5px black;
box-shadow:5px 5px 5px black;模糊距离
box-shadow:5px 5px 5px 5px black;阴影大小
box-shadow:5px 5px 5px 5px black inset;内阴影,该值不要则为外阴影(不需要额外声明外阴影)
//注意:如果颜色没有设置,但设置了color颜色,则阴影颜色同color字体颜色,否则默认为黑色
# 新增的背景属性
-
背景覆盖(大小)–重点
解决了之前的痛点问题:当背景图和背景容器尺寸不一致如何缩放的问题。
1
2新增了一个特性:
background-size:百分比|px|cover|contain -
背景位置–了解
1
2
3
4
5
6语法:
background-origin:content-box|padding-box|border-box;
参数说明:
content-box:背景图像相对于内容框来定位
padding-box :背景图像相对于内边距框来定位(默认值)
border-box:背景图像相对于边框盒框来定位 -
背景裁剪–IE 11 以上才支持–了解
1
2
3
4
5
6
7语法:
background-clip:content-box|padding-box|border-box;
参数说明:
content-box:背景被裁剪到内容框
padding-box :背景被裁剪到内边距框
border-box:背景被裁剪到边框盒框(默认值)
可用于背景图
# CSS3 多重背景
1 | div{ |
# CSS3 多重阴影
1 | div{ |
# 文字阴影 - 支持多重阴影
1 | 属性: |
1 | div{ |
# css 文本折行处理–面试
面试场景:随机拿 2 个来做比较,让你区分。
-
单词分割
1
2属性:
word-break:normal/break-all[记住]/keep-all;作用:
对于长单词或长的数字不会换行,对于中文则会换行,如果使用 keep-all 则都不会换行。
该属性如果对于英文超出宽度部分直接截断。只要碰到边界就会折断,不管单词长短。 -
自动换行
1
2
3
4
5属性:
word-wrap:normal|break-word;
允许对长的不可分割的单词进行分割并换行到下一行。
值: 默认是没有分隔
break-word 在长单词或 URL 地址内部进行换行。规则:
默认换行规则:单个的不可分割单词不会换行,长的单词如果在一行放不下,会换行到下一行显示。
该属性对于英文,超出部分容不下的单词会换行处理,但可能会留下较多空白。即只有很长的在一行中容不下的单词才会截断,其他的会以单词为单位。1、2 的区别:
对于长的单词,使用 1 会破坏单词完整性,使用 2 会尽可能的保留单词的完整性,但是可能会产生很多空白
-
段落中的文本不进行换行
white-space:nowrap;// 记住1
2
3
4
5
6
7
8white-space:normal/pre/nowrap/pre-wrap/pre-line/inherit;
该属性主要用于亚洲文字是否折行,默认是折行,一般设置nowrap不让中文折行。
normal 默认。空白会被浏览器忽略。
pre 空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
pre-wrap 保留空白符序列,但是正常地进行换行。
pre-line 合并空白符序列,但是保留换行符。
inherit 规定应该从父元素继承 white-space 属性的值。 -
文本溢出处理(要不要显示省略号)
1
2
3
4
5
属性:text-overflow: clip|ellipsis|string;
clip 修剪文本。
ellipsis 显示省略符号来代表被修剪的文本(推荐)。
string 使用给定的字符串来代表被修剪的文本。(不过在谷歌浏览器上不起作用,在火狐上可以) -
让溢出的文本出现省略号
1
2
3
4
5
6
7/*可以将cutFont当做类似于clearfix那样的公共样式使用,哪里需要添加省略号,就写在哪里*/
.cutFont{
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
/*注意:需要给容器添加宽度,即让文本要溢出才有效*/
# 图标字体 - 重点
图标字体从哪里来:
-
使用 AI - 矢量工具 - PS 差不多 - 自己造,自己设计自定义字体
-
用别人设计好的。阿里巴巴内部的一套系统
www.iconfont.cn
拥有非常丰富的字体资源,可以让我们定制一套属于自己的图标字体,而且还可以随时进行增删改查。
如何自定义字体教程步骤:
-
打开 www.iconfont.cn 开始找图标素材
-
搜索你要定制或要查找的图标字体,并加入购物车
-
在购物车中将这些图标添加到指定的项目,方便后期管理:增删改查
-
下载该项目–下载之前看看是不是选中的是 font-class
-
在项目中使用字体图标
-
根据使用说明书使用
1
2
3
4
51. 将font字体中的6个文件:1个iconfont.css和5个字体后缀提取到项目中
2. 在项目HTML中导入该样式文件
3. 添加一个空标签,比如span使用对应的字体
<span class="iconfont icon-tongxunlu"></span>
4. 可以通过添加额外的样式修改字体图标的文字大小和文字颜色等(将其当做普通文字看待) -
如果要在原有的图标中新增或删除字体,需要再次回到网站中,将字体添加到购物车,到对应的项目,再下载再使用(即重复以上步骤)
# css3 渐变
https://www.cnblogs.com/lhb25/archive/2013/01/30/css3-linear-gradient.html
可以代替背景图或者制作个性化的按钮。渐变就是一种特殊的颜色。
适用于背景中:background,不能用在 color 中。
-
线性渐变
1
2
3
4
5
6
7
8
9
10
11语法:
background: linear-gradient(direction, color-stop1, color-stop2, ...);
//参数:
direction:默认不写从上到下
to right 从左到右
to bottom right 从左上角到右下角
颜色至少要写2个
语法:
background: linear-gradient(direction, color-stop1 size, color-stop2 size, ...);
比如:
background: linear-gradient(to right, yellow 10%, orange 50%); -
径向渐变 - PS
在线下的基础上多了一个参数:shape,形状
1
2
3
4
5
6
7
8
9background: radial-gradient(center, shape, start-color size, ..., last-color size);
参数说明:
center:默认从中心开始渐变,其他值:top,bottom
shape渐变的形状:默认是椭圆circle/ellipse
size渐变的大小:默认颜色均匀分布
实例:
background: radial-gradient(red, yellow);