table 태그를 꾸며주는 style 과 target button만들기
지난 시간에 공부한 table 꾸미기는 태그에 직접 스타일을 입력 하는 inline방식 이였다면 오늘은 원격 제어 방식인 outline방식의 스타일 시트로 박스를 꾸며 보는 시간을 가져 봅니다.
먼저 body부에 코딩을 해 주어야 겠지요
<table id="bob">
혼선을 피하기 위해서는 이렇게 테이블테그에 id네임을 주어 이어서 만들 테이블과
구분을 해주도록 합니다.
<tbody> 테이블의 기본 구조 인 table의 body인 태그로 생략하지 않도록 합니다.
<tr> tr태그는 테이블 안에서 태그당 하나의 블록을 형성 해주는 태그 이며
td 태그를 감싸 주는 태그 입니다.
<td id="tia">삼국지</td>
이렇게 td 에 id네임을 주는 것은 잠시 후에 td를 타겟하기 위한 버튼을 만들 것인데요
이버튼을 클릭 할 경우 타겟하기 위한 네임이 없으면 버튼의 효력은 유명무실 해지게 되겠죠
버튼이 찾아 갈수 있도록 일종의 주소를 만들어 주는 것입니다.
</tr>위의 tr을 닫아 주는 태그로 여기까지가 한블록 이 됩니다.
<tr> 이렇게 원하는 블록수 만큼 tr태그를 삽입 해 주도록 해야 겠죠
<td id="tib">수호지</td>
td태그는 테이블 내에서 tr이 만드는 블록안에서 가로로 블록을 형성 하는 인라인블록 이며
td태그의 수만큼 가로 셀이 생성 됩니다.
</tr>
<tr>
<td id="tic">금병매</td>
</tr>
<tr>
<td id="tid">서유기</td>
</tr>
</tbody>
</table>
위에는 코딩만 되어 있는 상태 이며 이렇게 속성을 꾸며 주는 스타일을 주지 않을 경우 아래 처럼
td속의 글자들만 세로로 정렬된 상태로 브라우져상에 뜨게 됩니다.
삼국지
수호지
금병매
서유기
그럼 이렇게 코딩 된 테이블에 스타일을 주어 제대로 된 테이블의 모양을 원격 시트로
만들어 봅니다.
그러기 위해서는 스타일 시트를 작성 해야 하는데요
원격제어 방식인 스타일 시트를 만들기 위해서는 블로그의 메인skin에디트 아래에 위치한 서브 style sheet나 에디트의 바디부 상단인 head부에 스타일 정의를 해주어야 합니다.
오늘은 head부에 시트를 만들고 정의 하도록 합니다.
html의 기본 구조는 생략 합니다.
<head>와 </head>사이에 <style></style>태그를 기록 해주고
style태그 내에 스타일정의를 하면 되는 것입니다.
테이블을 꾸며 주는 스타일 을 정의 하면 아래 처럼 이런모양이 되겠죠
<head>
<style>테이블 스타일 정의</style>
</head>
자그럼 테이블 스타일 정의로 테이블을 꾸며 보도록 하겠습니다.
<head>
<style>
#bob{
border-collapse:collapse;
box-shadow: rgba(0, 0, 0, 0.41) 2px 2px;
border:1px solid red;
position:relative; top:30px;
z-index:0; width:105px;
height:125px;
} /*박스의 테두리를 collapse속성 으로 단일선 만들기, box-shadow 속성으로 그림자 생성*/
#bob>tr>td{
padding:5px 10px;
boder:1px solid blue;
width:100px;
height:30px;
text-align:center;
}
#tia, #tib, #tic, #tid{
padding:5px 10px;
boder:1px solid green;
width:100px;
color:blue;
height:30px;
background:yellow;
text-align:center;
} /*그룹 선택자를 이용하여 td의 배경을 노란색으로
글자는 청색으로 만들어 줍니다.*/
#tia:target, #tib:target, #tic:target, #tid:target{
background:blue;
color:red;
} /*:target가상클래스를 이용해 버튼을 클릭했을 때 제목부분의 배경은 blue 글자색은 빨간색으로
보이도록 정의 하도록 합니다.*/
.pog {
display:block;
margin-bottom:20px;
font-size:18px;
color:white;
text-align:center;
position:relative; top:20px;
border:1px solid lime;
background:gold;
}
</style>
</head>
이렇게 위 처럼 헤드안에 스타일 정의를 해 주게 되면 바디부에 코딩된
table에 아래와 같은 모양으로 스타일이 주어 지게 되는 것입니다.
결과 입니다.삼국지 |
수호지 |
금병매 |
서유기 |
<div id="sagac">
<ul>
<li><a href="http://#tia">삼국지</a></li>
<li><a href="http://#tib">수호지</a></li>
<li><a href="http://#tic">금병매</a></li>
<li><a href="http://#tid">서유기</a></li>
</ul>
</div>
<style>
#sagac{width:100%;height:auto;
}
#sagac>ul{display:block;position:relative;width:380px;height:30px;
}
#sagac>ul>li{display:block;float:left;width:94px;height:28px;position:relative;margin-left:-1px;
border:1px solid red;border-radius:0.5em;background:lime;list-style:none;
}
#sagac>ul>li>a{font-family:'Malgun Gothic',Arial;font-size:14pt;text-align:center;color:blue;text-decoration:none;
}
#sagac>ul>li>a:hover{width:100%height:100%;background:blue;color:red;
}
</style>
위의 버튼을 클릭해 변화를 확인 해 보세요
오늘 유의 해서 보아야할 요소는 지난시간에 배우지 않은 추가된 요소 인데요
이렇게 위의 결과에서 나타나는 것 처럼 삼국지라는 버튼을 클릭 했을때 위 테이블속의 td안의 삼국지 컨텐츠가 타겟되어 나타 나게 되는 것입니다.
#tia:target, #tib:target, #tic:target, #tid:target{background-color:red; color:white;}이렇게 :target가상클래스로 정의 해 주므로 가능 한것인데요 위에서도 언급했지만 버튼의 링크 주소와 타겟되는 td의 id네임이 정확 하게 일치 해야만 버튼이 찾아 가게 됩니다.
버튼을 눌렀을때 찾아가게 되는 카테고리의 모습이 클릭후 변경되도록 위처럼 스타일을 정의 할수가 있습니다.이런 경우 에 같은 이름을 많이 가질수 있는 클래스 선택자로는 거의 불가능 하며 아디선택자 로 정의 해야 유효 할수 있다는 것에 유의 해야 합니다.
이것을 잘응용 하면 홈페이지 카테고리를 메뉴버튼으로 타겟 할수가 있겠죠
아래는 body에 코딩 한 소스 입니다.
<tbody>
위 스타일에 추가한 td를 꾸며주는 정의부분만 추가 해주면 되겠죠 추가한 td들에는 모두ff라는 class네임을 지정 해 주었기 때문에 스타일 에도 클래스 선택자로 정의 해 주어야 합니다. 아래는 추기한 소스 입니다.
결과 입니다.
삼국지 | 유비 | 관우 | 장비 |
수호지 | 무송 | 양산박 | 홍의병 |
금병매 | 서문경 | 홍등가 | 개과천선 |
서유기 | 삼장법사 | 손오공 | 사오정 |