关于当鼠标悬浮时如何修改文字内容,即通过 css 样式切换文字内容

本文介绍了如何仅使用CSS在鼠标悬浮时改变HTML内容,通过设置伪元素`:hover`来修改样式,结合内联元素的层级关系实现内容切换效果。详细步骤包括设置父元素高度、溢出隐藏,以及利用负外边距和 padding 实现内容替换。这种方法避免了使用JS,提供了一种纯CSS的交互解决方案。

修改文字内容,通常是通过 JS 来修改。
当鼠标悬浮时,通常使用伪元素:hover 来修改样式,如何在鼠标悬浮时修改html内容?
:hover 是无法修改html 内容,但是可以通过一系列的样式变化,达到当鼠标悬浮时,改变html内容。

用JS可以通过innerHtml来修改,在此不介绍。
纯CSS实现鼠标放上去改变文字内容
先上代码 html

<div class="par">
	<div class="show">
		平时显示的文字
		<div class="hover-show">
			鼠标悬浮时显示的文字
		</div>
	</div>
</div>

css 部分

.par {
	width: 300px;
	height: 30px;
	margin: 100px auto;
	font-size: 20px;
	line-height: 30px;
	background-color: #ff000020;
	overflow: hidden;
}
	.par .show:hover {
	padding-top: 30px;
}
.par .hover-show {
	margin-top: -60px;
}

实际效果
在这里插入图片描述
先把父元素的 overflow: hidden; 注释掉看看效果
平常状态
在这里插入图片描述

鼠标悬浮时的状态
在这里插入图片描述
带有背景色的为父盒子.
思路:

  1. 给父盒子设置高度,并且设置溢出隐藏
  2. 需要鼠标悬浮时显示的文字需要嵌套在平时显示文字的盒子里
  3. 给悬浮时显示的文字的盒子添加 margin-top:-60px,-60px 通常为两倍行高。
  4. 给平时显示的文字的盒子添加鼠标悬浮样式·padding-top: 30px;· 30px 通常为文字行高。
    这样就可以达到鼠标悬浮时改变文字内容的效果了。

注意:

  1. margin 值和 padding 值可根实际情况调整;
  2. 嵌套关系为 父元素,平时显示文字的盒子,鼠标悬浮时显示的文字,后面两个盒子不能同级,否则鼠标悬浮时,会出现不准确跳动的问题。
这是一款个性创意的css3鼠标悬停文字标题切换对应内容代码,交互切换效果非常棒,还有动画特效,可用于问答展示。 </head> <body> <div class="demo">   <div class="demo__content">     <h2 class="demo__heading">你喜欢什么样的页面布局呢?</h2>     <div class="demo__elems">       <div class="demo__elem demo__elem-1">简约的多文字布局</div>       <div class="demo__elem demo__elem-2">一列的图文混排布局</div>       <div class="demo__elem demo__elem-3">两列的图文混排布局</div>       <span class="demo__hover demo__hover-1"></span>       <span class="demo__hover demo__hover-2"></span>       <span class="demo__hover demo__hover-3"></span>       <div class="demo__highlighter">         <div class="demo__elems">           <div class="demo__elem">简约的多文字布局</div>           <div class="demo__elem">一列的图文混排布局</div>           <div class="demo__elem">两列的图文混排布局</div>         </div>       </div>       <div class="demo__examples">         <div class="demo__examples-nb">           <div class="nb-inner">             <div class="example example-adv">               <div class="example-adv">                 <div class="example-adv__top">                   <div class="example-adv__top-search"></div>                 </div>                 <div class="example-adv__mid"></div>                 <div class="example-adv__line"></div>                 <div class="example-adv__line long"></div>               </div>             </div>             <div class="example example-web">               <div class="example-web__top"></div>               <div class="example-web__left"></div>               <div class="example-web__right">                 <div class="example-web__right-line"></div>                 <div class="example-web__right-line"></div>                 <div class="example-web__right-line"></div>                 <div class="example-web__right-line"></div>                 <div class="example-web__right-line"></div>                 <div class="example-web__right-line"></div>               </div>             </div>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值