2022-03-01 CSS 其七 CSS 高级技巧

黄金树.jpg

1.CSS精灵图

CSS的精灵技术就是将多张小图片整合到一张大图片当中,一次性提供给浏览器。因为网页当中一般都会存在许多的图片,如果浏览器渲染每一张图片的时候都向服务器请求一次数据,这样频繁的请求会严重影响页面的加载速度。
使用精灵图的方式主要通过background-position来实现,精灵图只适用于较小的图片。实现的方式大概就是用预先做好的盒子,移动背景图片的位置,只有在盒子内的元素才会被显示出来,就像一个mask一样。比如这样的一张精灵图,我需要其中两个图标,在html中定义好两个盒子之后,在CSS中书写下列代码即可。

  .box1 {
            width: 60px;
            height: 60px;
            background: url(images/sprites.png);
            background-position: -182px 0;
            margin: 30px auto;
        }

        .box2 {
            width: 27px;
            height: 25px;
            background: url(images/sprites.png) no-repeat -155px -106px;
            margin: 90px auto;

        }

特别注意坐标轴方向,x轴向右为正,y轴向下为正。

2.字体图标

字体图标是一种特殊的图标使用方式,虽然展示在页面上的是图标,但是实际上却是字体。相比于图片,字体的图标更加轻量,字体加载了,字体图标就会立刻显示。由于字体图标的本质是文字,所以修改起来也比较方便。字体图标的兼容性也比较强,几乎所有的浏览器都支持。
常用的下载字体图标的网站:
1.icomoon 字库 http://icomoon.io
2.阿里 iconfont 字库 http://www.iconfont.cn/
选择需要的图标下载之后,在解压后的文件里面找到font文件夹,将其放在我们编写html文件的根目录下,让后在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;
}

在需要添加字体图标的盒子里面,还要进行下列操作



复制图示图标并且放在盒子里面即可使用字体图标。

3.CSS三角

在网页中经常可以见到一些三角形的图标,除了通过引入图片来得到三角形,CSS也是可以直接得到三角形的。代码如下

div {
 width: 0;
 height: 0;
 line-height: 0;
 font-size: 0;
 border: 50px solid transparent;
 border-left-color: pink;
}

最后就可以得到一个向右的三角形。
可以发现我们利用CSS制作三角形的方法就是定义一个无高宽的盒子,用边框来得到三角形,通过改变边框的粗细还能得到其他各种各样的三角形。

4.用户界面样式

4.1鼠标样式

当我们把鼠标移动到某个链接上面的时候,会发现鼠标的箭头有时候变成了一个小手,这就是通过改变鼠标样式来实现的。
语法如下:

li {cursor: pointer; }

除了pointer,还有其他可以添加的属性。


image.png

4.2轮廓线

在学习表单的时候,我们使用过input来让用户输入内容,但是我们发现当鼠标确认要开始输入内容的时候,外围会出现一个轮廓线。
比如这样,当我鼠标准备输入内容的时候,边框就会加粗。如何取消这个效果呢?



只需要给input添加一个outline属性就可以了

input {
            outline: none;
        }

4.3防止文本域拖拽

在添加文本域的时候,会发下右下角有一个小三角,我们拖动这个小三角可以任意改变文本域的大小。我们并不希望用户能这样做,因为这样势必会打乱页面当中其他元素的布局,为了阻止文本域拖拽,我们也给文本域添加CSS样式。

textarea{ resize: none;}

这样文本域的大小就不能被随意更改了。

5. vertical-align 属性应用

这个属性是用来设置元素的对齐方式的,有时候我们需要图标和文字顶部或者底部或者中心对齐,就可以使用这个属性来实现。

vertical-align : baseline | top | middle | bottom

一张图简单解释了这几种对齐方式的区别


6.溢出部分文字用省略号表示

这里只做了解,分别看一下单行文字和多行文字的情况
单行文字

/*1. 先强制一行内显示文本*/
 white-space: nowrap; ( 默认 normal 自动换行)
 /*2. 超出的部分隐藏*/
 overflow: hidden;
 /*3. 文字用省略号替代超出的部分*/
 text-overflow: ellipsis;

多行文字:

overflow: hidden;
text-overflow: ellipsis;
/* 弹性伸缩盒子模型显示 */
display: -webkit-box;
/* 限制在一个块元素显示的文本的行数 */
-webkit-line-clamp: 2;
/* 设置或检索伸缩盒对象的子元素的排列方式 */
-webkit-box-orient: vertical;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 能够使用精灵图 能够使用字体图标 能够写出CSS三角 能够写出常见的CSS用户界面样式 能够说出常见的布局技巧 1...
    皮皮章阅读 1,482评论 0 0
  • CSS 高级技巧 1. 精灵图 为什么需要精灵图? 精灵图的使用 精灵图课堂案例 1 精灵图 1.1 为什么需要精...
    Tutuls阅读 1,631评论 0 0
  • 一、精灵图 精灵图有效地减少服务器接收和发送请求的次数,提高页面的加载速度。 精灵图主要针对背景图片使用。 使用精...
    在想什么奇奇怪怪阅读 1,410评论 0 0
  • 一、精灵图 1.1 为什么需要精灵图 一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就...
    西红柿君呐阅读 2,885评论 0 0
  • CSS浮动 传统网页布局的三种方式:标准文档流,浮动和定位,在实际开发中,一个页面基本都包含了这三种布局方式; 标...
    YanZi_33阅读 1,222评论 0 0