CSS 속성

공간

 

제일 먼저 html태그와 body태그의 기본적인 공간부터 margin, width, hieght, padding, border속성에 대해 알아보자

 

왜 html태그와 body태그의 기본적인 공간을 알아야 하느냐 

 

html태그는 전체의 공간을 차지하고 있다.

 

body태그는 그 중 내용이 담길 공간을 차지하고 있는데 html과 body 사이에 조금의 margin값이 반영되어있다.

 

그렇다면 margin값은 무엇인가?

 

margin

'바깥 쪽 여백'을 의미하는 margin값은 숫자 뒤에 단위를 넣어 사용할 수 있다.

 

단위는 (px, %, em 등  크기 단위를 말한다.)

 

공간이 있다면 방향도 존재한다.

 

margin값은 top, right, bottom, left의 방향 값을 가진다.

 

top부터 시계방향순으로 한꺼번에 적을 수 있다. 

 

/*예시*/

div {
  /*각각*/
  margin-top:50px;
  margin-right:0;
  margin-bottom:0;
  margin-left:50px;
  /*한꺼번에*/
  margin:50px 0 0 50px;
}

 

margin은 기본 여백을 설정하는 속성이라면 태그들의 기본 공간을 설정하는 속성은?

 

바로 width(와이드: 넓이) height(하이트: 높이)이다.

 

width, height

margin과 마찬가지로 숫자 뒤에 단위를 사용하여 나타낼 수 있다.

 

width는 가로의 길이

 

height는 세로의 길이

 

이미 방향이 정해져 있으므로 둘은 따로 방향값을 가지지는 않는다.

 

/*예시*/
div{
  width:50px; 
  height:50px;
}

 

이렇게 공간을 설정하고 마음이 바뀌면 width와 height를 계속해서 바꿔줘야 할까?

 

만약 그렇지 못한 상황이 있을 수 있다.

 

그렇다면 공간을 추가할 수 있는 속성은 무엇일까?

 

바로 padding속성이다.

 

 

padding

'안 쪽 여백'을 의미하는 padding도 마찬가지로 숫자 뒤에 단위를 사용하여 나타낸다.

 

어느 방향으로 공간을 추가할지 정해야 하기 때문에 방향 값이 필요하다.

 

padding값도 top, right, bottom, left의 방향 값을 가진다.

 

top부터 시계방향 순으로 한꺼번에 적을 수 있다. 

 

/*예시*/

div {
  /*각각*/
  padding-top:50px;
  padding-right:0;
  padding-bottom:0;
  padding-left:50px;
  /*한꺼번에*/
  padding:50px 0 0 50px;
}

 

width와 height, padding으로 이루어진 공간들을 구분하기 위한 속성

 

바로 border이다.

 

 

border

'테두리'속성인 border값도 마찬가지로 숫자 뒤에 단위를 사용한다.

 

공간 관련 속성에 테두리를 왜 뜬금없이 넣었는지 궁금할 수 있다.

 

이 테두리의 px값도 공간을 차지하기 때문이다!!(ㄷㄷㄷㅈ)

 

border도 어느 쪽에 테두리를 넣을지 선택하기 위해 방향 값을 가진다.

 

margin이나 padding처럼 방향 모두를 한꺼번에 쓸 수 없다.

 

하지만 border는 기본적으로 테두리의 굵기, 형태, 색 순으로 써준다.(이렇게 써주면 사각형으로 테두리가 나타난다.)

 

/*예시*/
div{
  /*기본 공간 설정을 해 주지 않으면 태그가 가진 공간으로 테두리를 형성*/
  width: 40px;
  height: 50px;
  border: 10px solid #000;/*굵기 형태 색*/
  }

 

확인

 

각각의 값들은 페이지에서 마우스 우클릭 후 검사를 클릭하면 이렇게 나타난다.(크롬 기준)

 

제일 안 쪽의 파란색 부분이 각각 width와 height부분이다.

적혀 있듯이 다음 바깥의 초록 부분은 padding, 구분해주는 border(테두리), 주황색인 margin속성이다.

position은 다음 장인 위치에서 다루도록 하겠다.

 

※여기서 꿀팁

margin과 padding 둘 다 여백이라서 헷갈릴 여지가 있다.

하지만 직접 써보면 알 수 있듯, margin은 width, height의 바깥쪽 부분을 padding은 안쪽 부분에 관여한다.

 

 

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요)

 

그럼~ 앙 제바

'IT아카데미 > CSS' 카테고리의 다른 글

홈페이지 만들기 - CSS[6]  (0) 2020.05.13
홈페이지 만들기 - CSS[5]  (0) 2020.05.12
홈페이지 만들기 - CSS[3]  (0) 2020.05.09
홈페이지 만들기 - CSS[2]  (0) 2020.05.07
홈페이지 만들기 - CSS[1]  (0) 2020.05.06

이제까지 적었던 {CSS속성}을 알아보자!

 

CSS속성도 마찬가지로 방대한 양의 속성과 그 값들이 있다.

 

먼저 사이트를 통해 얼마나 많은 속성들이 있는지 알아보자

 

https://developer.mozilla.org/ko/docs/Web/CSS/Reference

 

CSS 참고서

CSS 참고서를 이용해 알파벳 순서로 정리한 모든 표준 CSS 속성, 의사 클래스, 의사 요소, CSS 자료형과 @규칙을 찾아보세요. 또한 유형별로 정리한 CSS 선택자와 주요 CSS 개념도 찾아볼 수 있습니다.

developer.mozilla.org

모질라에서 제공하는 css참고서이다. 

 

들어가보면 알겠지만 외우려고 생각하면 벌써 머리아프고 난리다 난리.

 

그래서 나는 임의로 크게 세 가지로 나누어 보았다.

 

CSS의 특징을 중심으로 나눴으며 이는 내 개인적인 견해이다.

 

하지만 CSS를 이해하는데 도움이 되었으면 한다.

 

먼저 보실 분들은 클릭하셔서 볼 수 있다.

 

하지만 이에 앞서 단위에 대해 설명하고자 한다.

 

단위

우리가 사용하는 cm, m 등의 크기 단위처럼 CSS에도 단위가 있다.

 

크기단위와 색 단위로 나뉘며 각각의 속성값에 사용된다.

 

크기단위는 px(pixel), pt(point), %(percent) 등이 있다.(CSS size unit, 또는 CSS 크기 단위로 검색)

 

단위마다 가지는 성질이 각각 다르고 쓰임도 다르다.

 

색 단위는 원래 영어 단어로 표현했으나 그것으로는 한계가 있기 때문에 나타났다.

 

색 단위는 hex, rgb, hsl 등이 있다.(CSS color picker로 검색)

 

단어가 아니라 코드로 그것을 표시한다.

 

참고로 url( );은 경로를 나타내는 단위이며 이미지를 넣을 때 자주 사용된다.

 

 

공간

우리가 볼 수 있는 웹 상의 페이지들은 모두 공간을 가지고 있다.

 

CSS는 공간이 없다면 사용할 수가 없다.

 

CSS속성들 중 배경, 테두리, 표 등은 모두 공간을 활용해야만 사용할 수 있다.

 

HTML의 각 태그들은 저마다의 공간을 가지고 있다.

 

이러한 태그들의 공간을 Box model이라고 한다.

 

css box model property으로 검색하면 그에 관한 속성들이 나온다.

 

 

위치

마찬가지로 공간이 있어야 위치를 활용할 수 있다.

 

예쁜 디자인을 적용하려는데 이상한 공간에 않기 위해서 위치 속성이 필요하다.

 

위치에 관련된 속성은 정렬이나 상대위치, 절대위치 등이 있다.

 

또 공간을 더하거나 빼어서 위치를 지정하는 방법도 있다. 

(하지만 모바일이나 태블릿으로 볼 경우에 길이가 달라져서 화면이 깨지는 경우도 있으므로 주의)

 

CSS placement model(CSS 배치 모델)으로 검색하면 그와 관련된 속성또는 설명이 나온다.

 

글자

HTML에 빠지지 않는 것이 바로 글자이다. 

 

글자가 보이지 않는 페이지도 있을 수 있다

 

하지만 접근성을 잘 보여주는 사이트라면 무조건 글자가 필요하다.

 

대표적으로 text와 font로 나눌 수 있다.

 

text는 글자, font는 글꼴로 이해하면 편할 것이다.

 

text에는 서식을 지정하는 속성들이 많고 font에는 글꼴, 크기처럼 디자인 쪽 계열이 많은 것 같다.

 

각각 CSS text property, CSS font property로 검색하면 그와 관련된 속성들이 나온다.

 

 

이렇게 크게 세가지로 나누어 보았다.

 

다음 장부터 우리는 세부적인 속성들에 대해 또 헷갈리는 부분을 짚어보도록 하자

 

 

※ 블로그를 작성하면서 HTML문서와 많은 관련이 있다는 것을 알게 되었다.

블로그도 마찬가지로 페이지이며 HTML 문서이다.

오른쪽의 그림과 같이 tistory에는 HTML모드라는 것이 있다.

HTML모드는 HTML문서로 블로그 포스팅을 할 수 있도록 한 것이다.

이번 포스트에도 HTML의 <a>를 이용하여 세 가지로 나눈 속성에 바로가기를 만들었다. CSS또한 사용이 가능하다. 외부파일을 만드는 방법은 아니지만 임베디드 방식은 사용할 수 있다. 이처럼 우리 주변에도 생각보다 HTML을 활용할 수 있는 공간이 많으니 참고하길 바란다.

 

 

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요) 

 

그럼~ 앙 제바

'IT아카데미 > CSS' 카테고리의 다른 글

홈페이지 만들기 - CSS[5]  (0) 2020.05.12
홈페이지 만들기 - CSS[4]  (0) 2020.05.11
홈페이지 만들기 - CSS[2]  (0) 2020.05.07
홈페이지 만들기 - CSS[1]  (0) 2020.05.06
홈페이지 만들기 - CSS[0]  (0) 2020.05.05

HTML 문서를 검사할 수 있는 validator 사이트에서 CSS도 검사가 가능하다.

 

https://jigsaw.w3.org/css-validator/

 

W3C CSS 검사 서비스

파일 업로드를 통한 검사 직접 입력을 통한 검사

jigsaw.w3.org

자주 검사를 해서 문법 오류를 내지 않도록 하자!

 

자, 어제에 이어서 선택자를 알아보자!

 

선택자

 

링크 선택자( 링크의 클릭 전과 후)

 

a:link { CSS속성 }           클릭 전

a:visited { CSS속성 }       클릭 후

이렇게 쓴다.

 

보통 클릭 전에는 파란색 클릭 후에는 자주색으로 보이는 링크에 색을 입히거나 폰트를 조정할 수 있다.

 

 

반응 선택자( 행동에 따른 반응의 대상을 선택 )

 

태그명:hover { CSS속성 }     마우스 포인터를 대고 있을 때

태그명:active { CSS속성 }     클릭을 안 떼고 계속 누르고 있을 경우

a 또는 input: focus { CSS속성} 탭 키로 포커싱을 할 경우

 

이렇게 쓰인다.

hover 선택자를 사용 해 마우스를 갖다 댈 시 크기를 키웠다.
active 선택자를 사용 해 클릭 시 색상을 빨강으로 바꾼다.
focus선택자를 사용해 클릭 또는 탭으로 포커싱할 경우 크기를 키웠다.

 

상태 선택자( 상태가 어떠한 경우의 태그를 선택 )

input:enabled { CSS속성 }      입력이 가능한 경우

input:disabled { CSS속성 }     입력이 불가능한 경우

input:selected { CSS속성 }     선택된 경우

input:checked { CSS속성 }     체크된 경우

input:focus { CSS속성 }         포커싱 된 경우

 

보통 form태그안의 input 태그의 특정 상태에 대해서 CSS를 적용할 수 있다.

 

 

구조 선택자( 형제태그끼리의 순번을 통해 선택)

  • 일반 구조 선택자

태그명:nth-child(순번){ CSS속성 } 이렇게 쓴다.

 

한 부모태그 안이 기준 (단 형태가 달라도 순번은 진행된다. p, p, div, p인 경우 마지막 p는 3번째가 아닌  4번째)

 

  • 형태 구조 선택자

태그명:nth-of-type(순번){ CSS속성 } 이렇게 쓴다.

 

태그의 형태가 기준 

 

 

시작 문자 선택자( 제일 처음 시작하는 문자를 선택 )

태그 명:: { CSS속성 } 이렇게 쓴다. (::는 콜론 두 번)

 

 

전후 문자 선택자( 태그를 선택 )

태그 명::before { CSS속성 }     문자 앞에 올 내용을 넣는 경우

태그 명::after { CSS속성 }        문자 뒤에 올 내용을 넣는 경우

이렇게 쓴다.

 

※ ::는 가상 요소이며, 별도의 class를 지정하지 않아도 한 거 같이 선택할 수 있다.

아직은 잘 모르니 최근에 nav태그에 자주 사용된다는 것만 알아두자

 

 

반응 문자 선택자( 문자들을 드래그 했을 때 나오는 색을 선택)

태그명::selection { CSS속성 } 이렇게 쓴다.

 

문자의 배경 색과 문자 색만 바꿀 수 있다.

 

 

부정 선택자( 태그를 선택 ) 

태그명not(조건){ CSS속성} 이렇게 쓴다.

 

조건이 아닌 모든 것을 선택한다.

 

 

 

이렇게 선택자를 나열 해 보았는데 솔직히 말하면 다 무의미하다.

 

나의 복습과 여러분이 대충 훑고 지나갔으면 좋겠다는 마음이 있다. 

 

노마드코더의 니꼬쌤과 생활코딩의 이고잉님께서는 이런 말을 하셨다.

 

코딩은 암기가 아니라 이해이다! 

 

직접 따라해보면서 또는 만들어보면서 모르는 게 있으면 찾아보는 게 중요하다.

 

찾는 방법과 찾을 키워드를 잘 선택해야한다.

 

다음은 이때까지 항상 나왔던 {CSS속성}들을 알아보는 시간이다.

 

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요) 

 

그럼~ 앙 제바

 

 

 

 

 

 

 

 

'IT아카데미 > CSS' 카테고리의 다른 글

홈페이지 만들기 - CSS[5]  (0) 2020.05.12
홈페이지 만들기 - CSS[4]  (0) 2020.05.11
홈페이지 만들기 - CSS[3]  (0) 2020.05.09
홈페이지 만들기 - CSS[1]  (0) 2020.05.06
홈페이지 만들기 - CSS[0]  (0) 2020.05.05

우리는 앞서 CSS의 사용방법을 크게 3가지로 알아보았다.

 

이번에 알아볼 것은 '선택자'로 CSS를 적용할 대상을 선택하는 것이다.

 

먼저 사이트 하나를 소개하도록 하겠다.

 

https://www.w3schools.com/cssref/css_selectors.asp

 

CSS Selectors Reference

CSS Selector Reference CSS Selectors In CSS, selectors are patterns used to select the element(s) you want to style. Use our CSS Selector Tester to demonstrate the different selectors. Selector Example Example description .class .intro Selects all elements

www.w3schools.com

이 사이트는 CSS 선택자의 종류를 알려준다.

 

모르면 여기서 찾아보면 된다!

 

우리는 이 중에서 자주 쓰이고 중요한 선택자들을 알아보도록 하겠다.

 

선택자

선택자는 보통  선언 블록 앞에 쓴다.

 

선언 블록은 CSS속성과 그 값을 넣을 수 있는 공간이고 { }로 쓴다.

 

인라인 사용방법에는 쓰이지 않고 임베디드나 외부 파일 사용방법에 쓰인다.

 

왜냐면 인라인은 벌써 그 태그를 선택하고 있기 때문이다.

 

2020/05/05 - [IT아카데미/CSS] - 홈페이지 만들기 - CSS [0]

 

홈페이지 만들기 - CSS[0]

이제까지 HTML로 문서의 구성과 내용의 기반을 다졌다 하지만 90년대 문서도 이거보다는 잘 나왔겠다 싶다 앞으로 할 CSS는 이런 90년대 문서를 2010년대 문서로 만들어 줄 수 있는 장치이다. 2020년��

jejehoon.tistory.com

여기에 사용 방법 3가지를 설명해 놓았다.

 

이 중 자주 쓰이는 선택자를 알아보자

 

모든 선택자( * )

* { CSS속성; } 이렇게 쓴다. ( *는 보통 shift 8을 누르면 나타난다.)

 

HTML 문서의 모든 태그를 선택할 수 있는 선택자이다. 

 

태그 선택자( 태그 명 )

태그 명 { CSS속성; } 이렇게 쓴다.

 

적용하고 싶은 태그를 선택할 수 있는 선택자이다.

 

그룹 선택자( 태그 여러 개 )

태그 1, 태그 2 { CSS속성; } 이렇게 쓴다.

 

여러 개의 태그를 선택하여 동시에 CSS속성을 적용할 수 있다.

 

후손 선택자( 태그 안에 태그들 )

태그 태그 안의 태그 { CSS속성; } 이렇게 쓴다.

/*html태그가 
<div>
 <h1>제목</h1>
 <p>문단</p>
</div>
이렇게 되어 있을 경우*/
/*h1이나 p태그를 선택하기위해서*/
div h1 {CSS속성} 이렇게 사용한다.

 

자식 선택자( 태그 안의 바로 밑 태그 )

부모 태그 > 자식 태그  { CSS속성; } 이렇게 쓴다.

 

위의 후손 선택자의 예시 중 div태그와 h1태그는 서로 부모 자식 관계이다.

 

p태그는 말하자면 손자이기 때문에 div > p 이런 식으로 쓸 수 없다.

 

형제(동위) 선택자( 같은 등급의 태그들 )

태그 + 태그 { CSS속성; } 또는 태그 ~ 태그{ CSS속성; } 이렇게 쓴다.

 

+는 같은 계층 중 어떤 것이던 가능하고 ~는 같은 계층 중 바로 밑의 태그이다.

 

※HTML 구조상의 계층과 문서상의 계층은 다르다.

구조적으로 <h1> <h2>는 h1이 상위이지만

<div> 안에 같은 계층으로 <h1><h2>가 있는 경우에는 같은 계층이다. 

 

기본 속성 선택자( 태그 안의 속성 )

태그[속성] 또는 태그[속성="속성 값"] { CSS속성;} 이렇게 쓴다.

 

태그의 속성을 선택하여 CSS를 적용할 수 있다.

 

속성 선택자는 7개가 있고 임의로 기본과 문자열로 나누었다. 

 

※태그[]를 띄어서 태그 []로 쓰게 된다면 후손 선택자로 인식되어 주의해야 한다.

또한 속성 값을 쓰게 된다면 속성 값이 정확히 일치해야 한다.

 

문자열 속성 선택자 또는 value 선택자( 태그 안의 속성의 값 )

value는 태그의 속성 값으로 꼭 value를 넣어야 하는 것이 아니다.

 

  • 태그[속성~="value"]  속성 값이 value를 포함한 태그를 선택(단어 기준 value abc는 선택되지만 valueword는 선택되지 않는다.)

 

  • 태그[속성|="value"]   속성 값이 value나 value-로 시작하는 태그를 선택(단어 기준 속성 값이 valueword이거나 value이면 적용. 하지만 value abc는 적용되지 않는다.)

 

  • 태그[속성^="value"]  속성 값이 value로 시작하는 태그를 선택 (문자열 기준 모두 적용)

 

  • 태그[속성$="value"]  속성 값이 value로 끝나는 태그를 선택(문자열 기준 모두 적용)

 

  • 태그[속성*="value"]  속성 값이 value가 포함된 태그를 선택(문자열 기준 모두 적용)

이렇게 5가지로 쓸 수 있다

 

id 선택자와 클래스 선택자( 태그 안의 id속성의 값, 클래스 속성의 값 )

#id명 { CSS속성; }과 .class명 {CSS속성;} 이렇게 쓴다.

 

id가 class보다 더 디테일하기 때문에 class보다 먼저 쓰인다.

(id는 HTML 문서 안에 하나만 존재하기 때문이다.) 

 

class는 중복으로 적용이 가능해서 동일한 여러 개의 클래스 명을 가질 수 있다.

 

※id속성의 값은 영문으로 시작해야 하고 띄어쓰기가 불가능하다.

대신 _(언더바)나 -(하이픈)을 사용한다.

또한 한글, 특수기호도 사용이 불가능하다.

만약 된다고 해도 validator검사를 하면 버그가 난다.

 

이외의 선택자들은 다음 페이지에서 만날 수 있다.

 

 

 

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요) 

 

그럼~ 앙 제바

'IT아카데미 > CSS' 카테고리의 다른 글

홈페이지 만들기 - CSS[5]  (0) 2020.05.12
홈페이지 만들기 - CSS[4]  (0) 2020.05.11
홈페이지 만들기 - CSS[3]  (0) 2020.05.09
홈페이지 만들기 - CSS[2]  (0) 2020.05.07
홈페이지 만들기 - CSS[0]  (0) 2020.05.05

이제까지 HTML로 문서의 구성과 내용의 기반을 다졌다

 

하지만 90년대 문서도 이거보다는 잘 나왔겠다 싶다 

 

앞으로 할 CSS는 이런 90년대 문서를 2010년대 문서로 만들어 줄 수 있는 장치이다.

 

2020년대는 CSS만으로는 쪼금 부족할 것 같아 보인다.

 

자 시작해보자~!

 

 

 

CSS 

 

CSS란 'Casacading style sheet'의 준말로 폭포처럼 떨어지는 스타일 시트.

 

다시 말해, 우선순위에 따른 스타일 문서이다. 

 

이 말은 차차 이해하게 될 것이다.

 

우리가 진짜 알고 싶은 것은 다름 아닌 '어떻게 이렇고 저런 디자인들을 HTML 문서에 적용하느냐?'이다.

 

사이트를 하나 소개하겠다.

 

http://csszengarden.com/

 

CSS Zen Garden: The Beauty of CSS Design

So What is This About? There is a continuing need to show the power of CSS. The Zen Garden aims to excite, inspire, and encourage participation. To begin, view some of the existing designs in the list. Clicking on any one will load the style sheet into thi

csszengarden.com

이 사이트는 HTML 태그는 전부 동일하다.

 

하지만 CSS만으로 완전 다른 분위기를 내는 사이트들을 모아놓은 사이트이다.

 

들어가면 첫 화면 나는 오른쪽의  맨 첫번째 MID CENTURY MODERN을 클릭했다.
MID CENTURY MODERN의 CSS 자세히 보면 제목과 본문이 모두 같은 것을 알 수 있다. f12를 눌러 확인해보아도 된다.

이 외에도 분위기가 다른 CSS를 적용한 페이지들이 많이 있다.

 

이게 바로 CSS이다. 

 

 

 

CSS 사용방법

  • 인라인(기입)

HTML 태그 내에서 style속성을 사용하는 방법이다. 사용 예는 다음과 같다.

<h1 style="color: red;">안녕하시게!</h1>

 

  • 임베디드(삽입)

HTML의 head태그 내에 style태그의 공간을 따로 만들어서 HTML 태그들을 묶어 사용하는 방법이다.

<!--HTML구조연습을 위해 카피하던 것을 가져왔다.-->
<!DOCTYPE html>
<html lang="ko" dir="ltr">

<head>
  <meta charset="utf-8">
  <title>네이버클로바copy</title>
  <style media="screen">
    h1 { color: red;} /*여기서부터는 CSS영역으로 /**/이 주석이다.*/
  </style>
</head>

<body>
  <header>
    <h1>naver CLOVA</h1>
  </header>
  • 외부 파일(적용)

.CSS라는 파일, 확장자가 CSS인 파일을 만들어서 HTML 문서와 연결시키는 방법이다.

<!DOCTYPE html>
<html lang="ko" dir="ltr">

<head>
  <meta charset="utf-8">
  <title>네이버클로바copy</title>
  <link rel="stylesheet" href="navercloba.css"> <!--stylesheet라는 것을 rel속성을 통해 알려줘야한다.-->
</head>

<body>
  <header>
    <h1>naver CLOVA</h1>
  </header>

HTML 문서

/*navercloba.css*/

@charset "UTF-8";
h1{ color: green;}

외부 파일인 navercloba.css문서 확장자가 css이다.

 

이렇게 여러 가지 방법을 사용할 수 있지만 개인적으로 편한 방법은 외부 파일(적용)이다.

 

어떤 코드던지 적게 쓸수록 경제적이고 효율적이다!!

 

생활코딩-이 고잉님은 이렇게 말씀하셨다. "1억 번 한다고 생각해보세요"

 

그렇다 인라인으로 1억 번 코드를 작성한다면 우리는 황천길에 모바일로 코딩을 해야 할지도 모른다.

 

하지만 그것을 줄여줄 수 있는 게 바로 임베디드(삽입)이고

 

파일 단위로 묶어서 그것을 줄여주는 것이 외부 파일(적용)이다.

 

역으로 디테일하게 작업해야 하는(하나하나 바꾸어 줘야 하는) 태그들은 인라인이나 임베디드가 적당하다. 

 

그럼 CSS를 적용하려면 목적어가 필요한데 그 목적어는 어떻게 선택할까?

 

다음은 선택자이다!

 

 

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요)

 

그럼~ 앙 제바

 

 

'IT아카데미 > CSS' 카테고리의 다른 글

홈페이지 만들기 - CSS[5]  (0) 2020.05.12
홈페이지 만들기 - CSS[4]  (0) 2020.05.11
홈페이지 만들기 - CSS[3]  (0) 2020.05.09
홈페이지 만들기 - CSS[2]  (0) 2020.05.07
홈페이지 만들기 - CSS[1]  (0) 2020.05.06

 

우리가 보통 보는 페이지의 구조이다.

 

DBcut에서는 요새 트렌드를 잘 알 수 있다. 

 

현 시점을 기준으로는

DBcut사이트의 사이트 랭크

정형화된 페이지보다 이런식의 시각적이고 눈에 확들어오는 페이지들이 잘 나가는 것을 알 수 있다.

 

이러한 사이트들을 카피하기위해서는 그 구조들을 면밀히 관찰해야한다.

 

모양만 보고 구조화를 하게된다면 CSS에 속아 내용이 엉망이 된다.

 

내용을 잘 분석해서 구조화를 해야 한다.

 

오늘 배울 것은 바로 페이지의 구조화이다. 

구조화

HTML문서중에 제일 중요한 작업인 구조화는 HTML문서의 뼈대를 만드는 작업이다.

 

구조화에 쓰이는 태그

header: 제목이나 타이틀에 쓰이는 태그, nav를 포함시킬 수 있음, h1태그를 써야한다.

 

nav: 네비게이션 바에 쓰이는 태그, 사이트 내의 모든 페이지가 들어있어야한다.(보통 list태그들을 사용한다.)

 

main: 몸체가 되는 태그, 본문 태그이다. 보통 section을 감싸준다.

 

section: main안에서 쓰일 수 있고 header안으로는 쓰지 못함 하지만 section안에 header, article, footer의 구조를 만들 수 있다.

 

article: 독립적인 요소, section과 비슷하나 독립적이라는 차이가 있다. 예로는 블로그 포스트나 일반  댓글이 있다.

 

footer: 저작권이나 주소 전화번호 이메일 등을 나타내기위해 사용된다.(small태그와 address태그를 사용해준다.) 

 

aside: 광고, 빠른메뉴, 있어도 없어도 되는 태그이지만 있으면 좋다.(광고비 때문에 사실 제일 중요함)

 

종합해서 예시를 들어보자면 아래와 같다.

  <body>
 <!--머리부분-->
      <header>
        <h1>제목입니다.</h1>
      </header>
 <!--네비게이션부분 header로 넣을 수 있다.-->
      <nav>
        <h2>네비게이션 목록</h2>
        <ul>
          <li>목록1</li>
          <li>목록2</li>
          <li>목록3</li>
        </ul>
      </nav>
<!--몸통부분-->      
      <main>
      	<section>
        <h1>메인 몸통의 제목</h1>
        <section>
          <header>
            <h2>첫 번째 본문의 머리부분(제목)</h2>
            <p>첫 번째 본문의 대략적 설명</p>
          </header>
          <article>
            <h3>세부 내용의 제목</h3>
            <p>세부 내용의 설명</p>
          </article>
          <footer>
            <p>마무리 설명</p>
          </footer>
        </section>
        <section>
          <h2>두번째 본문</h2>
          <p>설명</p>
        </section>
        <section>
          <h2>세번째 본문</h2>
          <p>설명</p>
        </section>
        </section>
      </main>
<!--사이드부분-->
      <aside>
        <h2>광고/홍보, 퀵메뉴</h2>
        <p>광고,홍보등의 사이트와 무관한 내용이거나
          관련있더라도 없어도 무방한 내용</p>
      </aside>
<!--끝 부분-->
      <footer>
        <small>저작권 copyright &copy;</small>
      </footer>
  </body>

 

모든 태그들에는 heading태그로 묶어주는 제목이 필요하다.

 

왜냐하면 아웃라인을 잡을 때 기틀을 마련해야한다.

 

※main태그는 header의 하위태그가 아니기때문에 제목을 넣을 때 section을 한 번 입히고 heading태그(h1,h2...)로 제목을 넣어야한다.

 

아웃라인을 한눈에 검사할 수 있는 사이트는 https://gsnedders.html5.org/outliner/process.py이다.

 

위의 예시를 검사해보면 아래와 같은 구조가 나온다.

간과할 수 있는것이 구조화이지만 이렇게 구조화하는 것이 탄탄한 기반을 잡아주기 때문에 꼭 필요하다!!

 

 

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요) 

 

그럼~ 앙 제바

'IT아카데미 > HTML' 카테고리의 다른 글

홈페이지 만들기 - HTML[5]  (0) 2020.05.01
홈페이지 만들기 - HTML[4]  (0) 2020.04.28
홈페이지 만들기 - HTML[3]  (0) 2020.04.28
홈페이지 만들기 - HTML[2]  (0) 2020.04.23
홈페이지 만들기 - HTML[1]  (0) 2020.04.22

앞서 또한 앞으로 우리는 계속 태그를 공부하고 있는데 이것은 좋지 않은 공부법이다.

 

우리가 직접 실습을 통해서 필요한 태그들을 그때 그때 찾아가며 익히는 것이 훨씬 기억에도 남고 실무에도 도움이 될 것이다.

 

사이트를 하나 소개하자면 https://www.dbcut.com/bbs/index.php

 

디비컷 - 웹디자인 벤치마킹 및 우수 웹사이트 모음

디비컷은 신규 오픈한 국내외 웹사이트를 소개 평가하는 웹디자이너 커뮤니티입니다.

www.dbcut.com

이 사이트는 우수사이트를 랭크해놓은 사이트이다. 

 

HTML에서 알아야 할 것들을 배우고 난 후에 우리는 이러한 사이트들의 구조를 파악하고 HTML 문서까지 직접 작성해보는 시간을 가질 것이다.

form태그

오늘의 태그는 바로 form태그

 

로그인을 하거나  회원가입을 하거나 물건을 사거나 글을 작성할 때!!

 

우리가 입력한 정보를 서버로 전송할 때 쓰이는 태그이다!

<form action="http://localhost.php/" method="post">
<input type="text" name="study"/>
</form>

이런 식으로 사용한다.

 

form태그의 속성

action은 보내는 장소(주소) <form action="http://localhost.php/">이런 식으로 정보를 보낼 주소를 적어준다.

 

method는 서버에 보내는 방식,  값으로는 "post"(암호화), "get"(공개)이 있다.

 

그 외 많은 속성이 있다. 문자 인코딩 방법(accept-charset), 다른 form과 식별하기 위한 속성(name), 등

 

form태그 속에 쓰이는 태그들

우리가 페이지 내에서 볼 수 있는 버튼이나 글자를 적을 수 있는 공간을 만들 수 있는 태그들이다.

 

button태그(input type button과 다름) (=기본적으로 input type submit와 동일하다. type설정을 하지 않은 경우)

 

textarea태그 넓은 텍스트 상자 

 

select-option태그 선택 상자(하이퍼링크를 걸기 위해서는 자바스크립트가 필요하다. value값에 주소를 적고 select태그에  onchange = "if(this.value) window.open(this.value)"를 걸어주어야 한다.)

또 첫 번째 선택자가 아닌 선택자를 페이지가 뜨자마자 보여주고 싶다면 selected 속성을 이용하면 된다. 

 

datalist 태그 select-option태그와 비슷하다. 하지만 선택뿐만 아니라 글상자로도 사용이 가능하다. 요새 나오는 자동완성 기능과 비슷하다.

 

fieldset태그 폼 태그의 그룹화를 위해 필요한 태그 사각형으로 안에 있는 태그들을 감싸준다.

 

legend태그 (레게노?) fieldset태그로 감 싼 곳의 이름을 적기 위해 필요한 태그

 

label태그 어떤 태그와 그것의 이름을 연결하기 위해 필요함(떨어져서 사용할 경우 id-for을 써준다. ex]input 태그에 id="email"을 적어주고 label 태그에 for = "email"을 적어준다.)

 

input태그

form 태그의 사용 방법 중 제일 많이 사용되는 태그는 input 태그이다.

 

input 태그는 단일 태그이며 속성에 거의 반드시 type이 들어간다.

<input type="타입명" 그외 속성들/>

 

input 태그의 type들

text 텍스트 상자

password 암호 상자

button 버튼

submit 제출 버튼

reset 초기화 버튼

image 이미지

checkbox 체크박스(중복 가능 = 같은 카테고리로 묶어주는 게 좋음)

radio 체크박스 (중복 불가 = name으로 묶어줘야 가능)

file 파일 선택 및 가져오기

color 색

time오전/오후 시 분

week 년 주

month년월

date 연월일

datetime(삭제된 속성)

datetime-local 현지 시각 년 월 일 오전/오후 시 분

{tel, number, range, search, email, url}이 태그들은 스마트폰이 발전해 갈 때 스마트폰 키보드를 조정해주기 위해 사용됨

 

이렇게나 많은 <input>의 type들이 있다. 

 

이걸 다 외우는 것은 조금 비효율적이다.

 

페이지를 카피하면서 익히도록 하자

 

input 태그의 속성들

maxlength 최대 글자 수 설정

 

name 내용을 구분하기 위해 이름 적기 (id속성처럼 고유해야 한다.)

 

value 초깃값 설정하기와 버튼의 이름 변경하기, 서버에 제출할 데이터 정하기.

 

disabled 건드릴수조차 없게 해 놓는 상태(개발자들이 테스트할 때 사용)

 

readonly는 disabled과 다르게 수정은 못하지만 마우스로 클릭해서 파랗게 만들 수 있음

 

required form 데이터가 서버로 제출되기 전에 반드시 채워져야 하는 입력 필드를 명시(이 입력란에 입력하세요)

 

placeholder 전체를 지우고 하는 게 아닌 클릭 또는 키보드 입력하면 없어지는(ex 아이디 입력하세요를 클릭하면 글자가 사라짐)

 

step (type="number"에 주로 사용되는 속성) 구간을 나누고 싶을 때 구간의 크기를 정한다.

 

 

 

중구난방으로 적었지만 오늘은 정말 많은 태그와 속성에 대해서 알아보았다.

 

특히 form태그와 input 태그는 꼭 알아놓을 필요가 있다.

 

중요한 것은 이것을 사용해야 하는 것이다.

 

 

※속성 값이 하나인 경우 속성 값만 적어도 유효하다. ex) selected readonly 등등

서로 상충되는 태그는 같이 놓을 수 없다. ex) <a>와 <select>는 a는 링크를 걸고 싶어 하고 select는 선택지를 주고 싶어 한다.

 

※div와 span 태그 이 두 태그는 아무 의미 없이 쓸 수 있다는 공통점이 있다. 특히 무언갈 감싸주고 id속성을 주어야 할 때 필요하다. div는 블락 요소로 어떠한 태그던지 감쌀 수 있다. span태그는 인라인 요소로 인라인 요소만 감싸고 블락 요소는 감싸지 못한다. 잘 구분하도록 하자

 

※요롷게 생긴 특수문자나 띄어쓰기를 넣기 위해선 https://entitycode.com/이 페이지를 참고하는 것이 좋다.

여기서 찾고자 하는 특수문자의 코드를 찾을 수 있다.

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요) 

 

그럼~ 앙 제바

'IT아카데미 > HTML' 카테고리의 다른 글

홈페이지 만들기 - HTML[6]  (0) 2020.05.02
홈페이지 만들기 - HTML[4]  (0) 2020.04.28
홈페이지 만들기 - HTML[3]  (0) 2020.04.28
홈페이지 만들기 - HTML[2]  (0) 2020.04.23
홈페이지 만들기 - HTML[1]  (0) 2020.04.22

바둑,오목,빙고,땅따먹기 등등 

 

우리는 수없이 많은 네모사각 표들을 접해왔다.

 

표절, 뇌절 심지어 게시판도 표이다.

 

오늘은 HTML에서 사용하는 표 태그에 대해 배워보려고 한다.

표 태그

표 태그는 <table>로 쓰고 그 안에 <tr>,<td>,<th>등을 사용하여 형태를 나타낸다.

 

<thead>,<tbody>,<tfoot>의 구조안에 각각의 내용들을 넣어 줄 수 있다.

 

제목이

되는 행이다 .
이렇게  블로그  내에서 표를
만들  수  있다 .

html모드로 이를 확인해보면

 

<table>
<thead>
<tr>
<th>제목이</th>
<th>되는</th>
<th>행이다</th>
<th>.</th>
</tr>
</thead>
<tbody>
<tr>
<td>이렇게</td>
<td>블로그</td>
<td>내에서</td>
<td>표를</td>
</tr>
<tr>
<td>만들</td>
<td>수</td>
<td>있다</td>
<td>.</td>
</tr>
</tbody>
<tfoot>
<!-- 보통 합계나 비고 등으로 쓰인다 안쓸 수 있음-->  
</tfoot>
</table>

여기서 행과 열을 구분할 수 있다. 

 

행은 <tr>을 쓰고 열은 <td>를 쓴다.

( 행이 가로,row 열이 세로,col )

 

위의 코드와 같이 <thead>에는<tr>안에 제목셀이되는 <th>를 쓰고 이는 굵은 글씨로 표시된다.

 

<th>는 scope라는 속성을 갖는데 방향을 표시할 때 쓰는 속성이다.

 

scope="row"이면 행쪽, scope="col"이면 열쪽이다. 

<tbody>에는 <tr>안에 <td>를 쓰고 본문이 되는 내용을 써준다.

하늘색 줄은 아무의미 없다 그냥 한 것이다.

 

정리하면 <table>안에 <tr>로 행을 만들고 <th>로 제목을 만들고 <td>로 본문을 적어주면 된다.

 

그것의 구조는 <thead>에 <tr><th>, <tbody>에 <tr><td>이다.

 

※<table>바로 밑에 <caption>을 사용해 표에 캡션을 달 수 있다. 

 

잠깐 말했던 행(row)과 열(col)을 통해 셀 병합을 할 수 있다.

 

 

셀병합

셀 병합은 셀을 합친다는 뜻이고 thead와 tfoot 구간에서는 사용할 수 없다.

 

제목이  되는 행이다

.

이렇게
블로그
내에서
있다
표를
만들  수  .

위의 표를 이렇게 행쪽으로 합치는 법과 열쪽으로 합치는 법을 배워보겠다.

 

바로 <rowspan>과 <colspan>을 사용하는 것인데 각각 행확장, 열확장이라는 뜻을 가진다.

 

span은 확장이라는 뜻이 있는데 여기서 중요한 점은 방향으로 확장이라는 것이다.

 

rowspan을 쓰면 행을 확장한다 가로로 확장인줄 알겠지만 세로로 확장한다

 

어? 세로는 열인데? 하지만 행을 확장하는 것이기 때문에 가로가 확장되면 세로와 합쳐지는(이게 뭔소리..?)

 

여하튼 rowspan은 행 확장, colspan은 열 확장으로 각각 세로병합, 가로병합이다.(헷갈리지 않게 주의하자!)

 

<td style="width: 25%;" colspan="2">이렇게<br />블로그</td>
<td style="width: 25%;" rowspan="2">내에서<br />있다</td>

"이렇게" 와 "블로그"는 가로병합이므로 열 확장 => colspan

"내에서" 와 "있다"는 세로병합이므로 행 확장 => rowspan

 

이꼴(=)뒤에 숫자는 칸이나 줄의 수이다.

 

headers속성

저번 페이지에 말했던 접근성을 위해 필요한 속성이다.

 

시각장애우들은 소리로 표를 알기위해 어떤 행과 어떤 열에 있는 지를 알아야한다.

 

이것을 위해서 headers에는 id값을 받아 그것을 표시해 줄 수 있다.

제목이 되는 행이다 .

이렇게
블로그

내에서
있다
표를
만들  수  .

"되는"에 id값 "doinun"을 주게 되고 "만들"에 id값 "mandle"을 준다면 "수"는 headers값으로 "doinun mandle"을 가지면 된다.

<td id = "doinun">되는</td>
<td id = "mandle">만들</td>
<td headers = "doinun mandle">수</td>

 

이렇게하면 시각장애우도 수가 어떤 행과 어떤 열의 칸인지 알 수 있을 것이다.

공감 또는 훈수 부탁드립니다.(내가 그걸 모를 꺼 같니?? 라던가 응 아니야~이거야~ 해주세요) 

 

그럼~ 앙 제바

 

'IT아카데미 > HTML' 카테고리의 다른 글

홈페이지 만들기 - HTML[6]  (0) 2020.05.02
홈페이지 만들기 - HTML[5]  (0) 2020.05.01
홈페이지 만들기 - HTML[3]  (0) 2020.04.28
홈페이지 만들기 - HTML[2]  (0) 2020.04.23
홈페이지 만들기 - HTML[1]  (0) 2020.04.22

+ Recent posts