您现在的位置是:网站首页> 编程资料编程资料
CSS实现图像映射的方法使用CSS cross-fade()实现背景图像半透明效果的示例代码详解css图像拼合技术(精灵图)纯css实现3D图像轮转效果CSS图像替换技术的几种方案介绍
2023-10-16
238人已围观
简介 这篇文章主要介绍了CSS实现图像映射的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
一、前言
利用图像映射可以将图像的一些区域指定为热点。鼠标滑过该区域,可以展示一些内容信息。当然我们也可以单击该区域进行跳转,实现一个类似于图像导航的功能。

我从网上找了上边这样一张图片,想要实现以下功能:当鼠标悬停在每个人身上时,希望出现一个矩形框,单击后可以进行跳转到相应的网站。
效果如下:

二、代码实现
1、首先需要做的是将图像添加到页面中,放在一个已命名的div中:
2、然后,在图像后面添加每个人的网站链接的列表。需要给每个列表项分配一个类以便标识列表项中的人。还可以给每个链接设置 title 属性,其中包含这个人的名字。这样的话,当鼠标悬停在链接上时,在大多数浏览器上显示的工具提示中会显示人名。
我这里想要对鼠标悬停时显示的内容样式进行自定义,没有使用 title 属性,所以在 a 标签中加了一个 span
3、设置外层div的宽度和高度,让它和图像的大小保持一致。然后,将div的position属性设置为relative,因为这样就可以让包含的链接可以相对于div(也就是图像)的边缘进行绝对定位。
不希望页面上显示列表的黑圆点,另外也想去除列表项的内外边距。
.imagemap { width: 500px; height: 350px; position: relative; } .imagemap ul { margin: 0; padding: 0; list-style: none; }4、下一件事情是对链接应用样式。对链接进行绝对定位(因为我们已经在外层的div上设置了position属性为relative,所以此处是相对于div进行定位的,而div和图片的宽高是一样的,也就相当于我们是从图片的左上角开始定位),将它们分别定位到相应的人身上,形成热点。但是,首先需要设置它们的宽度和高度,从而创建需要的单击区域。
.imagemap a { position: absolute; /*转为块级元素,这样可以形成一块区域*/ display: block; width: 50px; height: 60px; text-decoration: none; } .imagemap .baidu a { top: 70px; left: 65px; } .imagemap .tengxun a { top: 85px; left: 150px; } .imagemap .xinlang a { top: 70px; left: 230px; } .imagemap .taobao a { top: 70px; left: 305px; } .imagemap .jd a { top: 70px; left: 365px; } /*鼠标滑过的时候,显示一个方框*/ .imagemap a:hover { border: 1px solid white; }5、接下来我们需要设置当鼠标滑过的时候,显示的文本内容的样式。我们希望它出现在人物的上方,有一个背景颜色和内边距等样式,文本居中:
.imagemap a .note { position: absolute; top: -2em; left: -100em; background-color: #42b983; color: white; width: 2em; text-align: center; padding: 0.2em 0.5em; border-radius: 5px; } .imagemap a:hover .note { left: 0; }注意:
- 当position属性取值为absolute绝对定位时,元素会被移出正常文档流,通过指定元素相对于最近的非 static 定位祖先元素的偏移,来确定元素位置。 因为列表中的链接a标签,我们已经让它绝对定位了,所以a标签中的span是相对于链接a进行定位的。
- 这里设置top为负值是让元素向上移动一段距离,left值是-100em,是想让span一开始不在可视区域之内。然后当鼠标经过时,再重新设置left的值到正确位置。
另外,一般情况下,对行内元素设置宽高是没有用的,但是上边的代码中我们可以成功对span进行宽度width的设置,是因为这里span已经是绝对定位了,绝对定位后的行内元素可以设置宽和高。
知识点:行内元素设置宽高的几种方法
行内元素设置宽高的3种方法
- 使用display: display:block / inline-block
- 使用position: position:absolute / fixed
- 使用float:float:left / right
6、没有了,可以测试看一下,现在就实现了一个简单的图像映射。
到此这篇关于CSS实现图像映射的文章就介绍到这了,更多相关CSS实现图像映射内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 巧用 CSS3的webkit-box-reflect 倒影实现各类动效CSS3 Notes: -webkit-box-reflect实现倒影的实例
- 使用CSS计数器美化数字有序列表的实现方法CSS字体、文本、列表属性详细介绍CSS 有序或者无序列表的前面的标记 list-style-type 属性的实现css中有序无序列表项list样式设置方法
- 如何通过 CSS 写出火焰效果CSS3 实现的火焰动画CSS3实现文字浮雕效果,镂刻效果,火焰文字通过CSS的滤镜实现火焰效果的示例
- 详解利用css3的var()实现运行时改变scss的变量值uni-app中使用scss的示例代码scss使用mixin不生效(浏览器无法编译出来)的解决方法手机端用rem+scss做适配的详解前端编码规范(4)—— CSS 和 Sass (SCSS) 开发规范CSS3 真的会替代 SCSS 吗
- css圆形镂空(优惠券背景图)的实现CSS 使用radial-gradient 实现优惠券样式使用css创建一个优惠券的方法利用css3径向渐变做一张优惠券的示例CSS实现优惠券边沿打孔效果
- 纯CSS实现页面中的列表收拉效果让CSS flex布局最后一行列表左对齐的N种方法(小结)CSS字体、文本、列表属性详细介绍CSS 有序或者无序列表的前面的标记 list-style-type 属性的实现css中有序无序列表项list样式设置方法CSS如何设置列表样式属性(看这篇文章就够用了)css列表滑动防止被底部遮住和适配屏幕长一点的机型处理
- 从一次项目重构说起CSS3自定义变量在项目的使用方法css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- 纯 CSS 实现拖拽效果的代码纯CSS实现左右拖拽改变布局大小
- CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码css3 filter属性的使用简介CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码css中filter属性和backdrop-filter的应用与区别详解详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用使用css的filter写鼠标滑过效果的实现示例CSS filter 有什么神奇用途
- 女神的斗士 非R玩家攻略_手机游戏_游戏攻略_

