Как создать поле, когда мышь над текстом в чистом CSS?
Я много раз пытался это сделать, но он еще не выработался.
Когда я нажимаю над этим текстом
![enter image description here]()
Затем он должен показать мне этот ящик
![enter image description here]()
Я хочу добиться этого эффекта исключительно с помощью CSS, если кто-то может это сделать.
Ответы
Ответ 1
Вы можете написать вот так:
CSS
span{
background: none repeat scroll 0 0 #F8F8F8;
border: 5px solid #DFDFDF;
color: #717171;
font-size: 13px;
height: 30px;
letter-spacing: 1px;
line-height: 30px;
margin: 0 auto;
position: relative;
text-align: center;
text-transform: uppercase;
top: -80px;
left:-30px;
display:none;
padding:0 20px;
}
span:after{
content:'';
position:absolute;
bottom:-10px;
width:10px;
height:10px;
border-bottom:5px solid #dfdfdf;
border-right:5px solid #dfdfdf;
background:#f8f8f8;
left:50%;
margin-left:-5px;
-moz-transform:rotate(45deg);
-webkit-transform:rotate(45deg);
transform:rotate(45deg);
}
p{
margin:100px;
float:left;
position:relative;
cursor:pointer;
}
p:hover span{
display:block;
}
HTML
<p>Hover here<span>some text here ?</span></p>
Отметьте http://jsfiddle.net/UNs9J/1/
Ответ 2
Вы также можете сделать это путем переключения между дисплеем: блоком при наведении и отображением: none без зависания для создания эффекта.
Ответ 3
Вы можете легко сделать этот CSS Tool Tip с помощью простого кода: -
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
a.info{
position:relative; /*this is the key*/
color:#000;
top:100px;
left:50px;
text-decoration:none;
text-align:center;
}
a.info span{display: none}
a.info:hover span{ /*the span will display just on :hover state*/
display:block;
position:absolute;
top:-60px;
width:15em;
border:5px solid #0cf;
background-color:#cff; color:#000;
text-align: center;
padding:10px;
}
a.info:hover span:after{ /*the span will display just on :hover state*/
content:'';
position:absolute;
bottom:-11px;
width:10px;
height:10px;
border-bottom:5px solid #0cf;
border-right:5px solid #0cf;
background:#cff;
left:50%;
margin-left:-5px;
-moz-transform:rotate(45deg);
-webkit-transform:rotate(45deg);
transform:rotate(45deg);
}
</style>
</head>
<body>
<a href="#" class="info">Shailender Arora <span>TOOLTIP</span></a>
</div>
</body>
</html>
http://jsbin.com/ebucoz/25/edit
Ответ 4
Это небольшая настройка других ответов. Если у вас есть вложенные div, вы можете включить в свое всплывающее окно более захватывающее содержимое, такое как H1.
CSS
div.appear {
width: 250px;
border: #000 2px solid;
background:#F8F8F8;
position: relative;
top: 5px;
left:15px;
display:none;
padding: 0 20px 20px 20px;
z-index: 1000000;
}
div.hover {
cursor:pointer;
width: 5px;
}
div.hover:hover div.appear {
display:block;
}
HTML
<div class="hover">
<img src="questionmark.png"/>
<div class="appear">
<h1>My popup</h1>Hitherto and whenceforth.
</div>
</div>
Проблема с этими решениями заключается в том, что все после этого на странице сдвигается при отображении всплывающего окна, т.е. остальная часть страницы перескакивает вниз, чтобы "сделать пространство". Единственный способ, которым я мог это исправить, - сделать позицию абсолютной и удалить верхний и левый CSS-теги.
Ответ 5
То, что они сказали, это сработает.
В родительском элементе установлена максимальная высота.
Я беру пример sandeep и добавляю max-height, и при необходимости вы можете добавить свойство max-width. Текст останется там, где он должен оставаться (если возможно, в некоторых случаях вам нужно будет изменить некоторые значения, чтобы он оставался там)
span{
background: none repeat scroll 0 0 #F8F8F8;
border: 5px solid #DFDFDF;
color: #717171;
font-size: 13px;
height: 30px;
letter-spacing: 1px;
line-height: 30px;
margin: 0 auto;
position: relative;
text-align: center;
text-transform: uppercase;
top: -80px;
left:-30px;
display:none;
padding:0 20px;
}
span:after{
content:'';
position:absolute;
bottom:-10px;
width:10px;
height:10px;
border-bottom:5px solid #dfdfdf;
border-right:5px solid #dfdfdf;
background:#f8f8f8;
left:50%;
margin-left:-5px;
-moz-transform:rotate(45deg);
-webkit-transform:rotate(45deg);
transform:rotate(45deg);
}
p{
margin:100px;
float:left;
position:relative;
cursor:pointer;
max-height: 10px;
}
p:hover span{
display:block;
}
max-height в абзаце p, вторая - последняя, последняя строка.
Протестируйте его, прежде чем оценивать его бесполезно.