遵循以下顺序
字体图标使用场景: 主要用于显示网页中通用、常用的一些小图标。
精灵图是有诸多优点的,但是缺点比较明显。
此时,有一种技术的出现,很好的解决了以上问题,就是字体图标 iconfont
字体图标可以为前端工程师提供一种方便高效的图标使用方式,展示的是图标,本质属于字体。
轻量级:一个图标字体比一系列的图像要小,一旦字体加载了,图标就会马上渲染出来,减少了服务器的请求
灵活性:本质其实是文字,可以很随意的改变颜色,产生阴影,透明效果,旋转等
兼容性:几乎支持所有的浏览器
注意:字体图标不能代替精灵图,只是对图标部分进行了优化。
总结:
字体图标是一些网页常见的小图标,我们直接网上下载即可。因此使用步骤可以分为:
推荐下载网站:
icomoon 字库 比较全面,国外服务器,打开速度你懂的。
点击 IcoMoon App->选择需要的图标->点击Generate Font->点击下载
阿里 iconfont 字库 免费图标库。但是需要登录 http://www.iconfont.cn/
下载完成后,原文件不要删除,后面会用的到。
我们以 icomoon 字库网为例,将下载包解压,解压之后的文件如图:
在CSS样式中全局声明字体:简单理解把这些字体通过css引入到我们页面中
一定要注意字体文件路径问题
@font-face {
font-family: 'icomoon';
src: url('fonts/icomoon.eot?7kkyc2');
src: url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?7kkyc2') format('truetype'),
url('fonts/icomoon.woff?7kkyc2') format('woff'),
url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
/* span使用字体图标 */
span {
font-family: "icomoon";
}
注意:标签中的 font-family 的值和我们之前引入字体图标的font-family 必须一样,这里均为 icomoon。
如果工作中,原来的字体图标不够用了,我们需要添加新的字体图标到原来的字体文件中。
以 icomoon字库 网为例,点击网站内import icons
把压缩包里面的 selection.json 重新上传,然后选中自己想要新的图标,重新下载压缩包,并替换原来的文件即可。
不同浏览器所支持的字体格式是不一样的,字体图标之所以兼容,就是因为包含了主流浏览器支持的字体文件。
.ttf 格式、.woff 格式、.eot 格式、.svg 格式,不同浏览器支持不同的格式。
添加到购物车完成后,点击右上角的购物车图标,选择添加至项目
选择我们刚刚创建的项目->点击确定
之后自动跳转到对应的项目里了
所谓的界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。
更改用户的鼠标样式
表单轮廓
防止表单域拖拽
设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状
li {
cursor: pointer;
}
属性值 | 描述 |
---|---|
default | 小白,默认 |
pointer | 小手 |
move | 移动 |
text | 文本 |
not-allowed | 禁止 |
给表单添加 outline:0;
或者 outline: none;
样式后,就可以去掉默认的蓝色边框。
input {
outline: none;
}
实际页面中,文本域右下角不可拖拽。
textarea {
resize: none;
}
CSS 的 vertical-align 属性使用场景:经常用于设置图片或者表单(行内块元素)和文字垂直对齐。
官方解释:用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效
vertical-align: baseline | top | middle | bottom
值 | 描述 |
---|---|
baseline | 默认,元素放置在父元素的基线上 |
top | 把元素的顶端与行中最高元素的顶端对齐(顶线对齐) |
middle | 把此元素放置在父元素的中部(中线对齐) |
bottom | 把元素的顶端与行中最低的元素的顶端对齐(底线对齐) |
图片、表单都属于行内块元素,默认的 vertical-align 是基线对齐。
此时可以给图片、表单这些行内块元素的 vertical-align 属性设置为 middle 就可以让文字和图片垂直居中对齐了。
bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐(给图片加边框就可以看见)
主要解决办法有两种:
vertical-align : middle | top |bottom
等(常用方式)display:block;
,因为块级元素不会有vertical-align 属性必须满足三个条件:
/* 1.先强制一行内显示文本 */
/*默认 normal 是自动换行,nowrap是强制一行显示文本*/
white-space: nowrap;
/* 2.超出的部分隐藏 */
overflow: hidden;
/* 3.文字用省略号替代超出的部分*/
/*ellipsis:省略号*/
text-overflow: ellipsis;
多行文本溢出显示省略号,有较大的兼容性问题,适合于 webKit 浏览器或移动端(移动端大部分是webKit内核)
overflow: hidden;
text-overflow: ellopsis;
/* 弹性伸缩盒子模型显示 */
display: -webkit-box;
/* 限制在一个块元素显示的文本的行数 */
-webkit-line-clamp: 2;
/* 设置或检索伸缩盒对象的子元素的排列方式 */
-webkit-box-orient: vertical;
更推荐让后台人员来做这个效果,因为后台人员可以设置显示多少个字,操作更简单。
两个盒子加边框1px,浮动,贴紧会出现 1 + 1 = 2px
给右边盒子添加margin-left: -1px
正数向右边走,负数向左边走
当我们有多个盒子时的解决办法:
巧妙运用浮动元素不会压住文字的特性
页码在页面中间显示
把这些链接盒子转换为行内块,之后给父级指定 text-align: center
利用行内块元素中间有缝隙,并且给父级添加 text-align: center ,行内块元素会水平居中
浏览器样式初始化
normalize Normalize.css 使浏览器呈现所有 HTML 元素更加一致,并且符合现代 web 标准。Normalize.css 只作用于需要规范化的样式。
样式初始化
* {
margin: 0;
padding: 0
}
em,
i {
font-style: normal
}
li {
list-style: none
}
img {
border: 0;
vertical-align: middle
}
button {
cursor: pointer
}
a {
color: #666;
text-decoration: none
}
a:hover {
color: #c81623
}
button,
input {
font-family: 'Microsoft YaHei', 'Heiti SC', tahoma, arial, 'Hiragino Sans GB', "\5B8B\4F53", sans-serif
}
body {
-webkit-font-smoothing: antialiased;
background-color: #fff;
font: 12px/1.5 'Microsoft YaHei', 'Heiti SC', tahoma, arial, 'Hiragino Sans GB', "\5B8B\4F53", sans-serif;
color: #666
}
.hide,
.none {
display: none
}
.clearfix:after {
visibility: hidden;
clear: both;
display: block;
content: ".";
height: 0
}
.clearfix {
*zoom: 1
}
1、使用字体图标给小米侧边栏加上箭头
2、菜单内容超出部分,用文本超出省略解决
ckground-color: #fff;
font: 12px/1.5 ‘Microsoft YaHei’, ‘Heiti SC’, tahoma, arial, ‘Hiragino Sans GB’, “\5B8B\4F53”, sans-serif;
color: #666
}
.hide,
.none {
display: none
}
.clearfix:after {
visibility: hidden;
clear: both;
display: block;
content: “.”;
height: 0
}
.clearfix {
*zoom: 1
}
## 9 练习作业
1、使用字体图标给小米侧边栏加上箭头
2、菜单内容超出部分,用文本超出省略解决