본문 바로가기

IT공부/HTML & CSS

23. 웹 표준 사이트 만들기(2019) - 탭메뉴

23. 웹 표준 사이트 만들기(2019) - 탭메뉴

탭 메뉴도 접근성을 지켜줘야 한다. 초점이동이 있다. Tab을 누르면 공지사항1을 갔다가 내용을 갔다가 다음 공지사항2번 순으로 가야한다.

전체소스

index.html

...

<body>

  ...

        <div id="contents">

          ...

            <div id="cont_cont">

                <div class="container">

                    <div class="cont">

                      ...

                        <div class="column col5">

                            <h3><span class="ico_img ir_pm">아이콘</span><span class="ico_tit">Notice</span></h3>

                            <p class="icon_desc">가장 웹 페이지에서 기본이 되는 게시판 유형입니다.</p>

                            <!-- 탭메뉴 -->

                            <div class="tab_menu">

                                <h4 class="ir_su">탭 메뉴</h4>

                                <ul>

                                   <!-- class="active"은 현재 선택된 탭이라는 표시이다. -->

                                    <li class="active"><a href="">공지사항1</a>

                                        <ul style="">

                                            <li><a href="">첫 번째 공지사항 탭 메뉴 테스트 목록입니다. 첫 번째 공지사항 탭 메뉴 테스트 목록입니다.</a></li>

                                            <li><a href="">첫 번째 공지사항 탭 메뉴 테스트 목록입니다. 첫 번째 공지사항 탭 메뉴 테스트 목록입니다.</a></li>

                                            <li><a href="">첫 번째 공지사항 탭 메뉴 테스트 목록입니다. 첫 번째 공지사항 탭 메뉴 테스트 목록입니다.</a></li>

                                        </ul>

                                    </li>

                                    <li><a href="">공지사항2</a>

                                        <ul style="display: none;">

                                            <li><a href="">두 번째 공지사항 탭 메뉴 테스트 목록입니다.</a></li>

                                            <li><a href="">두 번째 공지사항 탭 메뉴 테스트 목록입니다.</a></li>

                                            <li><a href="">두 번째 공지사항 탭 메뉴 테스트 목록입니다.</a></li>

                                        </ul>  

                                    </li>

                                    <li><a href="">공지사항3</a>

                                        <ul style="display: none;">

                                            <li><a href="">세 번째 공지사항 탭 메뉴 테스트 목록입니다.</a></li>

                                            <li><a href="">세 번째 공지사항 탭 메뉴 테스트 목록입니다.</a></li>

                                            <li><a href="">세 번째 공지사항 탭 메뉴 테스트 목록입니다.</a></li>

                                        </ul>

                                    </li>

                                </ul> 

                            </div>

                            <!-- //탭메뉴 -->

                        </div>

                        <!-- //col5 -->

                     ...

style.css

...

 

/* 컨텐츠 요소를 보이지 않게 하는 방법

1. display: none;  <-> display: block; 영역이 없어지면서 안보임.

2. visibility: hidden <-> visibility: visible; 영역은 살아있으면서 안보임.

3. opacity: 0; <-> opacity: 1; (영역유지)

4. width: 0; height: 0; overflow: hidden; (IR 효과)

*/

 

/* tab_menu */

.tab_menu {position: relative; border: 1px solid #ccc; padding: 8px; height: 105px;}

.tab_menu ul {overflow: hidden; border-bottom: 1px solid #ccc;}

/* margin-right: -1px;은 겹치는 2줄 효과를 1줄로 보이게한다.  */

.tab_menu ul li {float: left; border: 1px solid #ccc; margin-right: -1px; margin-bottom: -1px; }

/* 마우스 오버 효과를 주기 위해 a태그에서 padding효과를 줌. */

.tab_menu ul li a {padding: 5px 10px; display: block;}

/* 구조가 깨지기 때문에 애만 붕 띄워 줄 것이다. */

.tab_menu ul li ul {position: absolute; left: 0; top: 48px; width: 270px; border: 0;}

/* float속성과 border가 속성이 필요없기 때문에 각각 none 0을 준다. */

.tab_menu ul li ul li {float: none; border: 0; background: url(../img/dot.gif) no-repeat 9px 8px; padding-left: 18px;}

/* 한 줄 효과를 준다.  위에서 a태그에 padding 값이 들어가서 padding을 초기화한다.  */

.tab_menu ul li ul li a {overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 100%; padding: 0 0 3px 0;}

/* 나중에 제이쿼리로 active가 붙은 것에 대해 처리해줄 때 사용 */

.tab_menu ul li.active {background: #2c94c4;}

.tab_menu ul li.active a {color: #fff;}

/* .tab_menu ul li.active a {color: #fff;} 에서 색상을 설정해준게 하위 a 태그에도 영향을 주어 다시 색상을 설정해줌 */

.tab_menu ul li.active ul li a {color: #333;}