CSS高级技巧导读

1,精灵图

1.1 为什么需要精灵图?

目的:为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度

核心原理:将网页中的一些小背景图像整合到一张大图中,这样服务器只需要一次请求就可以了

1.2 精灵图的使用

使用精灵图核心:

1,精灵技术主要针对于背景图片使用,就是把多个小背景图片整合到一张大图片中

2,这个大图片也称为sprites   精灵图  或者  雪碧图

3,移动背景图片位置,此时可以使用 background-position

4,移动的距离就是这个目标图片的 x 和 y 坐标。(x轴往右走是正值,y轴往下走是正值)

5,因为一般情况下都是往上往左移动,所以数值是负值

6,使用精灵图的时候需要精确测量,每个小背景图片的大小和位置

2,字体图标

2.1 字体图标的产生

字体图标使用场景:主要用于显示网页中通用、常用的一些小图标

精灵图有很多优点,但是缺点很明显:

1,图片文件还是比较大的

2,图片本身放大和缩小会失真

3,一旦图片制作完毕想要更换非常复杂

字体图标可以为前端工程师提供一种方便高效的图标使用方式,展示的是图标,本质属于字体

2.2 字体图标的优点

 1,轻量级:一个图标字体要比一系列的图像要小。一旦字体加载了,图标就会马上渲染出来,减少了服务器请求

2,灵活性:本质其实是文字,可以很随意的改变颜色、产生阴影、透明效果、旋转等

3,兼容性:几乎支持所有的浏览器,请放心使用

注意:字体图标不能代替精灵技术,只是对工作中图标部分技术的提升和优化

总结:

1.如果遇到一些结构和样式比较简单的小图标,就用字体图标

2,如果遇到一些结构和样式复杂一点的小图片,就用精灵图

字体图标是一些网页常见的小图标,我们直接网上下载即可。因此使用可以分为:

1,字体图标的下载

2,字体图标的引入(引入到我们html页面中)

3,字体图标的追加(以后添加新的小图标)

2.3 字体图标的下载

推荐下载网站:

icomoon字库:                http://icomoon.io

阿里iconfont字库:          http://www.iconfont.cn/

3,CSS三角 

网页中常见的一些三角形,使用CSS直接画出来就可以,不必做成图片或者字体图标

div{
    width:0;
    height:0;
    /*为了照顾兼容性*/
    line-height:0;
    font-size:0;
    border:50px solid transparents;
    border-left-color:pink;
}

4,CSS用户界面样式

4.1 什么是界面样式 

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

4.2 更改用户的鼠标样式 cursor

li { cursor:pointer;}

设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状

default                小白 默认

pointer                小手

move                  移动

 text                    文本

not-allowed        禁止

4.3 表单轮廓线 outline

给表单添加 outline:0;或者 outline:none;样式之后,就可以去掉默认的蓝色边框

input { outline:none;}

input {outline:0;}

<input style="outline: none;" type="text">

4.4 防止表单域拖拽 resize

textarea { resize:none;}

<textarea style="resize: none;" name="" id="" cols="30" rows="10"></textarea>

5,vertical-align 属性应用

5.1 图片、表单和文字对齐

 CSS的  vertical-align 属性使用场景:经常用于设置图片或者表单(行内块元素)和文字垂直对齐

官方解释:用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效

语法:

vertical-align: baseline  |  top  |  middle  |  bottom

baseline(基线)                        默认,元素放置在父元素的基线上

top (顶线)                               把元素的顶端与行中最高元素的顶端对齐

middle(中线)                           把此元素放置在父元素的中部

bottom(底线)                          把元素的顶端与行中最低的元素的顶端对齐 

 

img{
   /* 图片与文字底线对齐 */
   vertical-align: bottom;
}

 5.2 解决图片底部默认空白缝隙问题

bug:为图片添加边框时,图片底侧会有一个空白缝隙,(原因是行内块元素会和文字的基线对齐)

 主要解决方式有两种:

① 给图片添加 vertical-align:middle | top | bottom等。(提倡)

② 把图片转换为块级元素 display:block;

6,溢出的文字省略号显示

1,单行文本溢出显示省略号

1,先强制一行内显示文本

white-space:nowrap;(默认normal 自动换行)

2,超出部分隐藏

overflow:hidden;

3,文字用省略号替代超出的部分

text-overflow:ellipsis;

2,多行文本溢出显示省略号(了解)

多好文本溢出显示省略号,有较大兼容性问题,适合于 webKit浏览器 或 移动端

overflow:hidden;

text-overflow:ellipsis;

/*弹性伸缩盒子模型显示*/

display:-webkit-box;

/*限制在一个块元素显示的文本的行数*/

-webkit-line-clamp:2;

/*设置或检索伸缩盒对象的子元素的排列方式*/

-webkit-box-orient:vertical;

7,常见布局技巧

7.1,margin负值的运用

1,让每个盒子margin往左侧移动-1px,正好压住相邻盒子边框

li{
        list-style: none;
        float: left;
        width: 150px;
        height: 200px;
        border: 1px solid pink;
        margin-left: -1px;
      }

 2,鼠标经过某个盒子的时候,提高当前盒子的层级

如果没有定位,则加相对定位(保留位置)

如果有定位,则添加z-index

7.2,文字围绕浮动元素

7.3,行内块的巧妙运用

7.4,CSS三角强化

CSS制作直角三角形

底部删除,上部边框加大,左边透明

.box{
        width: 0;
        height: 0;
        border-top: 200px solid transparent;
        border-left: 100px solid transparent;
        border-right: 100px solid red;
        border-bottom: 0 solid gold;
      }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/345316.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

centos7.9安装redmine5.1.1

前提&#xff1a; 安装mysql并新建数据库--教程太多了此步骤省略&#xff1b; 用sqlyog连上mysql创建数据库redmine&#xff1b; 1.下载redmine-5.1.1.tar.gz&#xff0c;上传到/usr/local/software目录下&#xff1b; 2.解压 cd /usr/local/software tar -zxvf redmine-5.…

JavaScript进阶:WebAPIs重点知识整理2

目录 1 对节点的相关操作 1.1 查找节点 1.1.1 查找节点的父节点 1.1.2 查找节点的子节点 1.1.3 查找节点的兄弟节点 1.2 新增节点&#xff08;先创建&#xff0c;后追加&#xff09; 1.3 克隆节点 1.4 删除节点 2 M 端&#xff08;移动端&#xff09;事件 3 JS清空表…

uniapp使用uni-forms表单校验无效

查看是否写了name属性&#xff0c;且name属性的属性值得和下面v-model绑定的一致&#xff0c;否则校验不生效 官网

C#string字符串相关面试题

C#字符串&#xff08;string&#xff09;是什么类型 C#中的字符串是一种引用类型&#xff0c;属于.NET Framework中的System.String类。在C#中&#xff0c;字符串是不可变的&#xff0c;也就是说&#xff0c;一旦被创建&#xff0c;就不能再被修改。这意味着对于任何字符串的操…

2024年可能会用到的几个地图可视化模板

前言 在数字化的过程中&#xff0c;数据可视化变得越来越重要。用户喜欢通过酷炫的视觉效果和直观的数据展示来理解数据。可视化地图组件是数据可视化的重要组成部分。这些地图组件提供多样化的效果&#xff0c;能够更好地展示数据的关系和地理分布&#xff0c;直观地将数据与…

JUC-CAS

1. CAS概述 CAS(Compare ans swap/set) 比较并交换&#xff0c;实现并发的一种底层技术。它将预期的值和内存中的值比较&#xff0c;如果相同&#xff0c;就更新内存中的值。如果不匹配&#xff0c;一直重试&#xff08;自旋&#xff09;。Java.util.concurrent.atomic包下的原…

二叉树

目录 1翻转二叉树 2对称二叉树 3二叉树的深度 最大深度 最小深度 4二叉树的结点数量 完全二叉树的结点数量 5平衡二叉树 6 中序 后序求前序 二叉树结构体如下&#xff1a; struct freenode {int data;struct freenode *lchild, *rchild;//左孩子 右孩子 }T; 1翻转二…

基于springboot+vue的在线商城系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

大数据处理,Pandas与SQL高效读写大型数据集

大家好&#xff0c;使用Pandas和SQL高效地从数据库中读取、处理和写入大型数据集&#xff0c;以实现最佳性能和内存管理&#xff0c;这是十分重要的。 处理大型数据集往往是一项挑战&#xff0c;特别是在涉及到从数据库读取和写入数据时。将整个数据集加载到内存中的传统方法可…

【第十六课】哈希表(acwing-840模拟散列表 / 拉链法 / 开放寻址法 / c++代码 )

目录 前言 哈希表思想 拉链法 开放寻址法 acwing-840模拟散列表 拉链法代码如下 开放寻址法代码 前言 我对哈希表的印象就是&#xff1a;感觉可以类比数组&#xff0c;像数组的下标和该下标所对的元素之间的关系一样&#xff0c;就是比如ha[0]1&#xff0c;那么我下标为…

mask transformer相关论文阅读

前面讲了mask-transformer对医学图像分割任务是非常适用的。本文就是总结一些近期看过的mask-transformer方面的论文。 因为不知道mask transformer是什么就看了一些论文。后来得出结论&#xff0c;应该就是生成mask的transformer就是mask transformer。 DETR 很多这些论文都…

机器学习 | 掌握Matplotlib的可视化图表操作

Matplotlib是python的一个数据可视化库&#xff0c;用于创建静态、动态和交互式图表。它可以制作多种类型的图表&#xff0c;如折线图、散点图、柱状图、饼图、直方图、3D 图形等。以渐进、交互式方式实现数据可视化。当然博主也不能面面俱到的讲解到所有内容&#xff0c;详情请…

新特性Record最全用法总结---动力节点总结

目录 0、有用的新特性 一、Record 1.1、Record的介绍&#xff1a; 1.2、Record的声明&#xff1a; 1.3、Record的创建&#xff1a; 1.4、Record使用举例&#xff1a; 1.5、Record-实例方法、静态方法 1.6、Record-三类构造方法 1.6.1、紧凑型构造、定制构造方法&#…

MySQL的启动与连接

一、启动MySQL服务 方式一&#xff1a;进入计算机管理界面&#xff0c;点击【服务】&#xff0c;找到【MYSQL80】&#xff0c;右键开启即可 方式二&#xff1a;以管理员身份打开powershell, 输入命令net start MYSQL80. 二、连接MySQL服务 进入MySQL的安装目录中的bin目录&a…

【jetson笔记】torchaudio报错

原因是因为pip安装的包与jetson不兼容导致 自己安装或者cmake编译也会报错 需要拉取官方配置好的docker镜像 拉取docker镜像 具体容器可以看官网&#xff0c;按照自己需求拉取即可 https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-ml 如果其他包不需要只需要torc…

Supplier 惰性调用和 Future#get 同步等待调用结合

&#x1f4d6;一、背景介绍 关于任务异步执行&#xff0c;两个点不可避免&#xff1a;异步结果和异步回调。 而在我的工程中有这样一段代码&#xff1a;使用 CompletableFuture 进行封装&#xff0c;可以异步执行&#xff0c;异步回调&#xff0c;通过 get() 等待异步任务的结…

ArcEngine添加点要素、线要素、面要素及学习总结

基于C#的ArcEngine二次开发教程&#xff08;13&#xff09;&#xff1a;点、线、面要素的绘制_arcengine onmousedown-CSDN博客 https://www.cnblogs.com/cannel/p/11074343.html ArcEngine绘制点、线、多边形、矩形、圆形、椭圆的代码_arcengine 开发 生成矩形-CSDN博客 https…

《数学之友》期刊投稿方式投稿邮箱

《数学之友》是国家新闻出版总署批准的正规期刊&#xff0c;设置的栏目主要有&#xff1a;数学教育、教材研究、教学研究、数学建模、思想方法、数学学习、解题探索、CAI专题、复习考试、错例剖析等。从解题技巧方法、数学问题的溯源探微释疑到新课程背景下的教改教法教案&…

Qt事件处理,提升组件类

1.相关说明 1.提升组件QLabel的类&#xff0c;以实现双击功能 2.监控键盘事件&#xff0c;实现上下左右移动 3.鼠标点击获取坐标 2.相关界面 3.相关代码和操作 自定义类TMyLabel&#xff0c;父类为QLabel tmylabel.h #ifndef TMYLABEL_H #define TMYLABEL_H #include <QL…

thinkphp+vue+mysql旅游推荐攻略分享网站p0667

基于php语言设计并实现了旅游分享网站。该系统基于B/S即所谓浏览器/服务器模式&#xff0c;应用thinkphp框架&#xff0c;选择MySQL作为后台数据库。系统主要包括用户、景点信息、攻略分类、旅游攻略、门票购买、留言反馈、论坛管理、系统管理等功能模块。运行环境:phpstudy/wa…