学习目标:
- 精灵图
- 字体图标
- CSS三角
- CSS用户界面样式
- vertical-aliign 属性应用
- 溢出的文字省略号显示
- 常见布局技巧
- CSS初始化
学习内容:
1.1 为什么需要精灵图
为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度,出现了CSS精灵技术
核心原理:将网页中的一些小背景图片整合到一张大图中,这样服务器只需要一次请求就可以了。
1.2 精灵图的使用
核心:
- 精灵技术主要针对的是背景图片。就是把福哦个小背景图片整合到一张大图片中去。
- 移动背景图片位置,此时可以使用background-position
- 移动的距离就是这个目标图片的x和y坐标。注意网页中的坐标有所不同
- 因为一般情况下都是往上往左移动,所以数值都是负值。
- 使用精灵图的时候需要精确测量,每个小背景图片的大小和位置
1.3 精灵图的缺点
- 图片文件还是比较大的
- 图片本身放大缩小会失真
- 一旦图片制作完毕想要更换非常复杂
2.1 字体图标
字体图标的使用场景:主要用于显示网页中通用、常用的一些小图标
字体图标展示的是图标,本质属于字体。
2.2 字体图标的优点
-
轻量级:一个图标字体要比一系列图像要小,一旦字体加载了,图标就会马上渲染出来,减少了服务器请求
-
灵活性:本质其实是文字,可以很随意的改变颜色,产生阴影、透明效果、旋转等。
-
兼容性:几乎支持所有的浏览器
注意: 字体图标不能替代精灵技术,只能对工作中的图标部分提升和优化
总结: -
如果遇到一些结构和样式比较简单的小图标,就用字体图标
-
如果遇到一些结构和样式比较复杂的小图片,就用精灵图
2.3 字体图标的下载
- icomoon字库 http://iconmoon.io
- 阿里 iconfont 字库 http://www.iconfont.cn/
2.4 字体图标的引入
以阿里 iconfont 字库 为例:
-
在阿里字库下载图标后,解压压缩包,将以下文件放到项目根目录下
-
在项目中调用iconfont.css
<link rel="stylesheet" href="iconfont/iconfont.css">
- 调用类
<i class="iconfont icon-add-circle"></i>
2.5 字体图标的追加
替换文件
3.1 CSS三角制作
width: 0;
height: 0;
line-height: 0;
font-size: 0;
border: 10px solid transparent;
border-left-color: green;
4.1 什么是界面样式
就是更改一些用户操作样式,以提高用户体验
4.2 鼠标样式 cursor
li {cursor:pointer;}
属性值 | 描述 |
---|---|
default | 默认 |
pointer | 小手 |
move | 移动 |
text | 文本 |
not-allowed | 禁止 |
4.3 表单轮廓线 outline
给表单添加outline: 0;或者outline: none;
4.4 防止拖拽文本域 resize
添加resize:none;
5.1 vertical-align 设置文字和行内块元素垂直居中
使用场景:用于设置图片或者表单(行内块元素)和文字垂直对齐。
语法:
vertical-align {baseline|top|middle|bottom}
值 | 描述 |
---|---|
baseline | 默认,元素放置在父元素基线上 |
top | 把元素的顶部与行中最高元素的顶端对齐 |
middle | 把此元素放置在父元素的中部 |
bottom | 把元素的顶端与行中最低的元素的顶端对齐 |
5.2 解决图片底部默认空白缝隙问题
- 给图片添加vertical-align:middle|top|bottom
- 把图片转化成块级元素 display:biock
6.1 单行文本溢出省略号显示
/* 强制文字一行内显示 */
white-space: nowrap;
/* 隐藏溢出的文字 */
overflow: hidden;
/* 用省略号表示溢出的部分 */
text-overflow: ellipsis;
6.2 多行文本溢出省略号显示
有较大兼容性问题(了解即可)
/* 隐藏溢出部分文字 */
overflow: hidden;
/* 溢出部份文字省略号表示 */
text-overflow: ellipsis;
/* 弹性伸缩盒子模型显示 */
display: -webkit-box;
/* 限制在一个块元素显示的文本行数 */
-webkit-line-clamp: 2;
/* 设置或检索伸缩盒对象的子元素排列方式 */
-webkit-box-orient: vertical;
7.1 margin 负值运用
1.让每个盒子margin属性为负值,刚好压住相邻盒子的边框
2. 鼠标经过某个盒子的时候,提高当前盒子的层级即可(如果没有定位,则加相对定位,如果有定位,则加z-index)
7.2 文字围绕浮动元素应用
在盒子里直接放文字,给图片一个浮动,文字就会围绕图片
7.3 行内块元素运用
给父元素添加text-align:center;父元素里所有的行内元素都会居中对齐
7.4 CSS 三角强化
代码:
width:0;
height:0;
border-color:transparent red transparent transparent;
border-style:solid;
border-width:22px 8px 0 0 ;
8. CSS初始化
不同浏览器对标签的默认值是不同的,为了消除不同浏览器对html文本呈现的差异,照顾浏览器的兼容,我们需要对CSS初始化,每个网页都必须首先进行初始化。