[ 스타일의 상속 관계 ]


웹 문서에서 사용하는 태그들은 상속의 개념이 적용된다. 그래서 부모 요소와 자식 요소가 존재한다.

예를 들어 <ul><li>목록1</li><li>목록2</li></ul> 형태가 있을 때 ul은 li의 부모 요소이고 li는 ul의 자식요소이다.

그리고 부모 요소에 있는 속성들이 자식 요소로 이어지는데 이것이 바로 '상속'이다.


상속의 예로는 body에 배경색을 넣으면 자식 요소인 <h2>와 <p> 등에도 같은 배경색이 적용된다.


그리고 스타일은 단계적으로 적용되기 때문에


p{color:red;}

p{color:blue;}


처럼 같은 태그에 다른 스타일이 적용되면 마지막으로 정의된 스타일을 적용한다. 위 소스에서는 글자색에 'blue' 가 적용된다.


선택자는 여러가지가 있다. 선택자(selector)란, 속성이 어디에 적용되는지 표시하는 것이다.


 명칭

 선택자

 설명

 전체 선택자

 * {속성:속성 값;}

 페이지에 있는 모든 요소를 대상으로 스타일을 적용한다. 

 태그 선택자

 태그 {속성:속성 값;}

 특정 태그에 스타일을 적용한다.

 클래스 선택자

 .클래스이름 {속성:속성 값;} 

 특정 클래스에 스타일을 적용한다.

 id선택자 

 #id이름 {속성:속성 값;}

 특정 id에 스타일을 적용한다.

 하위 선택자 

 상위요소 하위요소 {속성:속성 값;} 

 모든 하위 요소에 스타일을 적용한다. 

 자식 선택자

 부모요소 > 자식요소 {속성:속성 값;} 

 자식 요소에만 스타일을 적용한다. 

 인접 형제 선택자 

 요소1 + 요소2 {속성:속성 값;} 

 첫 번째 동생 요소에 스타일을 적용한다. 

 형제 선택자  

 요소1 ~ 요소2 {속성:속성 값;} 

 형제 요소에 스타일을 적용한다. 

 그룹 선택자 

 요소1,요소2 {속성:속성 값;} 

 여러 요소들에 한번에 묶어서 스타일을 적용한다. 

[ 선택자(selector) ]



 하위 선택자 

  자식 선택자  

 인접 형제 선택자

 형제 선택자 

 section ul {속성:속성 값;} 

 section > ul {속성:속성 값;}

 h1 + p {속성:속성 값;}

 h1 ~ p {속성:속성 값;}

<body>

<section>

<p></p>

<ul>

<li>

<ul></ul>

</li>

<li>

<ul></ul>

</li>

</ul>

</section>

</body>

<body>

<section>

<p></p>

<ul>

<li>

<ul></ul>

</li>

<li>

<ul></ul>

</li>

</ul>

</section>

</body>

<body>

<section>

<h1></h1>

<p></p>

<p></p>

<p></p>

</section>

</body>

<body>

<section>

<h1></h1>

<p></p>

<p></p>

<p></p>

</section>

</body>

[ 헷갈리기 쉬운 선택자들 ]






현재 HTML5 까지 나왔지만 오래된 브라우저들은 지원하지 않는 경우가 있습니다.


그렇기 때문에 HTML5 로 만들어진 사이트를 옛날 브라우저로 접속할 경우 제작자의 의도와 맞지 않게 사이트가 구성될 수 있기 때문에 HTML5 태그 지원 여부를 확인하고 지원하지 않는 경우 추가적인 설정이 필요합니다.


IE 

Edge 

Firefox 

Chrome 

Safari 

Opera 

IOS Safari 

Opera Mini

Android Browseer 

Chrome for Android 

 

 

52 

49 

 


9.3 

 

4.4 

 

 

14 

53 

58 

 

45 

10.2 

 

4.4.4 

 

11 

15 

54 

59 

10.1 

46 

10.3 

all 

56 

59 

 

16 

55 

60 

11 

47 

11 

 

 

 

 


56 

61 

TP 

48 

 

 

 

 

 

 

57 

62 

 

 

 

 

 

 


(html5를 지원 현황)


브라우저는 자신이 인식하지 못하는 태그를 인라인 태그로 취급하기 때문에 html5 태그인 header, section, nav, article, footer 을 쓰기 위해서는


강제로 블록 레벨 태그로 설정해야합니다.


header, section, nav, article, footer{ display:block; } <!-- 태그들을 블록 레벨 태그로 만든다. -->


그리고 IE 8 이하 버전에서는 시맨틱 태그를 지원 하지 않기 때문에 자바스크립트를 이용해야한다.


<script>

document.createElement('article');

document.createElement('section');

document.createElement('aside');

document.createElement('nav');

document.createElement('header');

document.createElement('footer');

</script>


위 태그는 <head>와 </head> 사이에 넣는다.


또는 자바스크립트 파일을 이용 할 수 있는데


https://github.com/aFarkas/html5shiv 페이지 접속 후에 src 폴더를 클릭하고 html5shiv.js 파일을 저장하여 사용할 수 있다.


<!-- [if it IE 9]>

<script src="/html5shiv.js"><script>

<![endif] -->


위 태그는 head 또는 script 또는 body 에 삽입한다.


<img> 태그에 있는 usemap 속성을 이용하면 하나의 사진에 구역을 나눠 서로 다른 사이트로 향하는 링크를 만들 수 있습니다.


ex)


<img src="사진.png" alt="" usemap="#네임이름">


<map name="네임이름">

<area shape="rect" coords="시작x좌표,시작y좌표,끝x좌표.끝y좌표" href="주소">

<map name="네임이름">

<area shape="rect" coords="시작x좌표,시작y좌표,끝x좌표.끝y좌표" href="주소">


</map>


실제로 해보겠습니다.


(유즈맵 적용 전 사진)





(유즈맵 적용 후 사진)


이미지맵을 적용하기 전 사진에서는 마우스를 사진에 올렸을 때 마우스 포인터에 아무런 변화가 없지만

이미지맵을 적용한 후 사진에는 사진박스, 네이버박스, 다음박스에 마우스를 올렸을 때 포인터가 변하는걸 볼 수 있으며

클릭시 해당 사이트로 이동하는 것을 볼 수 있다.


적용 소스

<img src="https://t1.daumcdn.net/cfile/tistory/2451BA4C596D6FFE1B" alt="" usemap="#named">

<map name="named">

<area shape="rect" coords="22,19,225,209" href="http://wishml.tistory.com/1">

<area shape="rect" coords="255,80,435,135" href="http://wishml.tistory.com/2">

<area shape="rect" coords="255,160,435,208" href="http://wishml.tistory.com/4">

</map>

'Web development > HTML & CSS' 카테고리의 다른 글

CSS 정의 및 특징  (0) 2017.07.22
HTML5 태그 미지원 브라우저  (0) 2017.07.19
CSS 초기화 파일(초기화 코드)  (0) 2017.07.15
HTML 기본 구조(기본 틀, 초기설정, 세팅)  (0) 2017.07.15
UTF-8 과 EUC-kr  (0) 2017.07.14

@charset utf-8;


/* css 초기화 */

html, body, div, span, applet, object, iframe, 

h1, h2, h3, h4, h5, h6, p, blockquote, pre, 

a, abbr, acronym, address, big, cite, code, 

del, dfn, em, img, ins, kbd, q, s, samp, 

small, strike, strong, sub, sup, tt, var, 

b, u, i, center, 

dl, dt, dd, ol, ul, li, 

fieldset, form, label, legend, 

table, caption, tbody, tfoot, thead, tr, th, td, 

article, aside, canvas, details, embed, 

figure, figcaption, footer, header, hgroup, 

menu, nav, output, ruby, section, summary, 

time, mark, audio, video { 

margin: 0; 

padding: 0; 

border: 0; 

font-size: 100%; 

font: inherit; 

vertical-align: baseline; 

/* HTML5 display-role reset for older browsers */ 

article, aside, details, figcaption, figure, 

footer, header, hgroup, menu, nav, section { 

display: block; 

body { 

line-height: 1; 

ol, ul { 

list-style: none; 

blockquote, q { 

quotes: none; 

blockquote:before, blockquote:after, 

q:before, q:after { 

content: ''; 

content: none; 

table { 

border-collapse: collapse; 

border-spacing: 0; 

}

'Web development > HTML & CSS' 카테고리의 다른 글

HTML5 태그 미지원 브라우저  (0) 2017.07.19
HTML 이미지 맵 만들기(usemap)  (0) 2017.07.18
HTML 기본 구조(기본 틀, 초기설정, 세팅)  (0) 2017.07.15
UTF-8 과 EUC-kr  (0) 2017.07.14
HTML 태그 요약  (0) 2017.07.14


HTML 에는 수 많은 태그들이 있지만 그 중에서도 자주 쓰는 것들


종류 

설명 

<h1>~<h6> 

  제목 요소 / 숫자가 작을수록 큰 제목 

<img> 

  이미지 

<p> 

  단락 구분 

<a>

  링크 

<address> 

  주소 

<map> 

  맵 좌표 영역 설정 

<hr> 

  구분선 

<ul> 

  순서가 없는 목록 선언 

<ol> 

  순서가 있는 목록 선언 

 <blockquote>

  긴 인용 문구 요소

 <li>

  목록 

 <strong>

  강한 강조(객관적) 

 <span>

  인라인 요소 그룹화 




 

<table> : 표의 시작과 종료
속성 : width = "너빗값"(표 너비) / border="선 두껫값"(선 두께) / summary="테이블 요약 내용"(테이블 요약 내용) / cellspacing="셀 간격"(셀과 셀의 간격)

<tr> : 한 행의 시작과 종료

<tr> : 제목 열
속성 : scope="col" (열 제목) / scope="row"(행 제목)

<td> : 데이터 열
속성 : rowspan="행 개수"(행 합치기) / colspan="열 개수"(열 합치기)

<caption> : 표 제목


<colgroup> : 열 그룹 시작과 종료


<col> : 열 그룹 설정

속성 : width="열 너비"


<thead> : 표 머리 영역(셀 제목 영역)

<tbody> : 표 본문 영역(데이터 영역)

<tfoot>  : 표 바닥 영역(통계, 합계 등)




<form> : 입력 양식 영역(전송역할)

속성 : name(폼 이름) / method(전송 방식  : get \ post) / action(입력값을 전송할 페이지)

<fieldset> : 입력 요소 그룹화

<legend> : 그룹 제목


<input> : 입력 요소

속성(type) : text(한 줄 글상자) / password(비밀번호) / checkbox(체크 박스) / radio(라디오 박스) / submit(확인 버튼,전송기능) / reset(취소 버튼) / image(이미지 버튼,전송기능) / file(파일 첨부) / button(범용 버튼) / hidden(화면 표시 안됨, 숨긴 값을 전송)

속성 : value(입력값) / name(요소 이름) / id(요소 아이디)


<label> : 입력 요소 제목

속성 : for(입력 요소 아이디와 일치해야한다)


<textarea> : 여러 줄 텍스트박스

속성 : rows(지정 행만큼 높이) / cols(지정 열만큼 너비)


<select> : 선택 상자


<option>: 선택 상자 옵션

속성 : value(옵션값)

'Web development > HTML & CSS' 카테고리의 다른 글

CSS 초기화 파일(초기화 코드)  (0) 2017.07.15
HTML 기본 구조(기본 틀, 초기설정, 세팅)  (0) 2017.07.15
UTF-8 과 EUC-kr  (0) 2017.07.14
HTML 문서 구조  (0) 2017.07.13
HTML 이란 무엇일까?  (0) 2017.07.13

+ Recent posts