아이콘에 마우스를 가져다대면, tip 말풍선을 보여주는 UI를 자주 볼 수 있습니다.
위의 사진과같은 기능은 CSS만으로도 구현이 가능합니다.
HTML
<div id="radio_container">
<div class="tip">
<p>
원하는 tip 메세지
</p>
</div>
</div>
CSS
.container {
position: relative;
}
.tip{
position: absolute;
top: 8px;
left: 55px;
font-size: 14px;
line-height: 26px;
text-align: center;
background-color: #b3dfe6;
border-radius: 50%;
width: 24px;
height: 24px;
cursor: default;
}
.tip:before{
content:'?';
font-weight: bold;
color:#fff;
}
.tip:hover p{
visibility: visible;
opacity: 1;
}
.tip p{
opacity: 0;
visibility: hidden;
color: #fff;
font-size: 13px;
line-height: 1.4;
text-align: left;
background-color: #0064b7;
width: 400px;
padding: 20px;
border-radius: 3px;
box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2), -1px -1px 3px rgba(0, 0, 0, 0.2);
position: absolute;
right: -370px;
transition: visibility 0s, opacity 0.5s linear;
}
.tip p:before{
position: absolute;
content: '';
width:0;
height: 0;
border:6px solid transparent;
border-bottom-color:#0064b7;
left:10px;
top: -12px;
}
"?" 아이콘을 만들기
.tip {
...
background-color: #b3dfe6;
border-radius: 50%;
width: 24px;
height: 24px;
}
.tip:before{
content:'?';
font-weight: bold;
color:#fff;
}
background 와 border-radius를 통해서, width와 height가 24px인 동그란 원을 만듦
before를 이용해서, 흰색의 두꺼운 폰트를 가진 "?" 컨텐츠를 가진 가상 요소를 생성
hover 이벤트
.tip:hover p{
visibility: visible;
opacity: 1;
}
.tip p{
opacity: 0;
visibility: hidden;
...
transition: visibility 0s, opacity 0.5s linear;
}
visibility 속성과 opacity를 이용해, tip 메세지인 p태그를 마우스 hover시에만 보이도록 지정
visibility속성은 문서의 레이아웃을 변경하지 않고, 요소를 보이거나 숨기도록 합니다.
말풍선 UI 만들기
.tip p{
...
color: #fff;
font-size: 13px;
line-height: 1.4;
text-align: left;
background-color: #0064b7;
width: 400px;
padding: 20px;
border-radius: 3px;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
...
}
.tip p:before{
position: absolute;
content: '';
width:0;
height: 0;
border:6px solid transparent;
border-bottom-color:#0064b7;
left:10px;
top: -12px;
}
기본 틀이되는 p 태그를 만들고, 삼각형의 모양의 가상요소를 만들어서 p태그 위에 붙히게 되면, 말풍선 모양이 만들어집니다.
border: 6px solid transparent; 를 통해서 12px x 12px의 투명한 요소가 만들어집니다.
border-bottom-color를 이용하게 되면, 바텀 border에 대해서만, 컬러를 지정할 수 있습니다.
border:15px solid transparent;
border-bottom-color:#64c1ff;
border-top-color:red;
border-left-color:gold;
border-right-color:black;
border-bottom-color를 더 자세히 확인해보기 위해서, 볼더 15px을 가지는 투명 요소를 만들고, top/ right/ bottom/ lef에 대해서 각기 다른 색을 주면 아래의 사진과 같은 모양이 나옵니다.
따라서, 바텀의 부분의 색을 tip 메세지의 배경과 같은 색으로 만들고, 위에 배치하게 되면 자연스러운 말풍선 모양이 만들어지게 됩니다.
'IT 공부' 카테고리의 다른 글
[ Javascript ] 2중 Submit 방지 & CRUD작업 후 뒤로가기 방지 (0) | 2022.06.20 |
---|---|
스프링(Spring) - 웹개발하기 (초기설정) (0) | 2021.10.20 |
JaveScript - Operators (0) | 2021.06.21 |
JavaScript의 기초와 'use strict'에 대해서 (0) | 2021.06.19 |
Jquery - 단축키로 브라우저 화면전환하기 (0) | 2021.03.29 |