[data-balloon] { position: relative; } [data-balloon]:before { filter: alpha(opactiy=0); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; -moz-opacity: 0; -khtml-opacity: 0; opacity: 0; pointer-events: none; -webkit-transition: all 0.18s ease-out; -moz-transition: all 0.18s ease-out; -ms-transition: all 0.18s ease-out; -o-transition: all 0.18s ease-out; transition: all 0.18s ease-out; background: rgba(17, 17, 17, 0.9); border-radius: 4px; color: #fff; content: attr(data-balloon); font-size: 12px; padding: .5em 1em; position: absolute; white-space: nowrap; z-index: 10; } [data-balloon]:after { background: no-repeat url('data:image/svg+xml;utf8,'); background-size: 100% auto; width: 18px; height: 6px; filter: alpha(opactiy=0); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; -moz-opacity: 0; -khtml-opacity: 0; opacity: 0; pointer-events: none; -webkit-transition: all 0.18s ease-out; -moz-transition: all 0.18s ease-out; -ms-transition: all 0.18s ease-out; -o-transition: all 0.18s ease-out; transition: all 0.18s ease-out; content: ''; position: absolute; z-index: 10; } [data-balloon]:hover:before, [data-balloon]:hover:after { filter: alpha(opactiy=100); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; -moz-opacity: 1; -khtml-opacity: 1; opacity: 1; pointer-events: auto; } [data-balloon][data-balloon-break]:before { white-space: normal; } [data-balloon][data-balloon-pos="up"]:before { bottom: 100%; left: 50%; margin-bottom: 11px; -webkit-transform: translate3d(-50%, 10px, 0); -moz-transform: translate3d(-50%, 10px, 0); -ms-transform: translate3d(-50%, 10px, 0); transform: translate3d(-50%, 10px, 0); -webkit-transform-origin: top; -moz-transform-origin: top; -ms-transform-origin: top; transform-origin: top; } [data-balloon][data-balloon-pos="up"]:after { bottom: 100%; left: 50%; margin-bottom: 5px; -webkit-transform: translate3d(-50%, 10px, 0); -moz-transform: translate3d(-50%, 10px, 0); -ms-transform: translate3d(-50%, 10px, 0); transform: translate3d(-50%, 10px, 0); -webkit-transform-origin: top; -moz-transform-origin: top; -ms-transform-origin: top; transform-origin: top; } [data-balloon][data-balloon-pos="up"]:hover:before { -webkit-transform: translate3d(-50%, 0, 0); -moz-transform: translate3d(-50%, 0, 0); -ms-transform: translate3d(-50%, 0, 0); transform: translate3d(-50%, 0, 0); } [data-balloon][data-balloon-pos="up"]:hover:after { -webkit-transform: translate3d(-50%, 0, 0); -moz-transform: translate3d(-50%, 0, 0); -ms-transform: translate3d(-50%, 0, 0); transform: translate3d(-50%, 0, 0); } [data-balloon][data-balloon-pos='down']:before { left: 50%; margin-top: 11px; top: 100%; -webkit-transform: translate3d(-50%, -10px, 0); -moz-transform: translate3d(-50%, -10px, 0); -ms-transform: translate3d(-50%, -10px, 0); transform: translate3d(-50%, -10px, 0); } [data-balloon][data-balloon-pos='down']:after { background: no-repeat url('data:image/svg+xml;utf8,'); background-size: 100% auto; width: 18px; height: 6px; left: 50%; margin-top: 5px; top: 100%; -webkit-transform: translate3d(-50%, -10px, 0); -moz-transform: translate3d(-50%, -10px, 0); -ms-transform: translate3d(-50%, -10px, 0); transform: translate3d(-50%, -10px, 0); } [data-balloon][data-balloon-pos='down']:hover:before { -webkit-transform: translate3d(-50%, 0, 0); -moz-transform: translate3d(-50%, 0, 0); -ms-transform: translate3d(-50%, 0, 0); transform: translate3d(-50%, 0, 0); } [data-balloon][data-balloon-pos='down']:hover:after { -webkit-transform: translate3d(-50%, 0, 0); -moz-transform: translate3d(-50%, 0, 0); -ms-transform: translate3d(-50%, 0, 0); transform: translate3d(-50%, 0, 0); } [data-balloon][data-balloon-pos='left']:before { margin-right: 11px; right: 100%; top: 50%; -webkit-transform: translate3d(10px, -50%, 0); -moz-transform: translate3d(10px, -50%, 0); -ms-transform: translate3d(10px, -50%, 0); transform: translate3d(10px, -50%, 0); } [data-balloon][data-balloon-pos='left']:after { background: no-repeat url('data:image/svg+xml;utf8,'); background-size: 100% auto; width: 6px; height: 18px; margin-right: 5px; right: 100%; top: 50%; -webkit-transform: translate3d(10px, -50%, 0); -moz-transform: translate3d(10px, -50%, 0); -ms-transform: translate3d(10px, -50%, 0); transform: translate3d(10px, -50%, 0); } [data-balloon][data-balloon-pos='left']:hover:before { -webkit-transform: translate3d(0, -50%, 0); -moz-transform: translate3d(0, -50%, 0); -ms-transform: translate3d(0, -50%, 0); transform: translate3d(0, -50%, 0); } [data-balloon][data-balloon-pos='left']:hover:after { -webkit-transform: translate3d(0, -50%, 0); -moz-transform: translate3d(0, -50%, 0); -ms-transform: translate3d(0, -50%, 0); transform: translate3d(0, -50%, 0); } [data-balloon][data-balloon-pos='right']:before { left: 100%; margin-left: 11px; top: 50%; -webkit-transform: translate3d(-10px, -50%, 0); -moz-transform: translate3d(-10px, -50%, 0); -ms-transform: translate3d(-10px, -50%, 0); transform: translate3d(-10px, -50%, 0); } [data-balloon][data-balloon-pos='right']:after { background: no-repeat url('data:image/svg+xml;utf8,'); background-size: 100% auto; width: 6px; height: 18px; left: 100%; margin-left: 5px; top: 50%; -webkit-transform: translate3d(-10px, -50%, 0); -moz-transform: translate3d(-10px, -50%, 0); -ms-transform: translate3d(-10px, -50%, 0); transform: translate3d(-10px, -50%, 0); } [data-balloon][data-balloon-pos='right']:hover:before { -webkit-transform: translate3d(0, -50%, 0); -moz-transform: translate3d(0, -50%, 0); -ms-transform: translate3d(0, -50%, 0); transform: translate3d(0, -50%, 0); } [data-balloon][data-balloon-pos='right']:hover:after { -webkit-transform: translate3d(0, -50%, 0); -moz-transform: translate3d(0, -50%, 0); -ms-transform: translate3d(0, -50%, 0); transform: translate3d(0, -50%, 0); } [data-balloon][data-balloon-length='small']:before { white-space: normal; width: 80px; } [data-balloon][data-balloon-length='medium']:before { white-space: normal; width: 150px; } [data-balloon][data-balloon-length='large']:before { white-space: normal; width: 260px; } [data-balloon][data-balloon-length='xlarge']:before { white-space: normal; width: 380px; } @media screen and (max-width: 768px) { [data-balloon][data-balloon-length='xlarge']:before { white-space: normal; width: 90vw; } } [data-balloon][data-balloon-length='fit']:before { white-space: normal; width: 100%; }