CSS杂记<2> | 青训营笔记

160 阅读4分钟

415f82b9ly1ft7ds63pifj203f048glu (1).jpg

这是我参与「第四届青训营」笔记创作活动的的第2\color{CornflowerBlue}这是我参与「第四届青训营」笔记创作活动的的第2天
文章内容如有不对,请各位看官多多指正,非常感谢。

文章目录

CSS精灵图

  1. 什么是精灵图
      一个网页中往往会应用到很多或大或小的icon图像作为修饰,当网页中的图像过多时(比如王者荣耀官网,淘宝官网等),服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。
      因此,为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度,便出现了CSS精灵图技术

H8%8S8OY@SF9MTD5(8W4YPU.png

2. 精灵图工作原理
  将网页中的一些小的icon图像整合到一图片中,这样服务器就只需要请求一次就能拿到所有所需图像,提高页面的加载速度。(个人理解:为了减少向服务器发送请求的次数,我们在浏览网页的时候,加载了很多不必要的东西,所以这就可能导致我们现在的流量用的嘎嘎快)。
例如王者官网:down.png (320×244) (gtimg.cn)

  1. 精灵图使用核心
background: url(images/sprites.png) no-repeat -155px -106px

  1.精灵技术主要针对背景图片使用, 就是把多个小背景图片整合到一张大图片中
  2.移动背景图片位置, 此时可以使用background-position
  3.移动的距离就是这个目标图片的x和y坐标. 注意网页中的坐标有所不同
  4.因为一般情况下都是精灵图往上往左移动, 所以数值是负值
  5.使用精灵图的时候需要精确测量, 每个小背景图片的大小和位置

CSS字体图标

  1. 字体图标的产生
      尽管网页中有精灵图技术来减轻服务器端的压力,但若是使用精灵图来导入图片弊端也是非常明显。比如:图片文件较大;图片本身放大或缩小会失真;一旦图片制作完毕想要更换非常复杂等等。伴随着问题的出现,便产生了字体图标iconfont.
  1. 字体图标的优点
      轻量级:一个图标字体要比一系列的图像要小,一旦字体加载了,图标就会马上渲染出来。其原理也只向服务器发送了一次请求,减轻了服务器压力。
      灵活性:展示的是图标,本质其实是文字,可以随意的改变颜色、产生阴影、透明明果、旋转等。
      兼容性:几乎支持所有的刘览器。
  1. 字体图标的使用
      推荐几个比较好的字体图标网站:
        icomoon.io/
        www.iconfont.cn/
      1. 在icomoon.io网站上下载好图标,将下载包里的fonts文件夹放在页面根目录下。
      2. 在CSS样式中全局声明字体(代码如下):简单理解把这些字体文件通过css引入到我们页面中。一定要注意字体文件路径的问题。
/* 字体声明 */
@font-face {
  font-family: 'icomoon';
  src: url('fonts/icomoon.eot?7kkyc2');
  srcurl('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 ;

    3. 在html标签内添加小图标(如下图) 212DB5F8374293854E66E4A831D68474.jpg     4. 在标签中写上相关样式就能在页面中展示出来了,在样式中必须指定字体font-family,且与字体声明代码中的一致。

CSS用户界面样式

所谓界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。

  1. 更改用户的鼠标样式cursor
li { cursor: pointer; }
属性值描述
default小白 默认
pointer小手
move移动
text文本
not-allowed禁止
  1. 表单轮廓outline
      给表单添加outline: 0; 或者 outline: none; 样式之后,就可以去掉默认的蓝色边框
input{ outline: none; }
  1. 防止拖拽文本域resize
textarea{ resize: none; }

总结

  • 个人认为CSS要想熟练掌握,首先得自己动手多去实践,然后观察样式的变化;其次,多找一些网站去看它的源码并理解是如何布局的
  • 真正的大师永远怀着一颗学徒的心。