CSS 提示工具

 

基础提示框(Tooltip)

    提示框在鼠标移动到指定元素上显示:

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
			}
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<div class="tooltip">鼠标移动到这
			<span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

实例解析

   HTML) 使用容器元素 (like <div>) 并添加 "tooltip" 类。在鼠标移动到 <div> 上时显示提示信息。

提示文本放在内联元素上(如 <span>) 并使用class="tooltiptext"

CSS)tooltip 类使用 position:relative, 提示文本需要设置定位值 position:absolute。 注意: 接下来的实例会显示更多的定位效果。

   tooltiptext 类用于实际的提示文本。模式是隐藏的,在鼠标移动到元素显示 。设置了一些宽度、背景色、字体色等样式。

   CSS3 border-radius 属性用于为提示框添加圆角。

  :hover 选择器用于在鼠标移动到到指定元素 <div> 上时显示的提示。

 

定位提示工具

 

   显示在右侧:

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
				top:-5px;
				left:105%;
			}
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<h2>右侧提示工具</h2>
		<p>鼠标移动到以下元素:</p>
		<div class="tooltip">鼠标移动到这
			<span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

   显示在左侧:

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
				top:-5px;
				right:105%;
			}
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<h2>右侧提示工具</h2>
		<p>鼠标移动到以下元素:</p>
		<div class="tooltip">鼠标移动到这
			<span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

    如果你想要提示工具显示在头部和底部。我们需要使用 margin-left 属性,并设置为 -60px。 这个数字计算来源是使用宽度的一半来居中对齐,即: width/2 (120/2 = 60)。

   显示在头部:

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
				bottom:100%;
				left:50%;
				margin-left: -60px;
			}
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<h2>右侧提示工具</h2>
		<p>鼠标移动到以下元素:</p>
		<div class="tooltip">鼠标移动到这
			<span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

  显示在底部

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
				top:100%;
				left:50%;
				margin-left: -60px;
			}
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<h2>右侧提示工具</h2>
		<p>鼠标移动到以下元素:</p>
		<div class="tooltip">鼠标移动到这
			<span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

添加箭头

    我们可以用CSS伪元素:after 及 content 属性为提示工具创建一个小箭头标志,箭头是由边框组成的,但组合起来后提示工具像个语音信息框。

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
				bottom:150%;
				left:50%;
				margin-left: -60px;
			}
			
			.tooltip .tooltiptext:after {
				content: "";
				position:absolute;
				top:100%;
				left:50%;
				margin-left: -5px;
				border-width: 5px;
				border-style: solid;
				border-color: black transparent transparent transparent;
			}
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<h2>顶部提示框/底部箭头</h2>

		<div class="tooltip">鼠标移动到我这
		  <span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

 

实例解析

   在提示工具内定位箭头: top: 100% , 箭头将显示在提示工具的底部。left: 50% 用于居中对齐箭头。

   注意:border-width 属性指定了箭头的大小。如果你修改它,也要修改 margin-left 值。这样箭头在能居中显示。

   border-color 用于将内容转换为箭头。设置顶部边框为黑色,其他是透明的。如果设置了其他的也是黑色则会显示为一个黑色的四边形。

 

底部提示框/顶部箭头:

 

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
				top:150%;
				left:50%;
				margin-left: -60px;
			}
			
			.tooltip .tooltiptext:after {
				content: "";
				position:absolute;
				bottom:100%;
				left:50%;
				margin-left: -5px;
				border-width: 5px;
				border-style: solid;
				border-color: transparent transparent black transparent;
			}
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<h2>顶部提示框/顶部箭头</h2>

		<div class="tooltip">鼠标移动到我这
		  <span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

右侧提示框/左侧箭头:

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
				top:-5px;
				left:110%;
			}
			
			.tooltip .tooltiptext:after {
				content: "";
				position:absolute;
				top: 50%;
				right: 100%;
				margin-top: -5px;
				border-width: 5px;
				border-style: solid;
				border-color: transparent black transparent  transparent;
			}
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<h2>右侧提示框/左侧箭头</h2>

		<div class="tooltip">鼠标移动到我这
		  <span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

左侧提示框/右侧箭头

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
				top:-5px;
				right:110%;
			}
			
			.tooltip .tooltiptext:after {
				content: "";
				position:absolute;
				top: 50%;
				left: 100%;
				margin-top: -5px;
				border-width: 5px;
				border-style: solid;
				border-color: transparent transparent  transparent black;
			}
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<h2>左侧提示框/右侧箭头</h2>

		<div class="tooltip">鼠标移动到我这
		  <span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

淡入效果

 

    我们可以使用CSS3 transition 属性及 opacity 属性来实现提示工具的淡入效果

 

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.tooltip {
				position:relative;
				display:inline-block;
				border-bottom:1px dotted black;
			}
			
			.tooltip .tooltiptext{
				visibility:hidden;
				width:120px;
				background-color:black;
				color:#fff;
				text-align:center;
				border-radius: 6px;
				padding:5px 0;
				
				position: absolute;
				z-index:1;
				bottom: 100%;
				left: 50%;
				margin-left: -60px;
				
				 /* 淡入 - 1秒内从 0% 到 100% 显示: */
				opacity: 0;
				transition: opacity 1s;
			}
			
			
			.tooltip:hover .tooltiptext {
				visibility:visible;
				opacity: 1;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<h2>提示工具淡入效果</h2>
		<p>鼠标移动到以下元素,提示工具会再一秒内从 0% 到 100% 完全显示。</p>

		<div class="tooltip">鼠标移动到我这
		  <span class="tooltiptext">提示文本</span>
		</div>
	</body>
</html>

 

漂亮的CSS 提示框

<!DOCTYPE html>
<html>
	<head>
		<title>自学教程(如约智惠.com)</title>
		<meta charset="utf-8">
		<style>
			.wrapper {
			  text-transform: uppercase;
			  background: #ececec;
			  color: #555;
			  cursor: help;
			  font-family: "Gill Sans", Impact, sans-serif;
			  font-size: 20px;
			  margin: 100px 75px 10px 75px;
			  padding: 15px 20px;
			  position: relative;
			  text-align: center;
			  width: 200px;
			  -webkit-transform: translateZ(0); /* webkit flicker fix */
			  -webkit-font-smoothing: antialiased; /* webkit text rendering fix */
			}

			.wrapper .tooltip {
			  background: #1496bb;
			  bottom: 100%;
			  color: #fff;
			  display: block;
			  left: -25px;
			  margin-bottom: 15px;
			  opacity: 0;
			  padding: 20px;
			  pointer-events: none;
			  position: absolute;
			  width: 100%;
			  -webkit-transform: translateY(10px);
				 -moz-transform: translateY(10px);
				  -ms-transform: translateY(10px);
				   -o-transform: translateY(10px);
					  transform: translateY(10px);
			  -webkit-transition: all .25s ease-out;
				 -moz-transition: all .25s ease-out;
				  -ms-transition: all .25s ease-out;
				   -o-transition: all .25s ease-out;
					  transition: all .25s ease-out;
			  -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
				 -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
				  -ms-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
				   -o-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
					  box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
			}

			/* This bridges the gap so you can mouse into the tooltip without it disappearing */
			.wrapper .tooltip:before {
			  bottom: -20px;
			  content: " ";
			  display: block;
			  height: 20px;
			  left: 0;
			  position: absolute;
			  width: 100%;
			}  

			/* CSS Triangles - see Trevor's post */
			.wrapper .tooltip:after {
			  border-left: solid transparent 10px;
			  border-right: solid transparent 10px;
			  border-top: solid #1496bb 10px;
			  bottom: -10px;
			  content: " ";
			  height: 0;
			  left: 50%;
			  margin-left: -13px;
			  position: absolute;
			  width: 0;
			}
			  
			.wrapper:hover .tooltip {
			  opacity: 1;
			  pointer-events: auto;
			  -webkit-transform: translateY(0px);
				 -moz-transform: translateY(0px);
				  -ms-transform: translateY(0px);
				   -o-transform: translateY(0px);
					  transform: translateY(0px);
			}

			/* IE can just show/hide with no transition */
			.lte8 .wrapper .tooltip {
			  display: none;
			}

			.lte8 .wrapper:hover .tooltip {
			  display: block;
			}
		</style>
	</head>
	<body style="text-align:center;">
		<div>             
			<!--<![endif]-->
			<div class="wrapper">
				I have a tooltip.
				<div class="tooltip">I am a tooltip!</div>
	    </div>
	</div>
	</body>
</html>

参考:

https://www.yuque.com/docs/share/4aacee72-e76b-4717-934c-c1125477d4d5

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值