CSS学习记录21

CSS 工具提示

通过CSS 创建工具提示(Tooltip)。

当用户将鼠标指针移动到元素上时,工具提示通常用于提供关于某内容的额外信息:

<style>
/* Tooltip 容器 */
.tooltip {position: relative;display: inline-block;border-bottom: 1px dotted black; /* 如果需要在可悬停文本下面显示点线 */
}/* Tooltip 文本 */
.tooltip .tooltiptext {visibility: hidden;width: 120px;background-color: black;color: #fff;text-align: center;padding: 5px 0;border-radius: 6px;/* 定位工具提示文本 - 请看下面的例子 */position: absolute;z-index: 1;
}/* 将鼠标悬停在工具提示容器上时,显示工具提示文本 */
.tooltip:hover .tooltiptext {visibility: visible;
}
</style><div class="tooltip">Hover over me<span class="tooltiptext">Tooltip text</span>
</div>

HTML:

使用容器元素(例如<div>)并向其添加“tooltip"类。当用户将鼠标悬停在此<div>上时,会显示工具提示文本。工具提示文本位于 class="tooltiptext" 的嵌入式元素(如<span>)中。

CSS:

tooltip 类使用position: relative,用于放置工具提示文本(position: absolute)。tooltiptext 类保存实际的工具提示文本。默认情况下它是隐藏的,并会在鼠标悬停时可见。 当用户将鼠标移到class="tooltip"的<div>上时,:hover选择器用于显示工具提示文本。

定位工具提示

本例中,工具提示位于“可悬停”文本(<div>)的右侧(left:105%)。另外请注意,top:-5px 用于将其放置在其容器元素的中间。使用数字5是因为本例中工具提示文本的上下内边距均为5px。如果增加其内边距,您可以同时增加top属性的值,以确保它停留在中间。

  左侧提示工具:

.tooltip .tooltiptext {top: -5px;right: 105%; 
}

 如果您希望工具提示位于上方或下方,可以参考下面的例子。这里使用了负60像素的左外边距属性(margin-left)。 这是为了把工具提示与可悬停文本进行居中对齐。该值是工具提示宽度(width)的一半。

.tooltip .tooltiptext {width: 120px;bottom: 100%;left: 50%; margin-left: -60px; /* Use half of the width (120/2 = 60), to center the tooltip */
}

底部工具提示

.tooltip .tooltiptext {width: 120px;top: 100%;left: 50%;margin-left: -60px; /* Use half of the width (120/2 = 60), to center the tooltip */
}

工具提示箭头

如需创建在工具提示的指定侧面显示的箭头,请在工具提示后添加"空的”的内容,并使用伪元素类::after 和 content 属性。 箭头本身是使用边框创建的。这会使工具提示看起来像气泡。

注意这里使用了border的特性,当我们不给boder对应的元素设置宽高时,此时再加边框会为显示一个小正方形,每一个border的边等同于四分之一的正方形,它看起来很像箭头,所以就借此充当为工具提示的箭头。

解释:将箭头定位在工具提示内:top:100%将箭头放置在工具提示的底部,left:50%将使箭头居中。border-width 属性指定箭头的大小。如果您更改此设置,也请将margin-left 值更改为相同值。这将使箭头居中。

.tooltip .tooltiptext::after {content: " ";position: absolute;top: 100%; /* At the bottom of the tooltip */left: 50%;margin-left: -5px;border-width: 5px;border-style: solid;border-color: black transparent transparent transparent;
}

淡入的工具提示(动画)

如果希望在即将显示的工具提示文本中淡入淡出,可以将CSS transition 属性与 opactity 属性一同使用,并在指定的秒数内从完全不可见变为100%可见:

.tooltip .tooltiptext {opacity: 0;transition: opacity 1s;
}.tooltip:hover .tooltiptext {opacity: 1;
}

CSS图像样式

圆角图像

使用border-radius 属性创建圆形图像:

img {border-radius: 8px;
}

img {border-radius: 50%;
}

缩略图图像

使用 border 属性创建缩略图。

img {border: 1px solid #ddd;border-radius: 4px;padding: 5px;width: 150px;
}<img src="paris.jpg" alt="Paris">

作为链接的缩略图: 

img {border: 1px solid #ddd;border-radius: 4px;padding: 5px;width: 150px;
}img:hover {
box-shadow: 0 0 2px 1px rgba(0, 140, 186, 0.5);
}<a href="paris.jpg"><img src="paris.jpg" alt="Paris">
</a>

响应式图像 

响应式图像会自动调整以适应屏幕尺寸。如果您希望根据需要缩小图像,但需要杜绝放大到大于原始尺寸,可以添加如下代码:

img {max-width: 100%;height: auto;
}

居中图像

如需使图像居中,请将左右外边距设置为 auto 并将其设置为块元素:

img {display: block;margin-left: auto;margin-right: auto;width: 50%;
}

透明图像

opacity 属性的取值范围为0.0 - 1.0。 值越低,越透明:

img {opacity: 0.5;
}

图像滤镜

CSS filter 属性把视觉效果(例如模糊和饱和度)添加到元素。filter 属性可设置为none 或 下面列出的一个或多个函数。如果任何函数的参数无效,则该函数返回none。 除特殊说明外,函数的值如果接受百分比值(如 34%),那么该函数也接受小数值(如0.34)。

举例:把所有图像的颜色更改为黑白(100% 灰色):

img {filter: grayscale(100%);
}

 blur()将高斯模糊应用于输入图像。

filter: blur(5px);

 brightness() 将线性乘法器应用于输入图像,以调整其亮度。值为0%将创建全黑图像;值为100%会使输入保持不变,其他值是该效果的线性乘数。如果值大于 100% 将使图像更加明亮。

.brightness {filter: brightness(250%);}

contrast() 调整输入图像的对比度。值是0%将使图像变灰;值是100%,则无影响;若值超过100%将增强对比度。

 .contrast {filter: contrast(180%);}

drop-shadow()使用<shadow> 参数沿图像的轮廓生成阴影效果。阴影语法类似于<box-shadow>,但不允许使用 inset 关键字以及 spread 参数。 与所有 filter 属性值一样,任何在drop-shadow() 后的滤镜同样会应用在阴影上。

 .shadow {filter: drop-shadow(8px 8px 10px black);}

hue-rotate() 应用色相旋转。<angle> 值设定图像会被调整的色环角度值。值为0deg,则图像无变化。

.huerotate {filter: hue-rotate(180deg);}

 invert() 反转输入图像。值为100%则图像完全反转,值为 0% 则图像无变化。值在 0% 和 100% 之间,则是该效果的线性乘数。

.invert {filter: invert(100%);}

 

opacity()  应用透明度。值为 0% 则使图像完全透明,值为 100% 则图像无变化。

 .opacity {filter: opacity(50%);}

 saturate() 改变图像饱和度。值为0%则是完全不饱和,值为100%则图像无变化。超过100%则增加饱和度。

filter: saturate(200%);

sepia() 将图像转换为深褐色。值为100%则完全是深褐色的,值为 0%图像无变化。

 .sepia {filter: sepia(100%);}

组合函数

你可以组合任意数量的函数来控制渲染。滤镜将按声明顺序依次应用。

filter: contrast(175%) brightness(103%);

图像悬停增加

创建鼠标悬停时的叠加效果:

淡入文本效果:

<style>.container {position: relative;width: 19.5%;}.image {display: block;width: 100%;height: auto;}.overlay {position: absolute;top: 0;bottom: 0;left: 0;right: 0;height: 100%;width: 100%;opacity: 0;transition: .5s ease;background-color: #008CBA;}.container:hover .overlay {opacity: 1;}.text {color: white;font-size: 20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);-ms-transform: translate(-50%, -50%);}</style>
<body><h1>淡入文本</h1><div class="container"><img src="/assets/images/4.png" alt="Avatar" class="image" style="width:300px;" ><div class="overlay"><div class="text">Hello World</div></div></div></body>

 

淡入框效果:

 .container {position: relative;width: 12%;}.image {opacity: 1;display: block;width: 100%;height: auto;transition: .5s ease;backface-visibility: hidden;}.middle {transition: .5s ease;opacity: 0;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);-ms-transform: translate(-50%, -50%)}.container:hover .image {opacity: 0.3;}.container:hover .middle {opacity: 1;}.text {background-color: #4CAF50;color: white;font-size: 16px;padding: 16px 32px;}
<body><h1>淡入框</h1><div class="container"><img src="/assets/images/4.png" alt="Avatar" class="image" style="width:200px"><div class="middle"><div class="text">Bill Gates</div></div></div></body>

划入效果:

 .container {position: relative;width: 19.5%}.image {display: block;width: 100%;height: auto;}.overlay {position: absolute;bottom: 100%;left: 0;right: 0;background-color: #008CBA;overflow: hidden;width: 100%;height: 0;transition: .5s ease;}.container:hover .overlay {bottom: 0;height: 100%;}.text {white-space: nowrap;color: white;font-size: 20px;position: absolute;overflow: hidden;top: 50%;left: 50%;transform: translate(-50%, -50%);-ms-transform: translate(-50%, -50%);}
<body><h1>滑入(从上)</h1><div class="container"><img src="/assets/images/4.png" alt="Avatar" class="image" style="width: 300px;"><div class="overlay"><div class="text">Hello World</div></div></div></body>

翻转图像

img:hover {transform: scaleX(-1);
}

响应式图库

可以使用CSS创建自适应的图片库。本例使用媒体查询来重新排列不同屏幕尺寸的图像。可以通过调整浏览器窗口的大小以查看效果:

.responsive {padding: 0 6px;float: left;width: 24.99999%;
}@media only screen and (max-width: 700px){.responsive {width: 49.99999%;margin: 6px 0;}
}@media only screen and (max-width: 500px){.responsive {width: 100%;}
}

 CSS object-fit 属性

CSS object-fit 属性用于规定应如何调整<img> 或 <vedio> 的大小来适应其容器。这个属性告诉内容以不同的方式填充容器。比如“保留长宽比”或者“展开并用尽可能多的空间”。

下面的图片是来自上海鲜花港的郁金香图片,它是300X300像素:

但是,如果我们把上面的上面的图像设置为200X300像素,则它看起来会像这样:

我们看到图像被压缩以适合200X300像素的容器,并且原始宽高比被破坏了。如果使用 object-fit: cover; 它会切剪图像的侧面,保留长宽比,并填充空间,如下所示:

img {width: 200px;height: 400px;object-fit: cover;
}

CSS object-fit 属性的所有值

object-fit 属性可接受如下值:

  • fill - 默认值。调整替换后的内容大小,以填充元素的内容框。如有必要,将拉伸或挤压物体以适应该对象。
  • contain - 缩放替换后的内容以保持纵横比,同时将其放入元素的内容框。
  • cover - 调整替换内容的大小,以在填充元素的整个内容框时保持其长宽比。该对象将被裁剪以适应。
  • none - 不对替换的内容调整大小。
  • scale-down - 调整内容大小就像没有指定内容或包容内容一样(将导致较小的具体对象尺寸)
fill {object-fit: fill;}
contain {object-fit: contain;}
cover {object-fit: cover;}
scale-down {object-fit: scale-down;}
none {object-fit: none;}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DuckDB:密钥管理器及其应用

密钥管理器(Secrets Manager)为所有使用密钥的后端提供了统一的用户界面。密钥信息可以被限定范围&#xff0c;因此不同的存储前缀可以有不同的密钥信息&#xff0c;例如允许在单个查询中连接跨组织的数据。密钥也可以持久化&#xff0c;这样就不需要在每次启动DuckDB时都指定它…

[cg] android studio 无法调试cpp问题

折腾了好久&#xff0c;native cpp库无法调试问题&#xff0c;原因 下面的Deploy 需要选Apk from app bundle!! 另外就是指定Debug type为Dual&#xff0c;并在Symbol Directories 指定native cpp的so路径 UE项目调试&#xff1a; 使用Android Studio调试虚幻引擎Android项目…

uni-app深度解码:跨平台APP开发的核心引擎与创新实践

在当今数字化浪潮中&#xff0c;移动应用市场呈现出爆炸式增长。为了满足不同用户群体在不同操作系统上的需求&#xff0c;跨平台 APP 开发成为众多开发者的首选策略。uni-app 作为一款领先的跨平台开发框架&#xff0c;以其独特的优势和创新的实践在众多同类产品中脱颖而出。它…

I2C(一):存储器模式:stm32作为主机对AT24C02写读数据

存储器模式&#xff1a;在HAL库中&#xff0c;I2C有专门对存储器外设设置的库函数 I2C&#xff08;一&#xff09;&#xff1a;存储器模式的使用 1、I2C轮询式写读AT24C02一页数据2、I2C轮询式写读AT24C02多页数据3、I2C中断式写读AT24C02一页数据4、I2C使用DMA式写读AT24C02一…

Elasticsearch:减少 Elastic 容器镜像中的 CVE(常见的漏洞和暴露)

作者&#xff1a;来自 Elastic Maxime Greau 在这篇博文中&#xff0c;我们将讨论如何通过在 Elastic 产品中切换到最小基础镜像并优化可扩展漏洞管理程序的工作流程来显著减少 Elastic 容器镜像中的常见漏洞和暴露 (Common Vulnerabilities and Exposures - CVEs)。 基于 Chai…

【AI学习】Transformer深入学习(二):从MHA、MQA、GQA到MLA

前面文章&#xff1a; 《Transformer深入学习&#xff08;一&#xff09;&#xff1a;Sinusoidal位置编码的精妙》 一、MHA、MQA、GQA 为了降低KV cache&#xff0c;MQA、GQA作为MHA的变体&#xff0c;很容易理解。 多头注意力&#xff08;MHA&#xff09;&#xff1a; 多头注…

使用python调用翻译大模型实现本地翻译【exe客户端版】

以前分享过一个 关于python 部署 网页端的 翻译大模型的 文章 有兴趣的小伙伴可以去看一下 https://blog.csdn.net/Drug_/article/details/144488795 今天就再分享一个 使用python 来制作一个 exe 客户端版的 本地大模型。 实际也很简单 只不过把 用 fastApi 框架 做的 网页端…

python3GUI--智慧交通监控与管理系统 By:PyQt5

文章目录 一&#xff0e;前言二&#xff0e;预览三&#xff0e;软件组成&技术难点1.软件组成结构2.技术难点3.项目结构 四&#xff0e;总结 大小&#xff1a;35.5 M&#xff0c;软件安装包放在了这里! 一&#xff0e;前言 博主高产&#xff0c;本次给大家带来一款我自己使…

JavaVue-Get请求 数组参数(qs格式化前端数据)

前言 现在管理系统&#xff0c;像若依&#xff0c;表格查询一般会用Get请求&#xff0c;把页面的查询条件传递给后台。其中大部分页面会有日期时间范围查询这时候&#xff0c;为了解决请求参数中的数组文件&#xff0c;前台就会在请求前拦截参数中的日期数组数据&#xff0c;然…

Vue2/Vue3使用DataV

Vue2 注意vue2与3安装DataV命令命令是不同的Vue3 DataV - Vue3 官网地址 注意vue2与3安装DataV命令命令是不同的 vue3vite 与 Vue3webpack 对应安装也不同vue3vite npm install kjgl77/datav-vue3全局引入 // main.ts中全局引入 import { createApp } from vue import Da…

RocketMQ消费者如何消费消息以及ack

1.前言 此文章是在儒猿课程中的学习笔记&#xff0c;感兴趣的想看原来的课程可以去咨询儒猿课堂 这篇文章紧挨着上一篇博客来进行编写&#xff0c;有些不清楚的可以看下上一篇博客&#xff1a; https://blog.csdn.net/u013127325/article/details/144934073 2.broker是如何…

高等数学学习笔记 ☞ 无穷小比较与等价无穷小替换

1. 无穷小比较 1. 本质&#xff1a;就是函数的极限趋于0时的速度&#xff0c;谁快谁慢的问题。 2. 定义&#xff1a;若是在同一自变量的变化过程中的无穷小&#xff0c;且&#xff0c;则&#xff1a; ①&#xff1a;若&#xff0c;则称是比的高阶无穷小&#xff0c;记作&…

django StreamingHttpResponse fetchEventSource实现前后端流试返回数据并接收数据的完整详细过程

django后端环境介绍&#xff1a; Python 3.10.14 pip install django-cors-headers4.4.0 Django5.0.6 django-cors-headers4.4.0 djangorestframework3.15.2 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 总环境如下&#xff1a; Package Version -…

Kafka为什么快(高性能的原因)

我们知道&#xff0c;Kafka 是基于磁盘存储的&#xff0c;但它却又具有高性能、高吞吐、低延时等特点&#xff0c;吞吐量可达几十上百万。那么 Kafka 这么快的原因是什么呢&#xff1f; Kafka 高性能主要取决于以下几方面&#xff1a; &#xff08;1&#xff09;消息批处理压缩…

Luma AI 简单几步生成视频

简单几步生成视频 登录我们的 AceDataPlatform 网站&#xff0c;按照下图所示即可生成高质量的视频&#xff0c;同时&#xff0c;我们也提供了简单易用的 API 方便集成调用&#xff0c;可以查看 Luma API了解详情 技术介绍 我们使用了 Luma 的技术&#xff0c;实现了上面的图…

Postman[7] 内置动态参数及自定义的动态参数

postman 内置动态参数和自定义的动态参数 1.内置动态参数 格式&#xff1a;{{$参数名}} 1.1时间戳 {{$timestamp}} //生成当前时间的时间戳 1.2随机整数 {{$randomint}} //生成0-1000之间的随机数 1.3GUID字符串 {{$guid}} //生成随机GUID字符串 2.自定义动态参数 格式…

Excel VBA 自动填充空白并合并相同值的解决方案

文章目录 Excel VBA: 自动填充空白并合并相同值的解决方案问题背景解决方案1. VBA代码实现2. 代码说明3. 使用方法4. 注意事项 扩展优化总结 Excel VBA: 自动填充空白并合并相同值的解决方案 问题背景 在Excel中经常会遇到这样的数据处理需求&#xff1a;一列数据中存在多个空…

STM32-笔记32-ESP8266作为服务端

esp8266作为服务器的时候&#xff0c;这时候网络助手以客户端的模式连接到esp8266&#xff0c;其中IP地址写的是esp8266作为服务器时的IP地址&#xff0c;可以使用ATCIFSR查询esp8266的ip地址&#xff0c;端口号默认写333。 当esp8266作为服务器的时候&#xff0c;需要完成哪些…

JavaScript性能

随着应用规模的增长&#xff0c;JavaScript 性能的优化变得尤为重要。这篇文章将分享 10 个实用的优化技巧&#xff0c;帮助开发者提升前端性能。 减少 DOM 操作 操作 DOM 是性能瓶颈。将多个操作合并到一个操作中&#xff0c;或者使用虚拟 DOM&#xff08;如 React&#xff…

组网实训实现

小型单元网络实现 IP划分&#xff1a; 外网:172.1.1.0/24 172.1.2.0/24 内网&#xff1a;基于192.168.3.0/24的子网划分 综合办公楼&#xff1a;192.168.3.00 000000 /26&#xff08;192.168.3.0-192.168.3.63&#xff09; 综合一楼&#xff1a;192.168.3.0000 0000 /28&…