before, after 활용 텍스트 네비게이션 2가지 방법
html에 2개를 적고 위치 조정해서 만드는 방법
예제보기
HTML
<div class="gnb">
<a href="javascript:viod(0)">
<span>메일</span>
<span>메일</span>
</a>
<a href="javascript:viod(0)">
<span>카페</span>
<span>카페</span>
</a>
<a href="javascript:viod(0)">
<span>블로그</span>
<span>블로그</span>
</a>
<a href="javascript:viod(0)">
<span>지식iN</span>
<span>지식iN</span>
</a>
<a href="javascript:viod(0)">
<span>쇼핑</span>
<span>쇼핑</span>
</a>
<a href="javascript:viod(0)">
<span>Pay</span>
<span>Pay</span>
</a>
<a href="javascript:viod(0)">
<span>사전</span>
<span>사전</span>
</a>
<a href="javascript:viod(0)">
<span>뉴스</span>
<span>뉴스</span>
</a>
</div>
CSS
@import url('https://fonts.googleapis.com/css?family=Noto+Sans+KR:300,400,500,700,900&display=swap');
body {
font-family: 'Noto Sans KR', sans-serif;
color: #222;
line-height: 1.5em;
margin: 0;
font-weight: 300;
background: linear-gradient(90deg, #DCE35B, #45B649);
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
a {
color: #222;
text-decoration: none;
}
.gnb {
background-color: #fff;
padding: 15px;
border-radius: 10px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
padding-bottom: 10px;
}
.gnb a {
width: 80px;
display: inline-block;
height: 30px;
line-height: 30px;
text-align: center;
position: relative;
overflow: hidden;
}
.gnb a span {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
transition: 0.3s;
}
.gnb a span:nth-child(1) {
top: 0;
left: 0;
}
.gnb a span:nth-child(2) {
top: 100%;
left: 0;
color: #45B649;
}
.gnb a:hover span:nth-child(1) {
top: -100%;
}
.gnb a:hover span:nth-child(2) {
top: 0;
}
사용자 정의 속성을 만들고 before, after의 content: attr();
을 활용한 방법
예제보기
HTML
<div class="gnb">
<a href="javascript:viod(0)" data-link="메일"></a>
<a href="javascript:viod(0)" data-link="카페"></a>
<a href="javascript:viod(0)" data-link="블로그"></a>
<a href="javascript:viod(0)" data-link="지식iN"></a>
<a href="javascript:viod(0)" data-link="쇼핑"></a>
<a href="javascript:viod(0)" data-link="Pay"></a>
<a href="javascript:viod(0)" data-link="사전"></a>
<a href="javascript:viod(0)" data-link="뉴스"></a>
</div>
CSS
@import url('https://fonts.googleapis.com/css?family=Noto+Sans+KR:300,400,500,700,900&display=swap');
body {
font-family: 'Noto Sans KR', sans-serif;
color: #222;
line-height: 1.5em;
margin: 0;
font-weight: 300;
background: linear-gradient(90deg, #DCE35B, #45B649);
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
a {
color: #222;
text-decoration: none;
}
.gnb {
background-color: #fff;
padding: 15px;
border-radius: 10px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
padding-bottom: 10px;
}
.gnb a {
width: 80px;
display: inline-block;
height: 30px;
line-height: 30px;
text-align: center;
position: relative;
overflow: hidden;
}
.gnb a::before,
.gnb a::after {
position: absolute;
content: attr(data-link);
width: 100%;
transition: 0.3s;
}
.gnb a::before {
top: 0;
left: 0;
}
.gnb a::after {
top: 100%;
left: 0;
color: #45B649;
}
.gnb a:hover::before {
top: -100%;
}
.gnb a:hover::after {
top: 0;
}