우리가 잘 알고 있는 CSS기술을 사용하는 것은 쉽고 간단하지만 새로운 문제에 맞닥드리면 해결하기 어려워집니다.
웹은 항상 성장하고 있고, 새로운 해결법 역시 계속 성장하고 있습니다. 그러므로, 웹 디자이너와 프론트 엔드 개발자로서 우리의 노하우를 활용할 수 밖에 없다는 것을 잘 알고 있습니다.
우리의 특별한 방법을 알면서, 단 한 번도 사용하지 않더라도 언젠가 필요한 때가 오면 정확한 방법을 실무에 적용할 수 있다는 뜻이기도 합니다.
오늘, 저는 이전엔 알지 못했던 몇 가지의 CSS 방법을 알려드리려고 합니다. 몇몇 수치 단위들은 픽셀이나 em과 비슷하지만 당신은 아마 단 한 번도 들어본 적 없을겁니다. 시작해볼까요.

rem

어쩌면 당신에게 조금 익숙할 수 있는 단위로 시작해보죠. em은 현재의 font-size를 정의합니다. 일례로, body 태그에 em값을 이용해 폰트 사이즈를 지정하면 모든 자식 요소들은 body의 폰트 사이즈에 영향을 받습니다.

1
2
3
<body>
    <div class="test">Test</div>
</body>
1
2
3
4
5
6
body {
    font-size: 14px;
}
div {
    font-size: 1.2em; // calculated at 14px * 1.2, or 16.8px
}

여기, div에 font-size를 1.2em으로 지정했습니다. 이 예제에서는 14px을 기준으로 1.2배의 폰트 사이즈로 표현이 됩니다. 결과적으로 16.8px의 크기가 됩니다.
그런데 여기 em으로 정의한 폰트 사이즈를 각각의 자식에 선언하면 어떤 일이 생길까요? 같은 CSS를 적용한 동일한 코드를 추가해보았습니다. 각각의 div는 각 부모의 폰트 사이즈를 상속받아 점점 커지게 됩니다.

01
02
03
04
05
06
07
08
09
10
11
<body>
    <div>
        Test <!-- 14 * 1.2 = 16.8px -->
        <div>
            Test <!-- 16.8 * 1.2 = 20.16px -->
            <div>
                Test <!-- 20.16 * 1.2 = 24.192px -->
            </div>
        </div>
    </div>
</body>

이것은 어떤 경우엔 바람직하겠지만 대부분의 경우, 단순하게 단일 사이즈로 표현하기도 하지요. 이런 경우 바로 rem 단위를 사용하면 됩니다. rem의 "r"은 바로 "root(최상위)"를 뜻합니다. 최상위 태그(요소)에 지정한 것을 기준으로 삼으며, 보통 최상위 태그는 html태그입니다.

1
2
3
4
5
6
html {
    font-size: 14px;
}
div {
    font-size: 1.2rem;
}

이전 예제에서 만든 복잡한 단계의 세 div는 모두 16.8px의 폰트 사이즈로 표현되었습니다.

그리드시스템에 좋겠죠.

rem은 폰트에서만 사용하진 않습니다. 예를 들어, 그리드 시스템이나 rem을 이용한 기본 폰트 사이즈 기반으로 만든 UI 스타일, 그리고 em을 이용해 특정 위치에 특별한 사이즈를 지정할 수도 있습니다. 보다 정확한 폰트 사이즈나 크기 조정을 가능하게 해줄 겁니다.

1
2
3
.container {
    width: 70rem; // 70 * 14px = 980px
}

개념적으로 보면, 이 아이디어는 여러분의 콘텐츠 사이즈를 조절 할 수 있는 인터페이스 전략과 유사합니다. 그러나 모든 경우에 반드시 이런 방법을 따를 필요는 없습니다.

지금 사용이 가능한가?

rem (root em) 단위의 호환성 caniuse.com에서 확인할 수 있습니다.

vh와 vw

반응형 웹디자인 기술은 퍼센트 값에 상당히 의존하고 있습니다. 하지만 CSS의 퍼센트 값이 모든 문제를 해결할 좋은 방법은 아니지요. CSS의 너비 값은 가장 가까운 부모 요소에 상대적인 영향을 받습니다. 만약 너비값과 높이값을 부모 요소의 너비값의 뷰포트에 맞게 사용할 수 있다면 어떨까요? 바로 vh와 vw 단위가 그런 의도에 맞는 단위라는 사실.
vh 요소는 높이값의 100분의 1의 단위입니다. 예를 들어 브라우저 높이값이 900px일때 1vh는 9px이라는 뜻이 되지요. 그와 유사하게 뷰포트의 너비값이 750px이면 1vw는 7.5px이 됩니다.
이 규칙에는 무궁무진한 사용방법이 있습니다. 예를 들면, 최대 높이값이나 그의 유사한 높이값의 슬라이드를 제작할때 아주 간단한 CSS만 입력하면 됩니다.

1
2
3
.slide {
    height: 100vh;
}

스크린의 너비값에 꽉 차는 헤드라인을 만든다고 상상해보세요. vw로 폰트 사이즈를 지정하면 쉽게 달성할 수 있습니다. 저 사이즈는 브라우저의 너비에 맞춰 변할 것입니다.

지금 사용 가능한가?

뷰포트 vw, vh 단위의 호환성 caniuse.com에서 확인할 수 있습니다.

vmin과 vmax

vh와 vw이 늘 뷰포트의 너비값과 높이값에 상대적인 영향을 받는다면 vmin과 vmax는 너비값과 높이값에따라 최대, 최소값을 지정할 수 있습니다. 예를 들면 브라우저의 크기가 1100px 너비, 그리고 700px 높이일때 1vmin은 7px이 되고 1vmax는 11px이 됩니다. 너비값이 다시 800px이 되고 높이값이 1080px이 되면 vmin은 8px이 되고 vmax는 10.8px이 됩니다.
어때요, 이 값들을 사용할 수 있나요?
언제나 스크린에 보여지는 요소를 만든다고 상상해보세요. 높이값과 너비값을 vmin을 사용해 100으로 지정합니다. 예를 들어 터치화면 양 변에 가득차는 정사각형 요소를 만들때는 이렇게 정의하면 됩니다.

1
2
3
4
.box {
    height: 100vmin;
    width: 100vmin;
}

만약 커버처럼 뷰포트 화면에 보여야 하는(모든 네 변이 스크린에 꽉 차 있는) 경우에는 같은 값을 vmax로 적용하면 됩니다.

1
2
3
4
.box {
    height: 100vmax;
    width: 100vmax;
}

알려드린 이 규칙들을 잘 조합해 활용하면 뷰포트에 맞는 매우 유연한 방식으로 사이즈 조절을 가능하게 할 수 있습니다.

지금 사용 가능한가?

뷰포트 단위: vmin, vmax의 호환성 caniuse.com에서 확인할 수 있습니다.

ex와 ch

ex와 ch 단위는 현태 폰트와 폰트 사이즈에 의존한다는 점에서 em 그리고 rem과 비슷합니다. em과 rem과 다른 점은 이 두 단위가 font-family에 의존한다면 다른 두 단위는 폰트의 특정 수치에 기반한다는 점입니다.
ch 단위, 또는 글꼴 단위는 제로 문자인 0의 너비값의 "고급 척도"로 정의됩니다. 흥미로운 의견은 에릭 마이어의 블로그에서 확인할 수 있습니다. 그러나 기본 컨셉은 monospace 폰트의 N 의 너비값을 부여 받았다는 것이며, width: 40ch;는 40개의 문자열을 포함하고 있다는 뜻입니다. 이 특정 규칙은 점자 레이아웃에 기반하고 있지만, 이 기술의 가능성은 간단한 어플리케이션 그 이상으로 확장할 수 있습니다.
ex 단위의 정의는 "현재 폰트의 x-높이값 또는 em의 절반 값"이라고 할 수 있습니다. x-높이값은 소문자 x의 높이값이기도 합니다. 폰트의 중간 지점을 알아내기 위해 자주 사용하는 방법입니다.


x-높이값; 소문자 x의 높이값 (자세한 것은 웹 타이포그래피의 해부학 링크를 참조하세요)이 단위는 타이포그래픽에서 세밀한 조정을 할 때 많이 사용합니다. 예를 들어, 위첨자 태그인  sup 에게 position을 relative로 하고 bottom 값을 1ex라고 하면 위로 올릴 수 있습니다. 아래첨자 역시 비슷한 방법으로 아래로 내릴 수 있습니다. 브라우저는 위첨자와 아래첨자의 기본값을 vertical-align으로 정의하고 있지만, 보다 정교한 사용법을 알고 싶다면 아래와 같이 작성할 수 있습니다.

1
2
3
4
5
6
7
8
sup {
    position: relative;
    bottom: 1ex;
}
sub {
    position: relative;
    bottom: -1ex;
}

지금 사용 가능한가?

ex는 CSS1부터 있던 단위였고, ch 단위는 아직 찾을 수 없습니다. 에릭 마이어의 블로그에 있는 CSS 단위와 값에서 보다 많은 상세 정보를 볼 수 있습니다.

결론

여러분의 막강한 CSS 도구들의 무한한 확장과 지속되는 개발환경에 계속 눈을 뜨고 지켜보세요 아마 특정 문제를 해결하기 위해 예상치 못한 해결방법으로 이 애매한 특정 단위들을 사용할 수도 있을 것입니다. 새로운 스펙들을 시간을 들여 읽어보세요. cssweekly와 같은 좋은 사이트에도 가입해서 지속적인 뉴스를 업데이트 받아보세요. 그리고 주간 업데이트에 가입하는 거 잊지 마세요. 무료 튜토리얼과 Tuts+의 웹디자인에서 나오는 다양한 자료들을 만날 수 있습니다.

읽을 거리

CSS 단위의 여신들.







1.class 속성이란?

요소에 스타일 시트를 적용하기 위한 구분자입니다. 클래스 이름에 사용 가능한 문자 (사용 불가능한 문자)에 대해서는 특별한 언급이 없지만, 영숫자를 사용하여 두는 것이 무난 하겠지요. 하이픈 (_)이 클래스 이름은 IE4 *에서 잘 해석되지 않을 수 있으므로 사용하지 않는 것이 좋습니다. id 속성과 class 속성의 차이는, id 속성은 요소에 고유 식별자를 할당 것인 반면 class는 스타일 시트에 정의 된 클래스 요소에 관계 붙이는 것입니다. 문서에 동일한 ID를 가진 여러 요소가 존재하지 않는 것이 보통이지만, 같은 클래스에 관계 지워진 여러 요소가 존재합니다.


2.class 속성에서 주의할 점

class 속성에서 주의할 점은 css의 class 문법, html의 class 문법,  jQuery의 class 문법이 어떻게 다른지를 인지하는 점입니다.

css에서 는 다음의 예와 css 셀렉터 레퍼런스에서와 같이 띄워쓰기로 구분될 경우, "선행 엘리먼트 안에 있는 ~"이라는 의미로 해석 되지만, html에서는 상하 관계가 아니라 복수의 클래스를 의미해게 됩니다.

jQuery에서는 css에서와 같은 의미로 셀렉터가 사용되기 때문에 css와 jQuery의 class 사용 문법은 동일하다고 이해하시면 됩니다.


<!-- CSS -->
.test-repeat {
  background-repeat: repeat;
  background-image: url(./image/back.gif);
  width: 85px;
  height: 85px;
  border: 1px solid gray;
}


<!-- html -->
<div class="nav nav-centered nav-reversed navbar navigation-block"></div>

 

.css


.test-repeat {
  background-repeat: repeat;
  background-image: url(./image/back.gif);
  width: 85px;
  height: 85px;
  border: 1px solid gray;
}
.test-repeat-x {
  background-repeat: repeat-x;
  background-image: url(./image/back.gif);
  width: 85px;
  height: 85px;
  border: 1px solid gray;
}
.test-repeat-y {
  background-repeat: repeat-y;
  background-image: url(./image/back.gif);
  width: 85px;
  height: 85px;
  border: 1px solid gray;
}
.test-no-repeat {
  background-repeat: no-repeat;
  background-image: url(./image/back.gif);
  width: 85px;
  height: 85px;
  border: 1px solid gray;
}
.test-space {
  background-repeat: space;
  background-image: url(./image/back.gif);
  width: 85px;
  height: 85px;
  border: 1px solid gray;
}
.test-round {
  background-repeat: round;
  background-image: url(./image/back.gif);
  width: 85px;
  height: 85px;
  border: 1px solid gray;


<h5>repeat</h5>
<div class="test-repeat"></div>
<h5>repeat-x</h5>
<div class="test-repeat-x"></div>
<h5>repeat-y</h5>
<div class="test-repeat-y"></div>
<h5>no-repeat</h5>
<div class="test-no-repeat"></div>
<h5>space</h5>
<div class="test-space"></div>
<h5>round</h5>
<div class="test-round"></div>


1. CSS란

 CSS란 html에서 디자인 효과만 따로 떨어져 나온 기능이다. CSS는 독자적인 양식을 갖는다.


2. CSS 예제를 통한 CSS의 기본구조 보기


<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>Insert title here</title>

<style>

h1 {

color:red;

font-size:20px;

}

h2 {

color:yellow;

text-decoration: underline;

}

header h1{ 

border:1px solid red;

color:green;

text-decoration: underline;

}

  .class 

border:1px solid red;

color:green;

text-decoration: underline;

}

</style>

</head>

<body>

<header>

<h1>

css study

</h1>

</header>


<h1>css</h1>

<h2>javascript</h2>

<h3>html</h3>


</body>

</html>

ⅰ.<style> 태그

CSS는 <style>안에 위치하게 된다. <style>태그 자체는 html이지만, <style>안에 들어오는 내용은 CSS로써 받아들여지게 된다.


ⅱ. CSS기본구조 : 선택자와 서술자

css는 선택자와 서술자로 구성된다. 

① 선택자

-h1부분을 선택자라고 부르는데, 선택자의 자리에는 html 태그가 위치한다. 즉, 선택자에 적힌 html 태그에 css가 적용되는 것이다. 

-h1{color:red}라고하면 h1부분의 폰트만 빨간색이 되며, body{color:red}라고하면 body전체의 폰트가 빨간색이 된다. 선택자는 html의 태그가 들어가게 된다.

②서술자

-세미콜론으로 엮인 부분을 서술자라고 부른다.

-h1{color:red; font-size:10px;}과 같은 css가 존재할 때, {color:red; font-size:10px;}전체는 서술자라고 부르지만 서술자를 구성하는 color:red;  font-size:10px;의 각각의 부분은 속성property이라고 한다. 

-각각의 속성은 세미콜론으로 구분된다.





ⅲ. 다중 선택자

 다중선택자란 html태그를 넓은 범위부터 적은 범위 순으로 두 개기술 하는 것이다. 만약 위의 예에서 <header>전체가 아닌 <header>내부의 <h1>만 css를 적용하고 싶다고 한다면, header h1{color:red; font-size:10px;}같은 방법으로 적어준다.


ⅳ. 클래스의 선택
 클래스는 .class 의 문법으로 기재한다.


ⅴ. html내에서 CSS의 위치

css는 기본적으로 <head>태그에 들어오게 된다.

meta 태그 구체적으로 알아보기


<meta>태그는 HTML 문서가 어떤 내용을 담고 있고, 문서의 키워드는 무엇이며, 누가 만들었는지 등의 문서 자체의 특성을 담고 있다. HTML 문서의 맨 위쪽에 위치하는 태그(tag)로 HEAD 태그 사이 또는 뒤에 있어도 되지만 반드시 BODY 태그 앞쪽에 위치해야 한다. 브라우저와 검색 엔진을 사용할 수 있도록 웹 문서의 정보를 포함하고 있다.

 

1. 메타태그 속성 정리

・<META HTTP-EQUIV="Expire" ConTENT="-1">:캐쉬 완료(파기)시간 정의.


<META HTTP-EQUIV="Last-Modified" ConTENT="Mon,20 Jul 2007 19:30:30">:최종수정일을 정의.


<META HTTP-EQUIV='Pragma' ConTENT='no-cache'>:캐쉬가 되지 않게 하는 태그


<META HTTP-EQUIV="Content-type" content="text/html; charset=euc-kr">:웹문서의 언어 설정.


<META HTTP-EQUIV="Imagetoolbar" content="no">:그림위에 마우스 오버시 이미지 관련 툴바가 생기지 않음.


<META HTTP-EQUIV="Refresh" content="15;URL=http://galaxy.channeli.net/jakalky/sitemap.htm"> :페이지가 사라졌을시 다른 페이지이동


<META HTTP-EQUIV="Page-Enter" content="RevealTrans(Duration=5/시간 초단위, Transition=21) ">

  :페이지 로딩시 트랜지션 효과(장면 전환 효과)


<META name="Subject" content="홈페이지주제 입력">


<META name="Title" content="홈페이지이름 입력">


<META name="Descript-xion" content="설명문 입력">


<META name="Keywords" content="키워드 입력">


<META name="Author" content="만든사람 이름">


<META name="Publisher" content="만든단체나회사 이름">


<META name="Other Agent" content="웹책임자 이름">


<META name="Classification" content="카테고리위치(분류)">


<META name="Generator" content="생성프로그램(에디터)">


<META name="Reply-To(Email)" content="메일주소 입력">


<META name="Filename" content="파일이름 입력">


<META name="Author-Date(Date)" content="제작일">


<META name="Location" content="위치">


<META name="Distribution" content="배포자">


<META name="Copyright" content="저작권">


<META name="Robots" content="ALL"> 


<META name="robots" content="index,follow" /> 

   : 이 문서도 긁어가고 링크된 문서도 긁어감.


<META name="robots" content="noindex,follow" />

   : 이 문서는 긁어가지 말고 링크된 문서만 긁어감.


<META name="robots" content="index,nofollow" />

   : 이 문서는 긁어가되, 링크는 무시함.


<META name="robots" content="noindex,nofollow" />

   : 이 문서도 긁지 않고, 링크도 무시함.

 

<META name="generator" content="홈페이지 제작도구"> 

홈페이지를 만드는데 사용한 프로그램 프로그램 이름을 넣으려면 content="메모장" 과 같은 식으로 적으시면 됩니다.


<META name="author" contents="홈페이지를 제작한 사람 이름"> 

홈페이지를 만든 제작자를 넣으려면 content="제작자 이름등" 와 같이 적으시면 됩니다.


<META name="keywords" content="홈페이지가 담고 있는 내용"> 

홈페이지가 담고 있는 내용을 content="tip, 별, 시" 와 같이 ',' 를 단어 사이에 넣어 나열하면 됩니다. 검색엔진에서 검색어를 입력하고 찾기를 할 때 불러들이는 부분들입니다. 메타태그의 핵심기능이라고 할 수 있습니다.


<META name="descript-x-xion" content="홈페이지 소개"> 

홈페이지에 대한 간단한 소개글을 적습니다.


<META http-equiv="refresh" content="3; url=http://원하는 주소.net"> 

3초 후에 http://원하는 곳으로.net로 자동으로 이동하게 하는 옵션입니다.


<META http-equiv="Pragma" content="no-cache"> 

캐쉬에서 해당 페이지를 읽어들이는 걸 방지합니다. 들어올 때마다 새로고침을 한 것과 같은 효과입니다.


<META http-equiv="expires" content="MON, 01 apr 2002 00:00:01 GMT"> 

지정된 시간 이후에는 웹문서 캐쉬(cache) 금지 

일반적으로 현재 시간보다 과거 시간을 설정합니다.


<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-5"> 

문자 형식 지정 – 

HTML은 ISO코드, 완성형 코드등의 다양한 문자셋을 지정합니다. 일반적으로 ISO 코드를 많이 사용합니다.


<META http-equiv="Content-script-x-x-Type" content="text/javascript-x-x"> 

스크립트 형식 지정 – 

스크립트 형식에는 text/javascript-x-x(자바스크립트) 와 VBscript-x-x(비쥬얼베이직 스크립트)가 있습니다.


<META http-equiv="Content-Style-Type" content="text/css"> 

스타일시트 형식 지정


<META http-equiv="Page-Enter" content="RevealTrans(Duration=10, Transition=50)"> 


<META http-equiv="Page-Exit" content="RevealTrans(Duration=10, Transition=50)"> 

웹문서를 들어오거나 나갈때 효과주기 

속성값이 Page-Enter, Page-Exit는 웹문서를 들어오거나 나갈 때 한쪽 모서리 부터 서서히 드러나거나 사라지는 효과를 줍니다.

[HTML] DIV 태그와 SPAN 태그의 차이점

 | 

SPAN태그를 알기 위해선 DIV태그와 SPAN 태그의 차이점을 알면 쉽게 알 수 있습니다.

DIV 태그는 한 줄이라고 생각하시고, SPAN태그는 한 문장으로 생각하시면 됩니다.

 

<html>
<head>
<title>
div태그와 span태그의 차이점
</title>
</head>
<body>
<div style="color:white;background:black;">div태그 영역</div>
<span style="color:#fe6700;background:blue">span태그 첫번째 블럭</span>
<span style="color:#fe6700;background:green">span태그 두번째 블럭</span>
<span style="color:#fe6700;background:red">span태그 세번째 블럭</span>
</body>
</html>

 

# 엘리먼트에 대해서 알아가자.

 

원래는 이것부터 설명하고 위에 내용을 설명하는게 맞았지만, 저의 공부 스타일은 일단

저것이 무엇인지 머리속에서 깨닳음을 알고 안에 내용을 보면서 더 깊게 이해하는 스타일이라..

 

1. html 엘리먼트란 ?

시작 <태그> 부터 종료 <태그> 그 사이 엘리먼트 내용까지를 포함한다..

어쩌구저쩌구.. 막 이럼 ;; 우리나라 사람들은 초보자들은 모르게 일부로 어려운 말들 써가면서

하는 경향이 있음. (책과 인터넷에 보면 다 그러함 ;; 한번 엘리먼트가 몬지 찾아보시길..)

더도 말고 딱 짤라서 <font> 내용 </font> , <b1> 내용 <b2>, <table> 내용 </table> 등등등..

이런 것들이 다 엘리먼트라고 한다. 한마디로 문법이다. 

 

html 엘리먼트(element)는 크게 2가지로 나눌 수 있다.

1). 블록 엘리먼트

2). 인라인 엘리먼트

 

블록엘리먼트에는 div, p, pre, table 태그등등..

인라인엘리먼트에는 span, strong 태그등등.. 이 있다.



3. 블록엘리먼트와 인라인엘리먼트의 종류들

인라인 엘리먼트의 종류들 : 

b, big, i, small, tt

abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var

a, bdo, br, img, map, object, q, script, span, sub, sup

button, input, label, select, textarea


블록 엘리먼트의 종류들

<address>:연락처 정보

<article> HTML5:(의미있는) 단락 컨텐츠

<aside> HTML5:부가 컨텐츠.

<audio> HTML5:오디오 플레이어

<blockquote>:긴 ("블럭")  인용구.

<canvas> HTML5:캔버스

<dd>:정의를 설명.

<div>:문서의 분할

<dl>:정의된 목록

<fieldset>:필드 정의 레이블

<figcaption> HTML5:그림 캡션

<figure> HTML5:캡션이 포함된 그룹 미디어 컨텐츠 (참고 <figcaption>).

<footer> HTML5:페이지나 섹션의 푸터

<form>:입력 폼

<h1>, <h2>, <h3>, <h4>, <h5>, <h6>:제목 크기 (1~6)

<header> HTML5:페이지나 섹션의 헤더

<hgroup> HTML5:그룹 헤더 정보

<hr>:수평선 (구분선).

<noscript>:스크립트를 지원하지 않는 컨텐츠의 사용

<ol>:정렬된 목록

<output> HTML5:폼 출력

<p>:문단

<pre>:미리 정의된 문자

<section> HTML5:웹 문서의 섹션

<table>:테이블 (표)

<tfoot>:테이블 푸터

<ul>:정렬되지 않은 목록

<video> HTML5:비디오 플레이어

 

3. 블록엘리먼트와 인라인엘리먼트의 차이점



왼쪽의 span이 인라인 엘리먼트 : 구역설정이 라인으로 되어 있는 것을 알 수 있다.
오른쪽의 div가 블록 엘리먼트 : 구역설정이 블록으로 되어 있는 것을 알 수 있다.


1). 블록엘리먼트 속 인라인 엘리먼트는 존재할 수 있으나, 인라인 엘리먼트 속 블록엘리먼트는 존재할 수 없습니다.

(예 : <div><span></span></div> 가능

       <span><div></div></span> 불가능)

2). 블록엘리먼트는 아무런 스타일이 없을경우 가로길이가 100% 이고, 인라인 엘리먼트는 내용의 크기에 따라 달라집니다.

3). 블록엘리먼트는 가로나 세로길이를 수정할 수 있지만, 인라인 엘리먼트는 그럴 수 없습니다.

4). 블록엘리먼트는 가로길이에 상관없이 최소 한줄을 차지하지만, 인라인 엘리먼트는 그렇지 않습니다.

 

* 한마디로 블록엘리먼트는 큰 블럭이고, 인라인 엘리먼트는 작은 블럭이며,

큰 블럭안에는 작은 블럭이 갈 수있지만, 작은 블럭 안에는 큰 블럭이 들어갈 수 없다는 것이다.

2-1) 처럼 div는 큰 블럭 span은 작은 블럭이다.

 

 

ex)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>div와 span태그에 대해 알아보자</title>
</head>


<body style="margin:0;padding:0;width:569px; margin-left:auto; margin-right:auto; 
text-align:center; font-family:Gulim; font-size:12px; color:#707070;">

<div style="border:1px solid #c3dc8b; background-color:#f9fceb; padding:15px 0 15px 10px; text-align:left;">

<span style="width:545px; line-height:150%; padding:10px 0 10px 0; display:block;">안녕하세요.</span>

<span style="width:545px; line-height:150%; padding:10px 0 10px 0; display:block;">
div와 span 태그의 차이점을 알아보겠습니다.</span>

<span style="width:545px; line-height:150%; padding:10px 0 10px 0; display:block;">
<span style="color:#fe6700;">span태그 안에 span태그</span></span>

<span style="line-height:150%;padding:0px 0 10px 0; display:block;">감사합니다.</span>
       

</div>
</body>
</html>

  

이번 예제물을 봅시다.. div 태그 안에 span 태그가 들어갔습니다.

혹시 한글이 깨지시면, <meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />

이부분의 charset=utf-8로 바꿔 주시면 됩니다.

div태그와 span태그의 style 속성들을 보시면서 stlye속성에 사용법을 아셨으면 좋겠습니다.

div에 style 값들은 대부분 span태그에서 사용할 수 있습니다.

div안에 span태그를 사용하기 위해선 span태그 안을 보면 display:block 이라는 style속성을 써 줘야 합니다.

출처 : http://blog.naver.com/baegaha 



출처: http://delirussum.tistory.com/entry/HTML-DIV-태그와-SPAN-태그의-차이점 [My Documents]

HTML의 구성요소 태그(Tag), 요소(Element), 속성(Attribute), 변수(Arguments)



HTML을 공부하면서 아래와 같은 다소 생소한 용어가 몇개 등장합니다. 단지 이 부분을 이렇게 부른다는 정도의 의미이지만, 설명을 하기 위해서는 이런 용어를 사용할 수 밖에 없으니 HTML 강좌를 보시기전에 가볍게 보시기 바랍니다.


1. 요소(Elements)


HTML에서 시작 태그와 종료태그로 이루어진 모든 명령어들을 의미합니다.


2. 태그(Tag)


요소(Elements)의 일부로 시작 태그와 종료 태그 두 종류가 있습니다.시작 태그는 요소를 시작하며, 종료태그는 요소를 끝내는 기능을 가지고 있습니다.일부 태그 중에는 종료 태그가 없는 것도 있습니다.


요소와 태그의 개념이 뚜렷이 구별되지 않고 혼용되는 경우가 많은데 HTML을 배우는데는 굳이 요소라는 말을 쓰지 않아도 되지만 CSS나 Javascript를 배울때는 요소라는 말이 아주 중요한 용어가 됩니다.


<p>하나의 문단내용이 여기에들어 옵니다.</p>

<iframe src="http://www.homejjang.com/src/source_view.php?uid=93" frameborder="no" width="680" height="100" scrolling="auto" id="update_tb" style="margin-left: 10px;"></iframe>

위의 예제에서 요소는 <p>하나의 문단내용이 여기에들어 옵니다.</p> 전체를 의미합니다. 그러나 태그는 <p>와 </p>만을 의미하죠.



3.속성(Attributes)


요소의 시작 태그 안에서 사용되는 것으로 좀 더 구체화된 명령어 체계를 의미합니다.


<p align="center">태그에 속성을 부여하면 태그의 성격을 좀더 구체화 시킵니다.</p>

<iframe src="http://www.homejjang.com/src/source_view.php?uid=95" frameborder="no" width="680" height="100" scrolling="auto" id="update_tb" style="margin-left: 10px;"></iframe>

<p>태그안에 align 이라는 속성(Attributes)을 추가적으로 사용하였습니다.


단순히 <p>는 문단을 의미하지만 <p>안에 정렬을 의미하는 align 이라는 속성을 사용하면, 중앙정렬을 하는 문단을 의미합니다.


4. 변수(Arguments)


속성과 관련된 값입니다.


위의 예제에서 align 이라는 속성에 center라는 변수를 지정했습니다.


보통은 태그, 어트리뷰트, 아규먼트 이와 같이 우리말로 굳이 바꾸어서 사용하지 않고 원어로 그대로 사용하는 경우가 많기 때문에 홈짱닷컴의 강좌에서도 가능하면 원어로 설명하겠습니다

http://www.tohoho-web.com/html/index.htm



1. Head
・<meta>~</meta> : 


・<title>~</title> 타이틀바에 새겨질 글자를 정의한다. 타이틀 바란 브라우즈 창의 이름을 의미한다.
 

・<link>~</link> : css 파일을 연다.

-<link rel="stylesheet" type="text/css" href="http://127.0.0.1/CSS/style.css">


 


 


 










2. Body 

・<body>~</body>
-<BODY TEXT= "#nnnnnn">...</BODY> : 글자색을 지정합니다.
-<BODY LINK= "#nnnnnn">...</BODY> : 하이퍼링크의 색을 지정합니다.
-<BODY VLINK= "#nnnnnn">...</BODY> : 한 번 누른적이 있는 하이퍼링크의 색을 지정합니다.
-<BODY ALINK= "#nnnnnn">...</BODY> : 누르고 있는 동안의 색을 지정합니다.
 
・<header>~</header> : 시각적인 효과를 지니는 태그는 아니지만, 의미론적으로 <header> 태그 안의 부분의 본문의 간판이라는 것을 기계에게 알려준다.

・<article>~</article> : ​시각적이 효과를 지니는 태그는 아니지만, 태그 안의 부분이 본문이라는 것을 기계에게 명시해준다.

・<style>~</style> : style 속성은 말 그대로 태그의 스타일 관련 속성을 정의하며 CSS와 연동된다.

<태그 style="속성1:값1; 속성2:값2;">의 형태로 사용하며 속성의 값(위 태그의 값1, 값2)는 따옴표로 감싸지 않는다.
속성값의 끝에는 세미콜론(;) 을 붙이며, 마지막 값 뒤에는 꼭 붙이지 않아도 된다.


<html> <body> <div style="height:40px; border: 1px solid green">style1</div> <div style=" background-color: red">style2</div> </body> </html>


>>>

style1
style2

・<span>~</span> :<div> 태그와 비슷하게 레이아웃을 설정할 때 쓰인다. 하지만 인라인 엘리머트 이기 때문에 블록 엘리먼트인 div와 다르게 영역에 꽉차게 표시되지 않고,  설정한 줄마다 표시되며 크기를 설정 할 수 없다

 
・<p>~</p> 가장 먼저 줄을 바꿀때 사용되는 태그인 <br>과 <p>에 대해서 알아보겠습니다. 한가지를 설명하기도 벅찬데 두가지를 비교하게 되는건 용도는 비슷하지만 출력되는게 달라서 같이 알아보려고 하는데요. <br>태그는 </br>로 끝낼 필요가 없으며 단순히 줄넘기는 용도로 사용하면 됩니다.두번째 <p>태그는 단락간 단락으로 구분할때 쓰는 줄바꿈이고, 그 끝에 </p>로 마무리 태그를 넣는게 좋습니다. 당장은 오류가 안나지만 코드가 복잡해지면 혼동이 오거든요. 또한 <p>태그는 여백이 생기는게 특징입니다.

<html>
 <body>
  <p>first paragraph</p>
  <p>second paragraph</p>
  <p>
   new line<br>
   third paragraph
  </p>
 </body>
</html>
>>>

first paragraph

second paragraph

new line
third paragraph



 

・<hr>~</hr>
・<pre>~</pre> : 이 <pre>는 귀차니즘을 좋아라 하시는 분들이 좋아하는 태그겠네요. <pre>~</pre> 구간에 있는 글들은 사용자가 설정한 글꼴과 글자 크기, 줄 바꿈등이 그대로 출력되는 태그입니다. 하지만 중간 중간에 스타일을 입히지 못하기 때문에 웹디자이너들이 잘 쓸지는 모르겠습니다.


・<br>~</br>
 
・<h1~6>~</h1~6> 다음글에서 정리할 예정이지만 텍스트의 크기를 조절하려면 <font>태그를 이용하는데요. 이 <h>태그도 텍스트의 크기를 구분할 수 있다해서 무분별하게 사용하면 검색엔진이 웹페이지의 중요한 부분을 찾기에 혼동이 올수가 있습니다. 크기와 스타일만을 바꾸려면 꼭 <font>태그를 쓰세요.

・<a>~</a> : 
-<A HREF="...">...</A>  : 다른 홈페이지와 연결시켜 줍니다.
-<A NAME="...">...</A> : 자신의 홈페이지 내에서 연결해 줍니다.



<html>


<head>
       <title>TGIF</title>
<head>



<body link="green" vlink="red" alink="yellow" background ="sample1.jpg"text="red">
       <a href="<strong><font>'>http://google.com"><strong><font size = 7><center>Hello World</center></font></strong></a>


       <h1><font size = 7>MY</font> <i><font size = 7>name</font></i> <font size = 7>is daseul</font></h1>
       <h2><font size = 7>Thx God It's Friday</font></h2>
       <h3><font size = 7>Can i get to airport on time</font></h3>


       <li>
               <ul><font size = 7>hana</font></ul>

               <ul><font size = 7>dul</font></ul>

       </li>


       <table border="2">

               <tr>
                     <th>name</th>  
                     <th>area</th>

              </tr>
              <tr>
                     <td><font size = 7>haneda</font></td>
                     <td><font size = 7>tokyo</font></td>
              </tr>

              <tr>
                     <td><font size = 7>narita</font></td>
                     <td><font size = 7>chiba</font></td>
              </tr>
       </table>

 </body>

 </html>


・<form name ="" action="" method="">~</form> : ​name는 form의 이름이며, action은 바로 전송시킬 페이지 또는 파일 이름이다. action에 페이지 주소가 들어가면 그 페이지 주소로 이동하고, 프로그래밍 파일 주소를 넣으면 프로그래밍이 실행된다. action을 적용하기 위해서는 <input type="submit></input> 으로 submit를 버튼을 생성해야한다.


<html>

<head>

       <title>Login Page</title>

</head>


<body>

       <form action="HelloWorldServlet">  // action에는 컴퓨터 내의 파일 이름 혹은 인터넷 어드레스를 적는다. 
// HelloWorldServet 파일이 실행된다. 

                Username : <input type="text" name="uname"></input>

                <br>

                Password : <input type="password" name="pwd"></input>

                <br>

                <input type="submit"></input>

                <input type="reset"></input>

      </form>

</body>




・<nav>~</nav> : 페이지의 네비게이터를 설정한다. 네이게이터는 시각적인 의미를 지니지는 않지만, html의 이 부분이 홈페이지의 네비게이터(목차)에 해당하는 부분입니다 하는 것을 기계에게 알려준다.

・<aside>~</aside>

・<div>~</div> : 바디에 어디든 들어올 수 있는 아웃라인 엘리먼트이다. 아래와 같은 파라미터(속성)을 갖는다.
<div style="border:1px solid #c3dc8b; background-color:#f9fceb; padding:15px 0 15px 10px; text-align:left;">

・<footer>~</footer>


・<img src " "> : 이미지 삽입
-<IMG SRC="..." ALIGN=...>: 이미지의 정렬 상태를 나타내 줍니다.
-<IMG SRC="..." WIDTH="..." HEIGHT="...">: 이미지의 크기를 조절해 줍니다.
-<IMG SRC="..." LOWSRC="..."> : 이미지를 JPEG파일로 나타내 줍니다.
-<IMG SRC="..." VSPACE= HSPACE=> : 이미지의 여백을 조절해 줍니다.
-<IMG SRC="..." BORDER="..."> : 이미지의 태두리선을 조절합니다.
-<IMG SRC="..." ALT="..."> : 이미지가 전송되지 않았을 경우에 글자로 대처해 줍니다.

・<input type = " ">
-<INPUT TYPE="RADIO"> : 라디오 단추를 만들어줍니다.
-<INPUT TYPE= "CHECKBOX"> : 체크 상자를 만들어 줍니다.
-<INPUT TYPE= "SUBMIT"> : 제출 버튼을 만들어 줍니다.
-<INPUT TYPE="RESET"> : 취소 버튼을 만들어 줍니다.
-<SELECT> <SELECT NAME="...">: 선택 사항 상자를 만들어 줍니다.


・<textarea>~</textarea>:


・<select>~</select>

・<button>~</button>


<!DOCTYPE html>

<html>


<head>

<meta charset="ISO-8859-1">

<title>HTML Control Demo</title>

<style></style>


</head>


<body>

     <h3>Html All Contrl Demo</h3>

     <table border="2" >


     <!-First row->

          <tr>

               <td>

                    First name

               </td>

               <td>

                    <input type="text" name="firstName"></input>

               </td>

          </tr>


     <!-Second row->

          <tr>

               <td>

                    Last Name

               </td>

               <td>

                    <input type="text" name="lastName"></input>

               </td>

          </tr>


     <!-Second.5 row->

          <tr>

               <td>

                    Employee No

               </td>

               <td>

                    <input type="password" name="Employee No"></input>

               </td>

          </tr>



     <!-Third row->

          <tr>

               <td>

                    Address

               </td>

               <td>

                    <textarea name="address" rows="4" cols="50"></textarea>

               </td>

          </tr>


     <!-Fourth row->

          <tr>

               <td>

                    Marital Status

               </td>

               <td>

                    <input type="Radio" name = "status">Married</input>          

                    <input type="Radio" name = "status">Single</input>

               </td>

          </tr>


     <!-Fifth row->

          <tr>

               <td>

                        Skill

               </td>

               <td>

                    <input type="checkbox" name="skill">Singing</input>

                    <input type="checkbox" name="skill">Dancing</input>

                    <input type="checkbox" name="skill">Swimming</input>

               </td>

          </tr>


     <!-Sixth row->

          <tr>

               <td>

                    Profession

               </td>

               <td>

                    <select name ="profession">

                         <option value="E">Engineer</option>

                         <option value ="D">Teacher</option>

                         <option value ="P">Pilot</option>

                         <option value ="L">Lawyer</option>

                    </select>

               </td>

          </tr>


     <!-Seventh row->

          <tr>

               <td>

                    <input type="submit" name="submit"></input>

               </td>

               <td>

                    <input type="reset" name="reset"></input>

               </td>

          </tr>


     </table>


</body>

</html>


>>>















































 




ⅰ. 글자 서식 태그
・<b></b> : 글씨를 굵게
 
<strong>~</strong> : 글씨를 굵게 + 강조

<small>~</small> : 글씨를 작게

<i>~</i> : 기울게

<em>~</em> : 기울게 + 강조

<code>~</code> : 이 안에 있는 텍스트는 코드임을 알림

<mark>~</mark> : 형광펜 효과

<sup>~</sup> : 위 첨자

<sub>~</sub> : 아래 첨자
 
<FONT SIZE=n> ...</FONT> : 글자의 크기를 마음대로 조절해 줍니다. 뒤의 숫자는 1~7이며 7이 가장 큰 크기입니다. 기본값은 3.

<CENTER>... </CENTER> : 전체 문장을 가운데로 정렬시켜 줍니다.

<BLINK>...</BLINK> 글자를 깜박이게 해줍니다.







 
 



. 목록지정 태그
<ul>~</ul> : 순서 없는 리스트

<li>~</li> : 순서없는 리스트의 자식요소

<ol>~</ol> : 순서 있는 리스트

<li>~</li> : 순서 있는 리스트의 자식요소



ⅲ. 테이블 태그: 테이블은 페이지의 목록을 만들기위해서 자주 쓰임
・<table>~</table> : 테이블 목록 작성

・<tr>~</tr>: 테이블 태그 안에 들어가는 요소로써 테이블 row 작성

・<td>~</td>: <tr>안에 들어가는 요소로써 테이블 columns 작성


<td width="80" height="75" align="center" valign="top" style="padding-top:17px;">

 








































 



+ Recent posts