在上海乐字节学习的第七天(持续更新中)
javascript吧
全部回复
仅看楼主
level 3
东风散步 楼主
精灵图(CSS Sprites)
一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。
因此,为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度,出现了CSS精灵技术
核心原理:
将网页中的一些小背景图像整合到一张大图中,这样服务器只需要一次请求就可以了
精灵图的使用
1.精灵技术主要针对于背景图片使用。就是把多个小背景图片整合到一张大图片中
2.这个大图片也称为sprites 精灵图或雪碧图
3.移动背景图片位置,使用的是 background-position
4.移动的距离就是这个目标图片的x y坐标。(往上往左都是负值)
5.使用精灵图时需要精确测量每个背景图片的大小位置
精灵图缺陷:
1.图片文件比较大
2.图片本身放大缩小会失真
3.一旦图片制作完毕想要更换非常复杂
字体图标(iconfont)
字体图标是一种高效的图标使用方式,展示的是图标,本质是字体
使用场景:
主要用于显示网页中通用的、常用的一些小图标
优点:
轻量级:一个图标字体比一系列的图像要小。一旦字体加载了,图标就会马上渲染出来减少了服务器请求
灵活性: 本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果、旋转稍等
兼容性:几乎所有浏览器都支持
注:字体图标只是对工作中图标部分技术的提升和优化
因此:
结构和样式比较简单的小图标就用字体图标
结构和样式比较复杂点的小图片就用精灵图
字体图标的引入(icomoon)
1.把下载包里的fonts文件夹放到页面的根目录下
2.在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; font-display: b lock; }1 2 3 4 5 6 7 8 9 10 11
3.在fonts文件夹里打开html文件添加小图标
4.指定字体(span{font-family: “icomoon”;})
字体图标的追加
如果原来的字体图标不够用,需要添加新的字体图标到原来的字体文件中
把压缩包里面的selection.json从新上传,然后选中自己想要新的图标,从新下载压缩包,并替换原来的文件即可。
CSS三角制作
网页中常见一些三角形,使用CSS就可以直接画出来
div { width: 0; height: 0; line-height: 0; font-size: 0; border: 10px solid transparent; border-left-color: #000; }
CSS用户界面样式
鼠标样式 cursor
设置或检索在对象上移动的鼠标指针采用某种系统预定的光标形状
li{ cursor: pointer;}
属性值 描述
轮廓线-outline
给表单添加 outline:0; 或者 outline:none;就可以去掉默认的蓝色边框
input {outline: none; }1
防拖拽文本域-resize
textarea {resize:none;}1
vertical-align 属性
用于设置一个元素的垂直对齐方式,但是只针对于行内元素或者行内块元素。经常用于设置图片或者表单和文字垂直对齐
vertical-align : baseline | top | middle | bottom 1
值 描述
baseline 默认 元素放置在父元素的基线上
top 把元素的顶端与行中最高元素的顶端对齐
middle 把此元素放置在父元素的中部
bottom 把元素的顶端与行中最低的元素的顶端对齐
解决图片底部默认空白缝隙问题
bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐
主要解决方法:
给图片添加 vertical-align: middle | top | bottom 等
把图片转换为块级元素: display :block
溢出的文字用省略号显示
1.单行文本溢出显示省略号
div { /* 这个单词的意思是如果文字显示不开就自动换行 */ white-space: normal; /* 1.这个单词的意思是如果文字显示不开,也必须强制一行内显示 */ white-space: nowrap; /* 2.溢出的部分隐藏 */ overflow: hidden; /* 3.文字溢出的时候用省略号来显示 */ text-overflow: ellipsis; }
2.多行文本溢出显示省略号
多行文本溢出显示省略号,有较大的兼容性问题,适合于webkit浏览器或移动端(移动端大部分是webkit内核)当作了解
div { overflow: hidden; text-overflow: ellipsis; /* 弹性伸缩盒子模型显示 */ display: -webkit-box; /* 限制在一个块元素显示的文本的行数 */ -webkit-line-clamp: num (写多少就是第几行) ; /* 设置或检索伸缩盒对象的子元素的排列方式 */ -webkit-box-orient: vertical; }
布局技巧
1.margin负值的应用
要求:
相邻盒子重叠边框不变,鼠标经过某个盒子四个边框显示另外的颜色
解决:
让每个盒子margin往左侧移动 -1px 正好压住相邻盒子边框
鼠标经过某个盒子时,提高盒子的层级
ul li { float: left; width: 150px; height: 200px; border: 1px solid red; margin-left: -1px; } ul li:hover { /* 1.如果盒子没有定位 则鼠标经过添加相对定位即可 */ position: relative; border: 1px solid pink; } /*.........................................................................*/ ul li { position: relative; float: left; width: 150px; height: 200px; border: 1px solid red; margin-left: -1px; } ul li:hover { /* 2.如果li都有定位,则利用z-index提高层级 */ z-index: 1; border: 1px solid pink; }
2.文字围绕浮动元素
浮动元素不会压住文字
3.巧用行内块元素
可以利用行内块元素性质做…
在这里插入图片描述
CSS直角三角形
.box { width: 0; height: 0; border-color: transparent red transparent transparent; border-style: solid; border-width: 100px 50px 0 0; }
CSS初始化
不同浏览器对有些标签的默认值是不同的,为了消除不同浏览器对html文本呈现的差异,照顾浏览器的兼容性,需要对CSS初始化(重设浏览器样式)
比如把中文字体转换成相应的Unicode编码 避免乱码
2020年10月23日 06点10分 1
1