hover — Всплывающие подсказки
Всплывающие подсказки на чистом css.
by akogch
HTML
<!-- Instead of using the 'title' attribute, simply use 'data-info' -->
<h1>Info on Hover!</h1>
<h2>Prettifying the 'title' attribute without Javascript!</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
<dfn data-info="Lorem ipsum dolor sit amet, perspiciatis consectetur dolor."
>Perspiciatis consectetur</dfn
>
Et delectus ut neque quod porro maiores est. Asperiores aspernatur rerum,
explicabo ipsa consequatur, accusantium
<dfn data-info="Lorem ipsum dolor sit amet.">provident optio</dfn> officia
maxime libero sint esse.
</p>
<p>
Lorem ipsum dolor sit amet, perspiciatis consectetur adipisicing elit. Dolor
perspiciatis deserunt adipisci rem deserunt iste nulla tenetur.
<dfn data-info="Lorem ipsum dolor sit amet, perspiciatis consectetur dolor."
>Iste aliquid perspiciatis</dfn
>
dolorem laborum, nulla fugit accusamus possimus id tenetur officiis, impedit
necessitatibus illo!
</p>
CSS
@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400,300);
::-moz-selection {
background: rgba(0, 0, 0, 0.2);
}
::selection {
background: rgba(0, 0, 0, 0.2);
}
/**** Skip to line 36 for the hover code ****/
body {
background: linear-gradient(to right, #07a, #0aa);
background-size: 100%;
font-family: "Open Sans", sans-serif;
font-size: 16px;
line-height: 1.5em;
margin: 80px 4em 0;
color: #f5f5f5;
}
h1 {
max-width: 49rem;
font-size: 3.5em;
line-height: 1em;
font-weight: 700;
margin: 0.25em auto;
}
h2 {
max-width: 49rem;
margin: 1.4em auto;
}
p {
line-height: 1.5em;
margin: 1.4em auto;
max-width: 49rem;
font-size: 1em;
font-weight: 300;
}
/** Code for hover info **/
dfn {
background: rgba(0, 0, 0, 0.2);
border-bottom: dashed 1px rgba(0, 0, 0, 0.8);
padding: 0 0.4em;
cursor: help;
font-style: normal;
position: relative;
}
dfn::after {
content: attr(data-info);
display: inline;
position: absolute;
top: 22px;
left: 0;
opacity: 0;
width: 230px;
font-size: 13px;
font-weight: 700;
line-height: 1.5em;
padding: 0.5em 0.8em;
background: rgba(0, 0, 0, 0.8);
color: #fff;
pointer-events: none;
/* This prevents the box from apearing when hovered. */
transition:
opacity 250ms,
top 250ms;
}
dfn::before {
content: "";
display: block;
position: absolute;
top: 12px;
left: 20px;
opacity: 0;
width: 0;
height: 0;
border: solid transparent 5px;
border-bottom-color: rgba(0, 0, 0, 0.8);
transition:
opacity 250ms,
top 250ms;
}
dfn:hover {
z-index: 2;
}
/* Keeps the info boxes on top of other elements */
dfn:hover::after,
dfn:hover::before {
opacity: 1;
}
dfn:hover::after {
top: 30px;
}
dfn:hover::before {
top: 20px;
}