HTML

박영광·2023년 10월 25일

HTML/CSS/JS/SASS

목록 보기
1/10
  • 웹페이지 만들때 모든 요소는 태그 안에 넣는다.
  • 일부 태그는 속성 기입가능
  • 태그 안에 태그도 가능
  • HTML style=” “ (font-size: 16px, font-family: , color: 등등)
  • P태그 안에 span태그 를 통해 글자 일부를 스타일링 하는데 사용가능

Css 파일

0. CSS를 사용하시려면 CSS파일을 만든 후 HTML에 첨부해야합니다.

우선 작업폴더에 .css로 끝나는 파일 아무거나 하나 만드시고

HTML 파일로 돌아와서

 <link href="님들의css파일경로~~" rel="stylesheet">
태그 안에 태그를 넣으시고

href라는 속성에 여러분의 .css 파일 경로를 지정해놓으면 css 파일 이용가능합니다.

저는 css 폴더 안에 main.css 파일을 만들었기 때문에

css/main.css 이렇게 경로를 적었습니다.

"현재 html파일과 같은 경로에 있는 css 폴더 내부의 main.css 파일을 첨부하라"는 뜻

1. CSS파일에 스타일을 집어넣고 .어쩌구 작명해줍니다

.profile {
  width : 200px;
  display : block;
  margin : auto;
}

스타일을 적고 .어쩌구 이렇게 아무렇게나 작명하고 { } 중괄호로 묶어줍니다.

위의 코드는 3줄의 스타일을 .profile 이렇게 하나의 단어로 묶은겁니다.

그 단어를 클래스라고 부릅니다.

2. HTML에 클래스 명을 첨부해서 스타일을 넣을 수 있습니다.

<img src="lion.png" class="profile">

class 속성을 열고 클래스명을 집어넣으면

css 파일에서 묶어놨던 스타일들이 다 적용됩니다.

class 말고 다른 식으로도 스타일을 묶을 수 있는데

.profile { font-size : 20px }/*클래스*/#special { font-size : 30px }/*아이디*/p { font-size : 16px }/*태그*/

CSS selector 라고 칭하는 것들입니다.

클래스 selector는 .클래스명{ } 이렇게 적을 수 있고 모든 class="클래스명"을 가진 요소에 스타일을 적용가능합니다.

아이디 selector는 #아이디명 { } 이렇게 적을 수 있고 모든 id="아이디명" 속성을 가진 요소에 스타일을 적용가능합니다.

태그 selector는 p { 스타일~~ } 이렇게 적을 수 있고 모든

태그에 스타일을 적용가능합니다.

점과 샵 기호를 잘 외워두도록 합시다.

셀렉터의 우선순위

물론 class, id를 동시에 가지는 html 요소라면

스타일이 겹칠 수 있습니다. 그럴 경우 우선순위가 존재합니다.

style="" (1000점)

#id (100점)

.class (10점)

p (1점)

높은 점수순으로 우선순위를 가짐


웹레이아웃의 기초 : div를 이용한 네모네모 박스 디자인

네모 박스 디자인에 많이 사용하는 CSS 속성

.box {
  margin : 20px;
  padding : 30px;
  border : 1px solid black;
  border-radius : 5px;
}

margin은 바깥 여백,

padding은 안쪽 여백,

border는 테두리 (차례로 두께, 선의 종류, 색상),

border-radius는 테두리 둥글게 처리입니다.

가운데 정렬도 많이 하는데 저번 이미지처럼 display : block; margin-left : auto; margin-right : auto 이렇게 주면 됩니다.

margin과 padding을 원하는 방향에만 줄 수 있습니다.

.box {
  margin-top : 20px;
  padding-left : 30px;
}

top, left, bottom, right 중 원하는 곳에만 여백을 줄 수 있습니다.

(참고) margin은 음수도 가능합니다. -20px 이런 식입니다.

(참고) margin : 5px 6px 7px 8px; 이렇게 띄어쓰기를 이용해 작성하시면

차례로 상 우 하 좌 마진을 5,6,7,8px 한번에 줄 수 있습니다.

display : block이 내장되어있는 div박스

.box {
  display : block;
}

모든 div, p, h1, li 등은 display : block 속성을 주지 않아도 기본적으로 내장되어있습니다.

그래서 p태그나 div태그를 그냥 사용하면 한 행을 전부 차지하게 됩니다.

이게 싫다면 display 속성을 다른 것으로 부여해주면 됩니다.

display : inline, inline-block, flex 등 여러가지가 있습니다.

일부 스타일은 inherit 됩니다

font-size, color, font-family, text-align 이런 속성들은

부모 태그에 쥐어주면 거기 안에 있던 태그들까지 전부 상속됩니다.

영어로 inherit 된다고합니다.

안에 글자들이나 태그들이 많을 경우 전부 font-size를 작성안해도

부모태그에 한번에 작성하고 끝낼 수 있으니 편리합니다.

다 inherit되는건 아니고 글자와 관련된 스타일들이 주로 inherit 됩니다.


레이아웃 만들기 1 : 호환성 좋은 float

사이트 레이아웃 디자인의 제 1원칙 : 만들고 싶은 레이아웃 디자인을 네모박스로 쪼개보고 그대로

써서 구현하면 됩니다.

어려워보이는 레이아웃도 네모박스부터 그 위에 그려보고

네모부분을

로 만들어서 배치부터 시작하면 됩니다.

요소를 공중에 띄워 왼쪽/오른쪽 정렬하는 float 속성

<div>
  <div class="left-box"></div>
  <div class="right-box"></div>
</div>
.left-box {
  width : 100px;
  height : 100px;
  float : left;
}
.right-box {
  width : 100px;
  height : 100px;
  float : left;
}
  • 위의 코드는 박스 두개를 만들어 각각 왼쪽으로 정렬시킵니다.
  • 하지만 float를 쓰면 요소를 붕 띄우다보니 그 다음에 오는 HTML 요소들이 제자리를 찾지 못합니다.

(참고) float 속성으로 가로정렬할 땐

float 박스들을 싸매는 하나의 큰 div 박스를 만들고 폭을 지정해주는게 좋습니다.

그래야 모바일에서 안 흘러넘침

float를 쓰고 나면 항상 clear 속성이 필요합니다.

<div>
  <div class="left-box"></div>
  <div class="right-box"></div>
  <div class="footer"></div>
</div>
.footer {
  clear : both
}

clear 속성을 사용하면 float 다음에 오는 박스들이 제자리를 찾게 됩니다.

float썼으면 까먹지 말고 항상 넣으시면 됩니다.

안넣으시면 내 의도와는 다른 레이아웃이 반겨줄 것입니다.

참고로 float : none 이것도 추가해주는게 나중에 생길 버그예방차원에서도 좋을 수 있습니다.

상대적인 크기 단위인 퍼센트 단위

.box {
  width : 80%
}

이 경우 내 부모 태그의 width에 비해 80% 만큼 차지하게 됩니다.

부모태그는 나를 감싸고 있는 태그를 뜻합니다.


레이아웃 만들기 2 : 귀찮은 inline-block

display : inline-block 사용 법

가로로 정렬할 때 float : left 이것만 쓸 수 있는 것은 아닙니다.

display : inline-block을 사용해봅시다.

<div>
  <div class="left-box"></div><div class="right-box"></div>
</div>
.left-box {
  width : 100px;
  height : 100px;
  display : inline-block;
}
.right-box {
  width : 100px;
  height : 100px;
  display : inline-block;
}

위의 코드는 박스를 만들어 왼쪽으로 정렬시키는 코드입니다.

display 속성만 inline-block으로 조정하면 가로로 배치가 가능합니다.

inline- block은 "내 폭과 높이만큼 자리차지하게 해주세요~" 라는 뜻입니다.

간편하지만 <태그> 사이에 스페이스바 공백이 있다면 그대로 보여주기 때문에

가로로 정렬하려면 태그 사이의 공백도 제거해줘야합니다.

이런게 귀찮다면 → float 사용하기

공백제거 편법1. 주석처리 기호 사용하기

<div>
   <div class="left-box"></div><!--
--><div class="right-box"></div>
</div>

주석은 실행되지 않는 코드입니다.

(에디터에선 ctrl + ? 이걸 눌러서 주석처리가 가능합니다. 맥은 command + ?)

HTML 코드는 이게 주석처리하는 코드이며

이 사이에 코드를 집어넣으면 실행되지 않습니다.

공백제거 편법2. 부모의 폰트사이즈를 0으로 만들기

<div style="font-size : 0px;">
    <div class="left-box"></div>
    <div class="right-box"></div>
</div>

font-size 속성은 inherit 되기 때문에 안에 있는

와 그 사이에 있는 공백도 font-size가 0px이 됩니다.

레이아웃 만들기 숙제 : Blog 글목록 만들기

팁0) 뭘 만들든 레이아웃은 항상 박스부터 만들고 시작하면 됩니다.

만들 디자인위에 전부 박스를 그리는겁니다.

그리고 이 박스들을 전부

로 구현해놓으면 됩니다.

그리고 안에 글넣고 그림넣고 하면 끝입니다.

기억하셔야할게

는 그냥 쓰면 display : block 때문에 위아래로 배치됩니다.

좌우로 나란히 배치하고 싶으면 float, 혹은 inline-block 쓰면 됩니다.

팁1) margin 속성으로 상하좌우 마진을 한꺼번에 줄 수 있습니다.

.box {
  margin : 10px auto 30px auto;
}

margin 이나 padding 속성에 4개의 값을 동시에 집어넣을 수 있는데 4개 값은 각각 상, 우, 하, 좌측을 의미합니다.

팁2) PC 레이아웃을 만드실 때 항상 container 또는 wrap 박스를 만들어놓는게 좋습니다.

<div class="container">
  <div class="left"></div>
  <div class="right"></div>
</div>

container 박스엔 항상 width를 지정해놓는게 좋습니다.

그래야 나중에 브라우저화면이 축소되어도 내부 div 박스들이 찌그러지지 않습니다.

profile
매일 1mm씩 성장하겠습니다

0개의 댓글