Contents의 논리적 순서
(1) 공지사항 탭
(2) 공지사항 목록
(3) 더보기
(4) 자료실 탭
(5) 자료실 목록
(6) 더보기
Semantic Markup
<h2>
에 키보드 포커스 받음 > link 같은 건 javaScript로2-1. tab, list 분리
<section role="tabpanel" id="s1">
<section class="notice board-act">
<h2 id="notice" class="tab notice-heading" tabindex="0">공지사항</h2>
<ul class="board-list notice-list">
<li class="icon-dot-circled">
<a href="#">HTML의 모든 것을 알려주마 샘플 활용법</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
<li class="icon-dot-circled">
<a href="#">W3C 사이트 리뉴얼 및 공지사항</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
<li class="icon-dot-circled">
<a href="#">KWCAG 2.1 소식</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
<li class="icon-dot-circled">
<a href="#">서버 점검으로 인한 사이트 이용안내 입니다.</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
<li class="icon-dot-circled">
<a href="#">여러분들이 생각하는 웹 접근성에 대해 이야기를 나누어 봅시다.</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
</ul>
<a href="#" class="icon-plus board-more notice-more" title="공지사항" aria-labelledby="notice">더보기</a>
</section>
<section class="pds">
<h2 id="pds" class="tab pds-heading" tabindex="0">자료실</h2>
<ul class="board-list pds-list">
<li class="icon-dot-circled">
<a href="#">디자인 사이트 링크 모음</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
<li class="icon-dot-circled">
<a href="#">웹 접근성 관련 자료 모음</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
<li class="icon-dot-circled">
<a href="#">예제 샘플 응용해보기</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
<li class="icon-dot-circled">
<a href="#">웹 접근성 향상을위한 국가 표준 기술 가이드라인</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
<li class="icon-dot-circled">
<a href="#">로얄티 프리 이미지 자료</a>
<time datetime="2019-04-09T11:18:27">2019.04.09</time>
</li>
</ul>
<a href="#" class="icon-plus board-more pds-more" title="자료실" aria-labelledby="pds">더보기</a>
</section>
: <h2>
에 id=”notice”, 밑에 <a>
에 title=”공지사항” 외에도 aria-labelledby=”notice”로
.tab {
padding: 5px 10px;
display: inline-block;
font-size: 1.4rem;
border:1px solid #aaa;
background: #ccc linear-gradient(#ccc, #eee);
color: #666;
border-radius: 7px 7px 0 0;
margin-bottom: 5px;
}
.board-act .tab{
background: #fff;
border: 1px solid #ed552f;
color: #ed552f;
border-bottom: #fff;
}
.board-list a{
display: inline-block;
width: 280px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
크기를 넘어가는 text 말줄임표로 처리함!
웹 브라우저는 html을 랜더링하는 과정에서 css(<link type='text/css'>
) 또는 js(<script>
) 를 만나면 동기적으로 처리한다. 즉, 하던 일을 중지하고 script를 다운받고 실행한다.
var item = $('.menu-item');
// 메인 메뉴의 하위 메뉴 제어를 위한 스크립트
// keyboard Focus도 받을 수 있게
item.on('mouseover focusin', function(){
item.removeClass('menu-act');
$(this).addClass('menu-act');
});
var itemSubLink = $('.sub-menu a');
// 서브 메뉴의 icon을 제어
itemSubLink.attr('class', 'icon-dot-circled');
// 서브메뉴 mouseover, mouseout
itemSubLink.on('mouseover', function(){
$(this).attr('class', 'icon-ok');
$(this).addClass('sub-menu-act');
});
itemSubLink.on('mouseout', function(){
$(this).attr('class', 'icon-dot-circled');
$(this).removeClass('sub-menu-act');
});
var tab = $('.tab');
var section = $('.notice, .pds');
// 탭 content 제어를 위한 스크립트
tab.on('click keyup', function(e){
// 13 : enterm 32: space
if(e.keyCode === 13 || e.type === 'click' || e.keyCode === 32){
section.removeClass('board-act');
$(this).parent().addClass('board-act');
}
});
(1) 모든 section에 board-act 빼고, click event 발생한 (h2)의 parent(section)에만 board-act
(2) parent의 siblings에 removeClass 할 수도 있음
.menu-item {
position: relative;
float: left;
cursor: pointer;
}
<li>
에 적용시 <a>
의 hover 손가락처럼 나옴
<h2>
에 적용해도 손가락