CSS Tooltip Magic
How do I make an css tooltip magic?
Read full tutorial How to Make Magic, Animated Tooltips With CSS on Tuts+. By Jase. What is a css tooltip magic? How do you make a css tooltip magic? This script and codes were developed by Envato Tuts+ on 28 July 2022, Thursday.
CSS Tooltip Magic - Script Codes HTML Codes
<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>CSS Tooltip Magic</title> <link rel="stylesheet" href="css/style.css">
</head>
<body> <main> <div> <span tooltip="I'm up above it!">Up</span> </div> <div> <span tooltip="Slide to the left" flow="left">Left</span> <span tooltip="Slide to the right" flow="right">Right</span> </div> <div> <span tooltip="Get Down." flow="down">Down</span> </div>
</main>
<aside> <div><a href="http://webdesign.tutsplus.com/tutorials/css-tooltip-magic--cms-28082" target="_parent">Read the tutorial on Tuts+</a></div>
</aside>
</body>
</html>
CSS Tooltip Magic - Script Codes CSS Codes
/* START TOOLTIP STYLES */
[tooltip] { position: relative; /* opinion 1 */
}
/* Applies to all tooltips */
[tooltip]::before,
[tooltip]::after { text-transform: none; /* opinion 2 */ font-size: .9em; /* opinion 3 */ line-height: 1; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; pointer-events: none; position: absolute; display: none; opacity: 0;
}
[tooltip]::before { content: ''; border: 5px solid transparent; /* opinion 4 */ z-index: 1001; /* absurdity 1 */
}
[tooltip]::after { content: attr(tooltip); /* magic! */ /* most of the rest of this is opinion */ font-family: Helvetica, sans-serif; text-align: center; /* Let the content set the size of the tooltips but this will also keep them from being obnoxious */ min-width: 3em; max-width: 21em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 1ch 1.5ch; border-radius: .3ch; box-shadow: 0 1em 2em -.5em rgba(0, 0, 0, 0.35); background: #333; color: #fff; z-index: 1000; /* absurdity 2 */
}
/* Make the tooltips respond to hover */
[tooltip]:hover::before,
[tooltip]:hover::after { display: block;
}
/* don't show empty tooltips */
[tooltip='']::before,
[tooltip='']::after { display: none !important;
}
/* FLOW: UP */
[tooltip]:not([flow])::before,
[tooltip][flow^="up"]::before { bottom: 100%; border-bottom-width: 0; border-top-color: #333;
}
[tooltip]:not([flow])::after,
[tooltip][flow^="up"]::after { bottom: calc(100% + 5px);
}
[tooltip]:not([flow])::before,
[tooltip]:not([flow])::after,
[tooltip][flow^="up"]::before,
[tooltip][flow^="up"]::after { left: 50%; -webkit-transform: translate(-50%, -.5em); transform: translate(-50%, -.5em);
}
/* FLOW: DOWN */
[tooltip][flow^="down"]::before { top: 100%; border-top-width: 0; border-bottom-color: #333;
}
[tooltip][flow^="down"]::after { top: calc(100% + 5px);
}
[tooltip][flow^="down"]::before,
[tooltip][flow^="down"]::after { left: 50%; -webkit-transform: translate(-50%, .5em); transform: translate(-50%, .5em);
}
/* FLOW: LEFT */
[tooltip][flow^="left"]::before { top: 50%; border-right-width: 0; border-left-color: #333; left: calc(0em - 5px); -webkit-transform: translate(-.5em, -50%); transform: translate(-.5em, -50%);
}
[tooltip][flow^="left"]::after { top: 50%; right: calc(100% + 5px); -webkit-transform: translate(-.5em, -50%); transform: translate(-.5em, -50%);
}
/* FLOW: RIGHT */
[tooltip][flow^="right"]::before { top: 50%; border-left-width: 0; border-right-color: #333; right: calc(0em - 5px); -webkit-transform: translate(.5em, -50%); transform: translate(.5em, -50%);
}
[tooltip][flow^="right"]::after { top: 50%; left: calc(100% + 5px); -webkit-transform: translate(.5em, -50%); transform: translate(.5em, -50%);
}
/* KEYFRAMES */
@-webkit-keyframes tooltips-vert { to { opacity: .9; -webkit-transform: translate(-50%, 0); transform: translate(-50%, 0); }
}
@keyframes tooltips-vert { to { opacity: .9; -webkit-transform: translate(-50%, 0); transform: translate(-50%, 0); }
}
@-webkit-keyframes tooltips-horz { to { opacity: .9; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); }
}
@keyframes tooltips-horz { to { opacity: .9; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); }
}
/* FX All The Things */
[tooltip]:not([flow]):hover::before,
[tooltip]:not([flow]):hover::after,
[tooltip][flow^="up"]:hover::before,
[tooltip][flow^="up"]:hover::after,
[tooltip][flow^="down"]:hover::before,
[tooltip][flow^="down"]:hover::after { -webkit-animation: tooltips-vert 300ms ease-out forwards; animation: tooltips-vert 300ms ease-out forwards;
}
[tooltip][flow^="left"]:hover::before,
[tooltip][flow^="left"]:hover::after,
[tooltip][flow^="right"]:hover::before,
[tooltip][flow^="right"]:hover::after { -webkit-animation: tooltips-horz 300ms ease-out forwards; animation: tooltips-horz 300ms ease-out forwards;
}
/* UNRELATED to tooltips */
body { margin: 0; min-height: 100vh; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; font-family: sans-serif; background: #ededed;
}
main { -webkit-box-flex: 1; -ms-flex: 1 1 100vh; flex: 1 1 100vh; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;
}
aside { -webkit-box-flex: 0; -ms-flex: none; flex: none; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; background: #49b293; color: #fff; padding: 1em;
}
main div { text-align: center; color: #353539;
}
main span { padding: .5em 1em; margin: .5em; display: inline-block; background: #dedede;
}
aside a { color: inherit; text-decoration: none; font-weight: bold; display: inline-block; padding: .4em 1em;
}
Developer | Envato Tuts+ |
Username | tutsplus |
Uploaded | July 28, 2022 |
Rating | 4.5 |
Size | 3,027 Kb |
Views | 44,528 |
Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!
Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!
Name | Username | Size |
Twinner Spinner II | Katydecorah | 2,974 Kb |
Pure CSS Menu | Bronsrobin | 3,321 Kb |
Week7 replicate | Hwcasis | 1,620 Kb |
Fun form with currentColor | Bnthor | 2,713 Kb |
Break Out | AzazelN28 | 12,431 Kb |
Colorful Sliders | Chanrith | 1,246 Kb |
CMP5-Opdracht15 | SannevanGastel | 2,733 Kb |
FCC - Tribute Page | Cmwebby | 0 Kb |
Countdown with Rings | Ewganoel | 2,490 Kb |
Image Hover | Johnheiner | 3,409 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!