HTML/CSS (2)

easyliving·2022년 9월 11일
0

FRONT_END (HTML/CSS)

목록 보기
2/16
post-thumbnail

LAYOUT

* layout을 잘 나누는게 중요
	
   ** <div>: 콘텐츠 분할 요소 
   
   		*** <div id=header>
        	<div id=nav>
            <div id=main>
            <div id=footer>
            
            초기에는 이렇게 div tag 속 나누어준 속성을 써줬다면
            지금은 그냥 바로 header/ nav/ main/ footer를 바로 사용
            즉, 역할을 이름으로 하고 있는 div tag라고 보면 되겠다.
            이를 _Semantic(시멘틱)_ tag라고 한다. 

         *** <HEADER> 요소
		
         HTML5에 새롭게 추가된 요소로서, 
         웹 문서 맨 윗부분에 있으며 웹 사이트 이름,
         글로벌 링크(로그인, 회원가입, 사이트맵, 
         언어 선택등 웹사이트 어느 곳에서든지 이용할 수 있는 링크)등으로 
         구성된 영역이다.
         
         *** <NAV> 요소
         
         HTML5에 새롭게 추가된 요소로서, 목적지로 이동할 수 있도록 링크를 
         별도로 모아둔 영역이다.
         
         *** <SECTION> 요소
         
		 HTML5에 새롭게 추가된 요소로서, 섹션을 표시한다.

		 *** <ARTICLE> 요소

		 HTML5에 새롭게 추가된 요소로서, 독립적으로 구성된 글을 표시한다.

		 *** <MAIN> 요소

		 HTML5 권고후보에 main요소가 추가되었다.

		 ***<ASIDE> 요소

		 HTML5에 새롭게 추가된 요소로서, 
         페이지 전체 내용과는 어느정도 관련성이 있지만 
         주요 내용과는 직접적인 연관성은 없는 분리된 내용을 담고 있다.

		 ***<FOOTER> 요소

		 HTML5에 새롭게 추가된 요소로서, 웹 문서 맨 아래쪽에 있으며 
         저작권, 연락처등으로 구성된 영역이다.

출처: https://webdir.tistory.com/310 [WEBDIR:티스토리]

구역 가운데 정렬

네이버 사이트를 들어가보면 화면을 축소/확장에 따라 구역이 
오른쪽으로 정렬되거나 왼쪽으로 정렬되지 않고 가운데 정렬된다.
구역 속 컨텐츠들은 원래 정렬되어 있는대로 정렬된다. 
 
  <header>
        <div style="margin:0 auto; width: 1080px;">
        <!--가운데 정렬용 div-->
        <!--css 문법 = 속성명:값 , 속성이 여러개 일때는 ;으로 표시-->
        <!--인라인 스타일-->
        
 HTML 속에서 CSS를 넣을때는 위의 방식으로 입력해주면 된다.
 이를 인라인 스타일이라고 한다.
 
 용어🤏:인라인 스타일(Inline style)
	인라인 스타일이란 HTML 요소 내부에 
	style 속성을 사용하여 CSS 스타일을 적용하는 방법입니다.
    이러한 인라인 스타일은 해당 요소에만 스타일을 적용할 수 있습니다.
 
 하지만 이러한 방식은 코드 자체를 번잡스럽게 만들 수 있기 때문에 
 선호되지 않는다.

 따라서 CSS 문서를 따로 만들어 준다.
 
 /* CASCADING STYLE SHEET*/
 /* 선택자(selector)*/
div#header-center{
	margin:0 auto; 
	width: 1080px;
}

tip🤏: css문서에서 주석은 /* */이다.

tip🤏: div는 워낙 많이 쓰기 때문에 생략 가능하다. 
단, header나 다른 tag는 생략 불가능!


#header-center{
margin:0 auto; 
width: 1080px;
}
 
tip🤏: 속성 값이 같다면, 한번에 묶을 수 있다. 


#header-center,div#easyliving{
	margin:0 auto; 
	width: 1080px;
}


🪓 css를 작성 후, html이랑 연결해줘야한다.

<link rel="stylesheet" href="./naver.css">

🔑 이렇게 작성된 css의 위치를 link 시켜주면 된다.

tip🤏: pixel(px)은 상대적인 단위이다.

내 모니터의 픽셀이 궁금하다면 
개발자 도구->console에서 

screen.width
screen.height

입력하면 모니터 픽셀 결과값이 나온다. 

div로 구역 나누기

#header-search> h1{
width:280px;}

tip🤏: ">" 는 자식을 의미한다.

#header-search h1{
}

tip🤏: 자손의 경우, 띄어쓰고 뒤에 자손을 붙여주면 된다.


tip🤏: display 속성이 block으로 지정된 엘리먼트는
전후 줄바꿈이 들어가 다른 엘리먼트들을 다른 줄로 밀어내고
혼자 한 줄을 차지합니다./ 전체 넓이 모두 차지

이 경우 display inline-block으로 옆으로 나란히 배치 가능하게 할 수 있다.

tip🤏: display 속성이 inline-block으로 지정된 엘리먼트는 
마치 하이브리드 모드처럼 동작한다.
기본적으로 inline 엘리먼트처럼 전후 줄바꿈 없이 
한 줄에 다른 엘리먼트들과 나란히 배치된다.
내부적으로는 block 엘리먼트의 규칙을 따르면서 
외부적으로 inline 엘리먼트의 규칙을 따르게 된다.
/넓이를 지정 가능 



<div>네이버를 시작페이지로</div>
<div>쥬니어네이버</div>
<div>해피빈</div>

이 경우 셋 다 div tag 니까, 100%로 가로를 차지하면서 세로로 쌓일 것 이다.

하지만 네이버 웹사이트는 이 부분을 가로로 배열하고 있기에,

<div style="display: inline-block">네이버를 시작페이지로</div>
<div style="display: inline-block">쥬니어네이버</div>
<div style="display: inline-block">해피빈</div>

이렇게 inline-block을 이용해서 가로배열 해주거나,


  <span>네이버를 시작페이지로</span>
  <span>쥬니어네이버</span>
  <span>해피빈</span>
  
  span을 통해 가로 배열 해줄 수 있다.

tip🤏: display 속성이 inline으로 지정된 엘리먼트는 
전후 줄바꿈 없이 한 줄에 다른 엘리먼트들과 나란히 배치됩니다. 
대표적인 inline 엘리먼트로 <span>이나 <a>, <em> 태그 등을 들 수 있다.
/ 자기 content만큼만 넓이를 차지함

CODE

🔑<naver.css code>


    
    /* CASCADING STYLE SHEET*/
/* 선택자(selector)*/

div#header-center{
    margin:0 auto; 
    width: 1080px;
}

#header-search> h1{
    width:280px;
    display: inline-block;
}

#header-search h2{
    display:none;
}

#header-search fieldset{
    width: 520px;
    display: inline-block;
}
   
    
    

🔑<naver.html code>

<!DOCTYPE html> 
<html lnag="ko">
    <head>
        <meta charset="utf-8"/>
        <title>네이버</title>
        <link rel="shortcut icon" type="image/x-icon" href="./favicon.ico?1" />
        <link rel="stylesheet" href="./naver.css">
    </head>
    <body>
        <header>
            <div id="header-center"><!--가운데 정렬용 div-->
            <!--css 문법 = 속성명:값 , 속성이 여러개 일때는 ;으로 표시-->
            <!--인라인 스타일-->
                <div>
                    <span>네이버를 시작페이지로</span>
                    <span>쥬니어네이버</span>
                    <span>해피빈</span>
                    
                </div>
                <div id="header-search">
                    <h1>
                        <a href="https://www.naver.com">네이버</a>
                    </h1>
                    <h2>검색창</h2>
                    <fieldset>
                        <legend>검색</legend>
                        <input/>
                        <button>검색</button>
                        <input type="checkbox"/>
                        <input type="radio" name="group"/>
                        <input type="radio" name="group"/>
                    </fieldset>
                </div>       
            </div>
        </header>
       
        <nav>
            <ul> <!--unordered list-->
                <li>메일</li><!--list item-->
                <li>카페</li>
                <li>블로그</li>
                <li>지식인</li>
                <li>쇼핑</li>
                <li>네이버페이</li>
            </ul>
        </nav>
        <main>
            <h2>실시간 검색어</h2>
            <h3>연합뉴스</h3>
            <ol> <!--ordered list-->
                <li>충격) !!!!!!</li><!--list item-->
                <li>속보) ~~~~~~</li>
                <li>중대발표: !@#!@#!</li>
            </ol>
            <h3>언론사 목록</h3>
            <ul>
                <li><img src="./서울경제.png" alt="서울경제"/></li>
                <li><img src="./한국경제.png" alt="한국경제"/></li>
            </ul>
            <h3>로그인</h3>
            <h3>뉴스</h3>
            <h3>법률</h3>
            <h3>쇼핑</h3>
        </main>
        <footer>
            <div>공지사항</div>
            <div>creators</div>
            <div>회사소개</div>
        </footer>
    </body>
</html>


    
    

📈 이 포스팅은 유투브 ZeroCho님의 TVHTML/CSS 무료 강좌(네이버 메인)를 2-1~2-3강까지 들으면서 정리한 것입니다.

https://www.youtube.com/c/ZeroChoTV

profile
가끔져요

0개의 댓글