본문 바로가기
2222
Developer Camp[Fastcampus NKLCB] 2021.07/2021.07~ FastCampus 네카라쿠배2기

1일차. HTML, CSS(2)

by PARK TAE JOON 2021. 7. 12.

블럭 요소 : DIV, H1, P

최대한의 너비를 사용한다.
크기를 지정할 수 있다.
width:100% height:0 으로 시작(이 값을 가지는게 아니고 시작하는 값이다. 이렇게 입력해보면 아예 안나올것이다.)

인라인 요소 : SPAN, IMG

필요한 만큼 너비를 사용한다.
크기를 지정할 수 없다.
width:0, height:0 으로 시작.
브라우저상에서 설정되어 있는 것은 width:auto, height:auto로 설정되어 있을텐데
이 auto라는 것이 위 블럭요소와 인라인 요소의 값을 가지고 시작하는 것을 의미한다.
아래와 같이 이렇게 입력하면 위 인라인요소 3개는 붙어서 나오고 밑에 2개는 앞뒤에 띄어쓰기를 포함한채 나온다.

인라인 요소는 padding이나 margin에서 위아래 값을 가질 수 없으나 이상하게도 padding을 쓰면 밑에까지 색상이 내려오는 것을 볼 수 있다.
실질적으로 영역을 차지하지는 않지만 시각적으로만 나온다. 결론적으로 위 아래는 사용할 수 없다.

<span>안녕하세요</span><span>안녕하세요</span><span>안녕하세요</span>
<span>안녕하세요</span>
<span>안녕하세요</span>

charset

EUC-KR : 완성형
한글이 깨지는 현상이 발생할 수 있다.
박 태 준

UTF-8 : 조합형
ㅂ ㅏ ㄱ ㅌ ㅐ

http-equiv

<!-- IE를 지원한다면 이 코드가 포함되어야 한다. -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

base

기존 경로를 설정한다.
아래 예시에서 css폴더를 베이스로 잡으면 아래 link태그에서 css폴더를 기본으로 잡아온다.
주의점은 단 한번만 사용할 수 있고. 많이 쓰이는 태그는 아니다.

<base href="./css/">
<link rel="stylesheet" href="main.css">

body

header, footer

html5로 오면서 시멘틱 태그(의미를 가진 태그)를 쓸 수 있게 되었다.
아무런 의미를 가지지 않는 div를 header로 바꿀 수 있게 되었다.

<div class="header"> 이렇게 안쓰고 <header> 이렇게 사용할 수 있다.

ie11이 최신버전이고 ie9이상 지원하는 것이면 사용하는데 문제없을 것이다.

h1~h6

제목 폰트 크기를 줄이기 위해 낮은 단계를 사용하면 안된다!
구조를 나타내기 위해 사용해야지 크기에 맞춰서 사용하면 안된다.(브라우저마다 크기가 다르다.)
CSS에서 h1~h6의 크기를 지정하고 사용해야 한다.

h1다음에 h3을 쓰지말고 h2를 써라. 순차적으로 사용해라.
이런 것들은 절대적인 것은 아니고 추천하는 방식이다.

main

IE지원 불가.
페이지의 핵심적인 컨텐츠가 들어오면 된다.
main태그는 블럭 요소다. 각 태그마다 요소 확인은 아래 링크에서 할 수 있다.
참고 : https://heropy.blog/2019/05/26/html-elements/

article

독립적으로 구분되거나 재사용 가능한 영역 설정.
article 쓰기 애매하다면 section을 쓰거나 더 희석된 div를 쓰면 된다.
article안에 section들어갈 수 있다.

section

문서의 일반적인 영역
section안에 article들어갈 수 있다.

aside

별도 콘텐츠. 광고나 기타링크등의 사이드 바 같은 것.

nav

nav안에서 a태그를 통해서 명시되어있다.

address

연락처 정보 기입.
mailto나 tel을 이용해서 바로 메일앱이 열리게한다던지 핸드폰에서 전화창이 바로 뜨게 해줄 수 있다.

일반적인 형태

section과 article은 바꿀수도 있다.
영역을 설정하는 태그들은 다 block이다.

header
nav
section aside
article aside
footer

예제

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./test3.css">
</head>
<body>
    <header>
        <nav>
            <ul>
                <li>menu1</li>
                <li>menu2</li>
                <li>menu3</li>
            </ul>
        </nav>
    </header>

    <!-- main없이 section과 aside를 쓰게 되면 aside가 밑으로 가게 되서 두개를 래핑해주기 위해 main을 쓴다. -->
    <!-- cmd + shift + p > wrap을 해서 래핑한다. -->
    <main>
        <section>
            <h1>section</h1>
            <article>
                <h2>article1</h2>
                <p>contents</p>
            </article>
            <article>
                <h2>article1</h2>
                <p>contents</p>
            </article>
            <article>
                <h2>article1</h2>
                <p>contents</p>
            </article>
        </section>
        <aside>
            aside
        </aside>
    </main>

    <footer>
        <address>
            <a href="mailto:joker77z@naver.com">joker77z@naver.com</a>
            <a href="tel:+821071645084">010-7164-5084</a>
        </address>
    </footer>
</body>
</html>

css

header {
    background: tomato;
    margin: 10px;
    padding: 20px;
}
header nav ul {
    /* li들이 가로로 배치된다. */
    display: flex;
}
header nav ul li {
    list-style: none;
    margin: 10px;
}
main {
    /* aside태그가 오른쪽으로 붙어진다. */
    display: flex;
}
section {
    width: 70%;
    background: tomato;
    margin: 10px;
    padding: 10px;
    /* 패딩이 들어갔을 때 요소가 커지지 않게 */
    box-sizing: border-box;
}
article {
    background: yellowgreen;
    margin-bottom: 10px;
    padding:10px ;
}
aside {
    width: 30%;
    background: tomato;
    margin: 10px;
    padding:20px;
    box-sizing: border-box;
}
footer {
    background: tomato;
    margin:10px;
    padding-inline-end: 10px;
}
/* a 태그를 수직으로 맞추기 위해 block으로 바꾼다. */
footer address a {
    display: block;
}

댓글