그리드: 균등분할시스템, 콘텐트 꾸밀때도 사용가능

 

grid-row / grid-column

grid-row / grid-column

 

#id>.class{ }

1fr vs 100px 차이

grid-template-colums : 1fr 1fr 1fr;

grid-template-colums : 100px 100px 100pxx;

 

auto 와 1fr차이

1fr은 콘텐트를 포함해서 여백이 있다면 그 여백을 균등분할 (컨텐트 크기에 영향x)

flex-grow : 여백이있으면 그 공백을 나눠가짐 (컨텐트 영향 ㅇ)

 

grid-template-columns:repeat(3,auto);

grid-template-columns: 1fr auto auto;

auto가 1fr에게 다 양보한다.

grid-template-columns:1fr auto 1fr;

auto가 1fr에게 다 양보한다.

가운데 auto때문에 들쭉날쭉해지므로 사용할때 유의할것

grid-template-columns : repeat(12, 1fr 2fr);

1:2로 나눈 영역을 12번반복한것 총 24개칸의 생긴다.

총 갯수가 24개의 칸, 1fr + 2fr ,1fr + 2fr, 1fr + 2fr,...,1fr + 2fr반복된다.

 

@media screen and (min-width:500px){}

@media screen and(min-width:800px){}

두개 다 공존한다. 덮어쓰기된다.

 

 

 

grid-template-columns : repeat(칸수, 너비)

grid-template-columns : repeat(12, 1fr 2fr);

1:2로 나눈 영역을 12번반복한것 총 24개칸의 생긴다.

총 갯수가 24개의 칸, 1fr + 2fr ,1fr + 2fr, 1fr + 2fr,...,1fr + 2fr반복된다.

grid-template-columns : repeat(12, 1fr 2fr); 적용모습

grid-template-colums : repeat(12, [col-start] 1fr);

컬럼을 12칸으로 나누고 첫열을 col-start라고 명명한다. 1:1비율로 나눈다.

grid-template-colums : 상위태그에서 열을 몇개를 나눌지 정한다.

 

grid-column : col-start / span 12;

열을 1열부터 12칸으로 나눈다.

1대신 col-start를 적으면 1열의 의미를 한다.

grid-column : 하위태그가 몇개의 컬럼을 차지할것인지 정한다.

#root>* 루트안의 전체범위이기때문에 이것을 적용하지않으면 header, nav영역이 

 

@media screen and (mind-width:500px) and (max-width: 799px)

500px부터 799px까지만 반응

500px이상일때 반응하는화면

 

 

grid-column: colstart 5 / span 9 ;

5열부터 9칸 colstart 5(5열의 이름)

 

 

 

 

#root{
    display: grid;
    grid-template-columns: repeat(12,[col-start] 1fr);
    gap: 20px; /*박스사이 갭*/

}
#root>*{ /*root안에 있는것 모두적용*/
    background-color: rgb(245, 37, 37);
    grid-column: col-start /span 12;
}

@media screen and (min-width: 500px) {

    #root > .side,
    #root > .ad{
        grid-column: 1 /span 3; /*1열부터 3칸*/
    }
    #root > .content,
    #root > .main-footer{
        grid-column: 4 / span 9; /*4열부터 9칸*/
    }
    #root > .side,
    #root > .content{ 
        grid-row: 3; /*3번라인 1칸*/
    }
    #root >.ad,
    #root > .main-footer{
        grid-row: 4;
    
    }
    
}

같은이름의 영역이 나뉘어지면안됨.

@media screen and (min-width: 800px) {

    .container {

      margin: 1em 2em;

    }

  }

반응형 grid 

ctrl키를 누른상태에서 "layout.css"를 클릭하면

 

css가 연결이안됐다고 창이뜬다.

create file을 누르면 자동생성

 

grid-template-colums: 250px auto auto

grid-template-colums: 250px 1fr 1fr

auto 는 확장성까지 포함한다. (칸이 늘어날수있다)

fr 는 확장하지않는다. 칸을 유지한다.

1fr하는게 안전하다.

ex) grid-column-start : 1, grid-column-end : 4; 경우 컬럼을 3까지만들었어도 1개가 자동으로 더생긴다.

여백에 맞춰서 모눈종이가 채워짐

 

여백늘리기

여백을 확장해서 창크기에 맞게 모눈종이가 적용되게한다.

html,body{ height};

 

margin: 0 ; 마진을없애서 모눈종이와 창사이의 틈을 없앤다.

 

아이템배치 Grid Line 컬럼,로우 번호이용

Grid-area 가로 시작 / 세로 시작 / 가로 끝 / 세로 끝

 

아이템배치 : Grid line 이름

 

border-radius : 50%; 이미지파일 둥글게

grid-column: 3/5; 열 3~5까지

 

1/ span2; 1에서부터 2칸더

span 2: 원래 위치에서 두칸

지정안하면 자동으로 지정

grid-column 순서

li1 : column 3부터4, row 2부터3

li2 : column 5부터 6, row 2부터 3

 

grid-template-columns :repeat(7, 1fr); 

열 7칸 갯수 고정, 비율에따라 크기맞춰짐.

grid-template-rows :repeat(auto-fill, 100px);

행 갯수 자동생성, 크기 100px고정

 

 

div태그 빨리 생성

.클래스명 엔터 : 클래스명이 들어간 div태그 생성

.name 엔터 :

#아이디명 엔터: 아이디명이 들어간 div태그 생성

#name 엔터:

 

grid-template-colums: 200px 200px

두칸생성 및 너비크기고정

 

 

 

grid-template-columns :1fr 1fr; 두칸 생성 및 너비 1:1 비율

 

repeat(갯수, 크기)둘중 하나 정확하게 정하기

repeat(auto-fill, 100px); 크기를 먼저 고정시키고 크기맞게 칸이 자동생성

 

repeat(auto-fit,100px); 크기를 먼저 고정시키고, 생성된 칸되에는 지워짐.

container(박스에 지정하는 속성값)

  • display
  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content

 

item(박스안에 들어가는 아이템에 지정하는 속성값)

  • order
  • flex-grow
  • flex-shrink
  • flex
  • align-self

중심축을 수평이냐 수직으로 두냐에따라 반대축이바뀐다.

 

container의 부모(body) 100%

body의 부모(html) 100%

부모의 height에 상관없이 viewpoint에 적용하려면 100vh

 

Color tool

material.io/resources/color/#!/?view.left=0&view.right=0

 

display: flex; flex박스 시작

nowrap : 한줄에 아이템이 아무리많아도 랩핑을 안하겠다. (기본값)

flex-wrap : wrap ; 다음라인으로 넘어감

*flex-flow : column nowrap; 

 

방향,랩핑(다음줄로넘어갈건지)

 

 

justify-content 중심축에서 아이템들을 어떻게 배치할지

justify-content : flex-start ; (왼쪽축 배치)

justify-content : flex-end ; (오른쪽배치)

justify-content : center ; (오른쪽배치)

아이템들을 어떻게 배치할것인지

 

justify-content : space-around;

아이템사이에 공백(맨앞쪽공백+뒤쪽공백 이 사이사이들어감)

 

justify-content : space-evenly; 똑같은간격

 

justify-content : space-between; 첫아이템과 마지막아이템은 화면에맞게붙이고 간격일정

 

 

align-items 반대축에서 아이템배치

align-items :center; 수직적으로 중심에 배치

 

 

shrink :2 ; 2배 더 많이 줄어든다

shrink: 1; 

 

 

container의 width에 따라 60%30%10%씩 변동한다

 

align-self: 아이템하나만 배치하고싶을떄

flex:1 flex: 1 1 0와 같다

Flex
-1차원적이 배치기법을 위해 고안됨
-컨텐츠 중심

Grid
-2차원적인 배치기법
-레이아웃 중심

 

flex, grid에서 쓸 수 있는 속성 구별하기

 

static (기본값) :위치를 지정하지 않을 때 사용한다.

 

position : absolute ;

절대적인위치, 기준점 : 브라우저 좌측상단

absolute

문서끝에서의 기준에서 300, 300적용

 

position : fixed;

유리면에 포스트잇을 붙이는상황,스크롤을 움직여도 고정되어있음(기준이 내가보고잇는화면)

position : fixed;

원래 위치와 상관없이 위치를 지정할 수 있다. 하지만 상위 요소에 영향을 받지 않기 때문에 화면이 바뀌더라도 고정된 위치를 설정 할 수 있다.

브라우저 화면의 상대 위치를 기준으로 위치가 결정된다

 

부모position : relative / 자식position : absoluate , left, top 지정한경우

relative : 상대적인위치, left,top위치,자신이 있던 위치에서 넣어준만큼이동

부모 : relative / 자식 : absoluate

부모에는 relative , 자식은 absolute로 부모그레이칸 위에 자식을 위치시킴.

relative : top, right, bottom, left(위, 오른쪽, 아래, 왼쪽)으로 원하는 만큼 조절할 수 있다.

 

position : sticky 헤더부분고정시

포스트잇이 유리창위에 붙인것. 자기공간이 유지되어 동생이랑 겹치지않음.

노란색(#header) position : sticky 적용시, 검정이미지가 노란색의 자리(흰색)을 침범하지않는다.

스크롤을 내리면 노란색이 상단에 고정이 되고 동생들 (#visual)가 뒤로 지나간다.

 

position : relative;

포스트잇을 문서위에 붙인것. 자기공간유지

 

검정이미지가 노란색의 자리(흰색)을 침범하지않는다.

스크롤내리면 안보임.

 

position : absolute;

포스트잇을 문서위에 붙인것. 자기공간 없어짐

검정이미지가 노란색의 자리(흰색)을 침범함.

스크롤내리면 안보임.

 

position : fixed;

포스트잇을 유리창위에 붙인것. 자기공간 없어짐

검정이미지가 노란색자리를 침범함.

스크롤을 내리면 노란색이 상단에 고정이 되고 동생들 (#visual)가 뒤로 지나간다.

flex : flex-grow / flex-shrink / flex-basis 의 축약

순서암기

래핑 flex-wrap

flex-direction : column

flex-wrap : wrap

 

Flex-flowflex-wrap이랑 direction한번에쓰는것

order : 순서바꿈

 

justify-content 와 align-items

콘텐트 : 팩킹

 

justify-content : center;

 

 

justify-content mdn 검색하면서 할것

 

justify-content : space-evenly

 

align-content와 align-items 비교

블록태그와 인라인태그

블록태그

방을 만드는 태그

가장 큰 블록태그

  • header, main, footer

콘텐츠 블록 종류 5개

  • 제목: <h>, <h1>
  • 목록 : <ul> , <ol>
  • 문장 : <div>, <p>
  • 표 : <table>
  • 입력폼 : <form>

텍스트,콘텐트를 감싸는 최전방 블록들

제목열 정리하는 section 태그

  • section, article,nav,aside

상대경로와 절대경로 차이 /크롬 확장프로그램/ HTML 문서구조

인라인요소


인라인태그

블록안에서 사용되는 태그

콘텐츠를 감싸거나, 콘텐츠 그 자체인 태그

<font>, <b> bold처리 ,<u> underline, <i>글기울임 

 


  1. flex박스 지정하기
  2. 기존 지정된것을 잃어버리고 flex디스플레이로 속성적용
  3. 아이템의 기본크기 : 콘텐트크기
  4. 여백나눠갖기 

 

콘텐트크기에 따라 기본 너비가 지정된다.

 


콘텐츠가 밖으로 나오는 현상

<div> 에 height 100px가 기본콘텐츠들의 높이보다 작아서 콘텐츠가 밖으로 나온다.

 

 

delete elements

개발자도구를 열고, elements에서 마우스오른쪽버튼을누르면 delete elements기능을통해 동적으로 확인가능

 

 

display : flex

display : flex 기본은 수평방향으로 나열된다.

 

 

flex-grow

flex-grow

1~7까지 콘텐츠박스가있고 나머지 오른쪽에 여백이있다. 이것을 나눠가져보자.

부모(item)에 flex-grow :1 지정 후 자식1(child) flex-grow :3 을 지정하면 

자식1을 제외한 6자식들에게 여백1개가 주어지고, 자식1에게 총3개의 여백칸이 주어진다.

여백을 3(자식1)+6(나머지자식) = 총 9등분으로 나눠서 가지게된다.

이때, 아이템박스자체가 3배가 되는것이 아니라, 자식1은 자신의콘텐츠블록과 여백3개를 갖는것이다.

콘텐츠영역과 여백영역이 합쳐보이니 주의.

 

flex-direction: 

flex-direction

flex-direction: ;컨테이너에게만 적용가능

 

 

 

반응형 움직임

width설정을 없애면 각 색깔이 창의 움직임대로 변형된다. (반응형)

 

 

여백

여백을 box3이 다 갖게되어 창을 움직일때마다 여백이box3으로 표현된다.

고정크기를 줘도 flex-grow를 설정하면 늘어난다.

 

 

flex-shrink

box1이 200px에서 고정되어 줄어들지않는다.

width는 개별적인 속성을 갖는다.

flex-shrink : 0 너비고정

flex-shrink : 1 남들보다 1배 줄어든다.

 

 

flex-direction : row-reverse 역방향

 

flex-basis

flex-basis 기본값이된다

 

 

변동크기 em 과 rem

html font-size: 50px일때

html { font-size : 50px; } 의 경우

 

html font-size : 10px 일때

html { font-size : 10px; } 경우

#header { height: 5em; } : 

  • 폰트사이즈 변화, 하이트 변화 , 루트를 기준(10px)으로 5배 늘어난다.

#header>div { height: 10rem; } : 

  • 폰트사이즈 변화, 하이트 변화, 루트를 기준(10px)으로 10배커짐. 

 

#visual{ height: 5em; font-size: 60px; } 

  • 변화없음, 자기속성가짐

#body { } :

  • 폰트사이즈 변화, 하이트 변화

 

#footer {font-size: 50px; } :

  • 변화없음,자기속성가짐

고정크기 : px, cm

변동크기 : rem,em,ex

em : 부모요소를 따라가지만, 자기 속성이있다면 자기속성을 따라간다.

rem : 루트(html{ })설정한 내용을 따라가고. 자기 속성이있다면 자기속성을 따라간다.

 


 

그룹화

class : 그룹으로 묶어서 스타일을 지정 할 수있다.

그룹화로 패턴을 만들어서 생산성을 높힐 수 있다.

 

 


min-height 최소높이
max-height 최대만정함(더이상클수없음)

 

 

height

 

 #visual height : 171px

#visual>div : height 100%

<div style =" : height : 100%;"> 부모영향

171px적용됨

 

 

#visual height : 50%이고 div style = height : 100% 인 경우

부모(visual>div)의 50%에 대해서 <div style>이 100%물려받음.

Style = , height : 100%        50%의 100%

 

 

#visual height : 50%이고 div style = height : inherit 인 경우

부모(visual>div)의 50%에 대해서 <div style>이 50%으로받음. (inherit)

Style = , height : inherit        50%의 50%

 

그러므로 height을 100%로 해야 나중에 부모높이를 바꿨을때 영향을 받지않을 수있다.

 


세번째 방

그룹화시킨 class 'float-content에서 opacity : 불투명도 조정

 

기존: static(수직방향적재), relative(상대적으로,기준위 기준아래등), absolute(절대위치)

최근: flex, grid

 

방을 위한 배치

수평방향:메인방향
반대는 크로스방향(수직)

 

display : flex;

수직으로되어있던 방을 수평으로 함


단축키

주석해제 : ctrl + k + u

주석처리 : ctrl + k + c

CSS

 

Block 레이아웃을 이용한 방만들기

제일 큰 방을 단뱡향으로 정하기 → 더 나눈다면 방"안"에서 다시 나누어진다.

가장 큰 방은 식별할 수 있는 이름넣기

<header id = "header">

<div id = "body">

 

Overflow 

자식요소가 부모요소의 범위를 초과할때

overflow : hidden

overflow : scroll

 

 

margin : 외부 여백, 박스와 박스경계선사이

padding : 내부 여백 , 경계선과 텍스트사이의 간격

min-height : 가변적으로 높이가 늘어 날 수있음

 

CSS의 값 할당 단위

 

CSS의 값 할당 단위

고정크기 : px, cm

변동크기 : rem,em,ex

em : 부모요소를 따라가지만, 자기 속성이있다면 자기속성을 따라간다.

rem : 루트(html{ })설정한 내용을 따라간다.

CSS 스타일 입히기

Cascading : 계단식, 덧칠하기식, HTML태그의 원래 스타일을 Cascading

CSS 속성 : 스타일을 입힐 수있는 가지수 ? 속성수 ?

              배경/경계선/폰트/색상/마진-left,top/패딩/박싱/박스라운드-img,color,repeat

대상선별 : 선택자(selector)사용

선택자 기본요소 : id, class , element

 


  • a  :  <a></a> 태그
  • .a  :  <*class ="a">
  • *#a  또는  #a  :  <*id="a">
  • aside.a  :  <aside class="a">

 

 

 

선택자

  • #a{color: green;} : a라는 id를 가지는 엘리먼트에 색상을 적용
  • .a{color: green;} : a라는 class에 포함된 엘리먼트에 색상을 적용
  • a{color: green;} : a라는 태그를 대상으로 색상을 적용

연산자

  • A B : 공백자체가 연산을 의미. A안에 포함된 모든B.
  • A>B : A안에 B자식들만 모두선택
  • A+B : B의 형제 바로 밑동생
  • A~B : A의 동생들 중에 B만 적용

 

#aa+nav+section : nav의section만 고른것


셀럭터를 이용한 엘리먼트  선택

 

.h1{ color:red; } 

class 명이 h1인 태그들을 레드로 적용 

 

 

aside.h1{ color:red; }

class 명이 h1이면서 aside태그를 가지고있는것 레드로 적용

 

 

h1{ color : red; } 

h1의 모든태그에 빨간색 적용

*h1{ color ; red; }와 같다.

 

 

 

section h1{ color : red; }

section안에 포함된 h1 모두를 찾는다.

 

 

 

section > h1 {color: red; }

section태그의 h1자식만 적용

 

 

 

a.first + span : 바로 밑동생으로서의 span 없음

 

 

 

h1 : 범위가 넓으므로 우선권이없음

.h1 , #h2 범위가 좁혀져 우선권생김

우선순위가 같다면 나중에 적용한게 결과로나온다

 

 

 

h1.h1보다 복합연산자가 더높다 
태그명이 속성을 가질땐 우선순위높다

 

 

 

h1{ } :기본 태그이므로 가장 우선순위낮음

.h1{ } : h1클래스로 좁혀짐

h1[lang="ko"] {} : <*lang="ko"> 특정랭귀지속성을 가진 h1태그 , h1에 랭귀지속성 한정사가 한번더 들어가서 우선선위높음

 

 


HTML

a[href^="#"]

  • ^ 시작 의미
  • #으로시작하는것

 

  • dir

    ltr : left to right   왼쪽부터 쓰기
    rtl  : right to left  오른쪽부터 쓰기
      a[dir='rtl']
    이 속성에다가도 스타일을 입힐수있다

/* Links with "example" anywhere in the URL */
a[href*="example"] { background-color: silver; }
example이 포함된것들만 비교가능

 

/* Links with "insensitive" anywhere in the URL,

   regardless of capitalization */
a[href*="insensitive" i] { color: cyan;}
i : 대소문자구별하지않겠다

 

/* Links with "cAsE" anywhere in the URL,
with matching capitalization */
a[href*="cAsE" s] { color: pink;}
s : 대소문자를 가린다.

/* Links that end in ".org" */

a[href$=".org"] { color: red;}
.org로 끝나는것

/* Links that start with "https" and end in ".org" */
a[href^="https"][href$=".org"] { color: green;}
"https" &".org"
두가지속성만족시

 

 

 

 


연습

  • A B : 공백자체가 연산을 의미. A안에 포함된 B의 하위요소. A의 자손만 (B의 자식)

Descendant selector

<!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>
    <style>
        .aa div{
            color : red;
        }
    </style>
</head>

<body>
    <div class="aa">
        <p>자식1</p>
        <div>
            <p>aa의 자손</p>
        </div>
        <p>자식2</p>
        <div>
            <p>자손2</p>
            <ul>
                <li>자손3</li>
                <li>자손3</li>
                <li>자손3</li>
            </ul>
        </div>    
    </div>
</body>
</html>

 

  •  A안에 B자식만 선택

<!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>
    <style>
        section>p{
            color : red;
        }
    </style>
</head>

<body>
    <div class="aa">
        <p>Child 1</p>
        <div>
            <p>Descendant1</p>
            <section>
                <p>Descendant2</p>
                <ul>
                    <li>Descendant3</li>
                    <li>Descendant3</li>
                    <li>Descendant3</li>
                </ul>
            </section>   
        </div>
        <p>Child 2</p>
        <section>
            <p>Descendant2</p>
            <ul>
                <li>Descendant3</li>
                <li>Descendant3</li>
                <li>Descendant3</li>
            </ul>
        </section>    
    </div>
</body>
</html>
더보기
    • A+B : B의 형제 바로
<!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>
    <style>
        div+p{
            color : red;
        }
    </style>
</head>

<body>
    <div class="aa">
        <p>Child 1</p>
        <div>
            <p>Descendant1</p>
            <section>
                <p>Descendant2</p>
                <ul>
                    <li>Descendant3</li>
                    <li>Descendant3</li>
                    <li>Descendant3</li>
                </ul>
            </section>   
        </div>
        <p>Child 2</p>
        <p>Child 3</p>
        <section>
            <p>Descendant2</p>
            <ul>
                <li>Descendant3</li>
                <li>Descendant3</li>
                <li>Descendant3</li>
            </ul>
        </section>    
    </div>
</body>
</html>

 

HTML

복습 (시멘틱태그)

  • HTML : 웹과 관련된 마크업언어
  • HTML4까지 <div></div>를 이용해서 구조를 잡았지만 HTML5 시멘틱태그가 생겼다.
  • 구성을 식별하기위한 표준방식이 생김.
  • 시멘틱태그 : <header>, <main>,<footer> 
  • header,main,footer안에 <Section><h1>을 이용해서 아웃라인을 잡아줄수있고 넘버링을 편리하게 할수있다.
  • <ul><li> :순서가 필요없는 목록
  • <ol><li>: 순서가 있는 목록
  • 섹션태그 : <article>,<aside>,<nav>

 

 


 

블록태그 : 구조만들기에 사용

인라인태그 : 블록안에서 콘텐츠를 마크업하는 태그

 

 


 

Button Elements

<input type="button" value="Button Test">

일반 버튼타입 태그

출력화면

<button name="favorite" type="button">
  <svg aria-hidden="true" viewBox="0 0 10 10"><path d="M7 9L5 8 3 9V6L1 4h3l1-3 1 3h3L7 6z"/></svg>
   Button Test
</button>

<button></button>좀더 다양하게 꾸며줄수있는 버튼태그

출력화면

 

 


 

Image

<img src="../images/logo.png"alt ="뉴렉처 온라인">

이미지 태그사용시 어떤 이미지인지 설명넣을것

 

 

 


 

<pre>

<pre>
		int i = 1;
		int j = 2;
</pre>

쓰여진그대로 출력하는 태그. 코드소스출력시 유용

<code></code>는 한줄만 2줄 이상 일경우 <pre>로 감싸주기.

 

 

키보드태그

<kbd>Shift</kbd> + <kbd>Tab</kbd> 

들여쓰기 단축키

브라우저별로 적용되는 태그가달라 적용효과가 다르다.

 


<b>,<strong> 등 쓰지않는 태그들이있다. 이것들은 what인지가 아니라 how를 나타내고있다. 요즘은 CSS가 스타일을 대신하므로 사용하지않는다.

 

지수표현

                int i<sup>2</sup> = 0;
                int j = 1;

 


 

 

CSS

메뉴하나에만 스타일 적용했을경우

<h1 style="color:blue;font-size:20px;">메인메뉴</h1>

출력화면

특정부분에만 공통적으로 스타일을 적용하고싶다면?

<head> 부분에 <style></style>을 넣고 id, 그룹명 또는 클래스를 넣어준다.

<!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>
    <style>
        .redsun{
            color: red;
        }

        #h1{
            color: pink;
        }
    </style>
</head>
  • .클래스명 { }
  • #id명 { }
  • h1 { } : h1만 넣으면 h1로 잡힌 태그를 찾는다.

id 명 지정하기

<header id="h1">

클래스 지정하기

<h1 class="redsun">메인메뉴</h1>

 

  • id가 부여된곳에 스타일을 적용할뿐만 아니라, id이름으로 구역을 찾을수도있다. (id명이 aside인경우 .html#aside로 들어가면 아래와같이 출력)


 

실습

  • .greenclass로 그룹화해서 초록색 적용
  • h1라는 아이디 생성해서 h1에 핑크적용 (header영역에 모두적용됨)
  • 아이디 aside에 보라색적용

 

<!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>
    <style>
        .greenclass{
            color: rgb(26, 126, 47);
        }

        #h1{
            color: pink;
        }
        #aside{
            color:blueviolet
        }
    </style>
</head>
<body>

    <header id="h1">
        <h1><img src="../images/logo.png"alt ="뉴렉처 온라인"></h1>
        <section>
            <h1>헤더</h1> 

            <nav>
                <h1 class="greenclass">메인메뉴</h1>
                <ul>
                    <li><a class="greenclass" href="">학습가이드</a></li>
                    <li><a href="">강좌선택</a></li>
                    <li><a href="">AnswerIs</a></li>
                </ul>
            </nav>

            <section>
                <h1>강좌검색폼</h1>
                <form>
                과정검색
                </form>
            </section>
            
            <nav>
                <h1>회원메뉴</h1>
                <ul>
                    <li><a href="index.html">Home</a></li>
                    <li><a href="../member/login.html">로그인</a></li>
                    <li><a href="">회원가입</a></li>
                </ul>
            </nav>
            
            <nav>
                <h1>고객센터메뉴</h1>
                <ul>
                    <li>마이페이지</li>
                    <li>고객센터</li>
                </ul>
            </nav>
        </section>
    </header>    


    <section id="aside">
        <h1>고객센터</h1>
        <div></div>
        <nav>                
            <h1>고객센터메뉴</h1>
            <ul>
                <li><a href="list.html">공지사항</a></li>
                <li>자주하는 질문</li>
                <li>수강문의</li>
                <li>이벤트</li>
            </ul>   
        </nav>

        <nav>
            <h1>협력업체</h1>
            <ul>
                <li>노트펍스</li>
                <li>나무랩연구소</li>
            </ul>
        </nav>                 
    </section>



    <main>
        <section>
            <h1>공지사항</h1>

            <section>
                <h1>경로</h1>
                <ol>
                <li>home</li>
                <li>고객센터공지사항</li>    
                <li> 제목</li>    
                </ol>
            </section>
           


        <section>
            <H1>공지사항 목록</H1>
            <table>
                <tr>
                    <td>1024</td>
                    <td>스프링 MVC 소스코드</td>
                    <td>newlec</td>
                    <td>2020-12-12</td>
                    <td>1352</td>
                </tr>
                <tr>
                    <td>1023</td>
                    <td>스프링 JSON 출력을 위한 라이브러리 설정</td>
                    <td></td>
                    <td>2020-11-29</td>
                    <td>994</td>
                </tr>
                <tr>
                    <td>1022</td>
                    <td>스프링 강좌 <kbd>Ctrl</kbd>+<kbd>shit</kbd>RestController 한글 깨짐 설정 코드</td>
                    <td>newlec</td>
                    <td>2020-11-25</td>
                    <td>802</td>
                </tr>
            </table>
        </section>

        <section>
            <h1>현재 페이지 정보</h1>
            <div> 1 / 2 pages
            </div>
        </section>

        <nav>
            <h1>페이저</h1>
            <div>이전</div>   
            <ul>
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
            </ul>
            <div>다음</div>
        </nav>    

     
                int i<sup>2</sup> = 0;
                int j = 1;

        <div>
            <input type="button" value="Button Test">
                    </div>

    </section>
</main>



    <footer>
        회사정보
        Copyright ⓒ newlecture.com 2012-2014 All Right Reserved. Contact admin@newlecture.com for more information
    </footer>
</body>
</html>

 

 

문서의 필수블록 : Header, main , footer

 

아웃라인을 <div>로 구분후 <h1>, <h2>식으로 넘버링하면 제목열의 깊이가 변경되면 불편함이 발생한다.

대신 <section> <h1>으로 지역화시키면 자동으로 넘버링부여됨. 

 

지역화

<section>

   <h1>페이지정보</h1>

   <태그>...</태그>

</section>

 

<section>
	<h1>뉴렉처 온라인</h1>
    
		<section>
        	<h1>헤더</h1>
            
            <nav>
            <h1>메인메뉴</h1>
            <ul>
            	<li>학습가이드</li>
                <li>강좌선택</li>
            </ul>
            </nav>
            
		</section>    
</section>

 

Section태그의 종류 : article, aside, nav

  • <article> tag는 문서 혹은 요소가 독립적으로 존재할 수 있을 때 사용한다.
  • <section> tag는 논리적으로 관계 있는 문서 혹은 요소를 분리할 때 사용한다.
  • <div> 요소간 논리적 관계와는 상관없이 요소를 나눠야 할 필요가 있을 경우 사용한다

 

 

 

웹상에서 f12버튼을 누르면 '개발자도구'가 뜬다.

또는 확인하고자하는 영역에 마우스를 대고 오른쪽버튼 ->검사 누르면 해당영역 확인가능.

 

 

블록 태그는 자기 영역을 갖는다

블록태그

블록요소

  • 사용가능한 최대 가로 너비를 사용
  • 전체를 차지 하기 때문에 각 요소들이 수직으로 쌓인다
  • 가로 너비와 세로 길이를 지정할 수있다

 

인라인태그는 영역을 가지지않는다. (width, height 변형불가)

인라인태그

인라인요소

  • 내용만큼만 영역사용
  • 요소들이 수평으로 쌓임
  • 가로 너비와 세로길이 지정 불가능
  • 수평으로 쌓여 위,아래 여백 사용 불가능

 

인라인태그참조 :

developer.mozilla.org/ko/docs/Web/HTML/Inline_elements

 

 

 

Table 태그

<table>

  <tr> 1행에 넣을 내용들

    <td>테이블 내용</td>

  </tr>

  <tr> 2행에 넣을 내용들

    <td>테이블 내용</td>

  </tr>

</table>

출력화면

 <section>
            <H1>공지사항 목록</H1>
            <table>
                <tr>
                    <td>1024</td>
                    <td>스프링 MVC 소스코드</td>
                    <td>newlec</td>
                    <td>2020-12-12</td>
                    <td>1352</td>
                </tr>
                <tr>
                    <td>1023</td>
                    <td>스프링 JSON 출력을 위한 라이브러리 설정</td>
                    <td></td>
                    <td>2020-11-29</td>
                    <td>994</td>
                </tr>
                <tr>
                    <td>1022</td>
                    <td>스프링 강좌 <kbd>Ctrl</kbd>+<kbd>shit</kbd>RestController 한글 깨짐 설정 코드</td>
                    <td>newlec</td>
                    <td>2020-11-25</td>
                    <td>802</td>
                </tr>
            </table>
        </section>

 

 

 

시멘틱 태그의 기본구성

시멘틱태그

 

시멘틱이란 ? 의미론적인, Semantic : connected with the meanings of words.

특정한 태그에 의미를 부여해서 웹페이지를 만들기위해 사용

div(콘텐트 블럭화)와 같은 기능을 수행

but, 태그에 의미를 부여함으로써 웹페이지구조를 쉽게 이해 할 수있다.

과거 의미를 다달리써서 표준화시킴

 

시멘틱태그 3종류

  • header : body안에있음, 주로 머릿말 ,제목표현
  • main : 본문
  • footer : 회사소개, 저작권, 약관, 제작정보 등

h1,h2,h3 넘버링을 해옴
div  대신 section
<section>잡고 <h1>잡으면 자동으로 지역화

HTML5 의 섹션태그

<h1></h1>, <h2></h2>등 넘버링 해결을 위한 태그.

<section> </section> 으로 감싸면 자동 넘버링이 된다.

<h1><h2><h3> 를 신경 쓸필요없다.

지역화가능

 

섹션태그 종류:

  • section:  가장 범용적, section만 써도되지만 아래 태그들을 추가적으로 특화시켜만듦
  • article :  실제 본문 (문장을 감싸고 있는 블록), 실질적인 내용
  • aside : 본문과 먼것, 본문이외 내용
  • nav : 링크, 네비게이션,

 

 

 

 


VS code 실습

<!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>
</head>
<body>

    <header id="header">
        <h1>뉴렉처 온라인</h1>
        <section>
            <h1>헤더</h1> 

            <nav>
                <h1>메인메뉴</h1>
                <ul>
                    <li>학습가이드</li>
                    <li>강좌선택</li>
                    <li>AnswerIs</li>
                </ul>
            </nav>

            <section>
                <h1>강좌검색폼</h1>
                <form>
                과정검색
                </form>
            </section>
            
            <nav>
                <h1>회원메뉴</h1>
                <ul>
                    <li><a href="index.html">Home</a></li>
                    <li><a href="../member/login.html">로그인</a></li>
                    <li>회원가입</li>
                </ul>
            </nav>
            
            <nav>
                <h1>고객센터메뉴</h1>
                <ul>
                    <li>마이페이지</li>
                    <li>고객센터</li>
                </ul>
            </nav>
        </section>
    </header>    


    <section id="aside">
        <h1>고객센터</h1>

        <nav>                
            <h1>고객센터메뉴</h1>
            <ul>
                <li><a href="list.html">공지사항</a></li>
                <li>자주하는 질문</li>
                <li>수강문의</li>
                <li>이벤트</li>
            </ul>   
        </nav>

        <nav>
            <h1>협력업체</h1>
            <ul>
                <li>노트펍스</li>
                <li>나무랩연구소</li>
            </ul>
        </nav>                 
    </section>

Outline 확장 프로그램을 통해 블럭을 확인할 수있다.

 

HyperText : 다른 페이지로 이동

404 에러 : 경로확인해볼것

 


 

상대경로와 절대경로

상대경로

선택한 파일에 대한 상대적인 루트를 지정하는 방법

 <a href="../index.html">홈</a>

 

 

 

Signup.html에서 Front-web에있는 index.html을 연결하려면 <a href="../index.html">홈</a>와 같이 ../로 지정하여 한계층 위 폴더를 지정해야한다.

/ 하위폴더 지정

./현재폴더 지정(동일폴더)

../한 계층 위 폴더 지정

 

절대경로

각 폴더의 지정된 이름을 나열

어떠한 웹페이지나 파일이 가지고있는 고유한 경로, 절대적인 위치

<a href="member/signup.html">가입페이지</a>

위치가 변경될 경우 다 경로를 수정해야한다.

 

 

Q. list.html에서 signup.html을 링크하고싶다면 어떤경로로 설정해야하는가?

 

 

 

 

../../member/signup.html

로 지정해야한다. Root안에 member 폴더와 customer폴더가있다.

list.html은 customer ->notice folder안에 있으므로 두계층위로 올라가야한다.

 

 


 

 

경로지정 실습

Front-web 폴더안에 member폴더, notice폴더가 있다.

Front-web폴더에는 index.html 홈화면이있고, member 폴더에는 agree.html, login.html, signup.html 이,

notice폴더에는 detail.html, list.html이있다.

 

 

login페이지의 Home링크 <a href = "index.html">Home</a>으로 입력할 경우 member폴더의 index.html로 자동인식하게된다.

클릭시 Front-web폴더의 index.html으로 넘어가지않고 오류가 발생한다.

 

 

 

 index.html은 member폴더 밖에 있으므로 상위표시 '../'를 넣어준다. 

 

 

 

상대경로입력 후 적용된 모습확인가능.

 

index.html 에서 '로그인'클릭 후 이동한 모습

 

 

 

login.html에서 공지사항목록 클릭 후 이동한 모습

 

 

 

 

 


크롬 확장 프로그램 활용

크롬안에서 실행될 수있는 여러 확장 프로그램이있다.

Chrome 웹스토어(https://chrome.google.com/webstore)에서 Web Developer 다운로드.

 

 

 

 

다운로드 후 크롬브라우저 상단에서 확인가능

 

 

 

 

톱니바퀴를 누르면 여러메뉴가 나온다.

 

 

 

 


 

 

콘텐츠 블록의 종류

 

 

 

body에는 제목,목록,문장,표,입력폼이 있다.

 

 

HTML 문서의 기본구조

 

 

 

 

제목 태그

 

 

 

목록 태그

 

 

 

HTML 문서의 아웃라인

 

 

 

 

 

 


 

크롬 확장 프로그램 활용

HTML5 Outliner

각 페이지별 구성형태 파악용 ( 웹 정책 홈페이지 구조 및 검색 반영 시 유용 )

 

 

 

 

 

 

 

페이지를 그룹핑하고 구조화한다.

이름:  소문자만 사용
단어구분:  -
마지막은 행위명이 된다.


파일구조 생성 실습

1.폴더를 만들고 하위폴더안에 해당 html를 만든다.

 

 

2.

agree, login, signup, detail, list 각 페이지에 <h1>각 페이지 이름</h1> 과 <a href="index.html">홈</a>을 넣어준다.

<!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>
</head>
<body>
    <h1>가입동의 페이지</h1>
    <a href="index.html">홈</a>
</body>
</html>

3. index.html에는 Home, 로그인, 공지사항에 링크를 걸어준다.

<!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>공지사항 목록</title>
</head>
<body>
    <h1>인덱스 페이지</h1>
    뉴렉처 온라인
학습가이드
강좌선택
AnswerIs
과정검색                                                                                                         
<a href="index.html">Home</a>
<a href="login.html">로그인</a>
회원가입
마이페이지
고객센터
고객센터
고객센터메뉴
<a href="list.html">공지사항</a>
자주하는 질문
수강문의
이벤트
협력업체
노트펍스
나무랩연구소
공지사항
home고객센터공지사항

제목


번호	제목	작성자	작성일	조회수
1026	스프링 MVC 공지사항 관리자 view 페이지	newlec	2020-12-30	1546
1024	스프링 MVC 소스코드	newlec	2020-12-12	1352
1023	스프링 JSON 출력을 위한 라이브러리 설정	newlec	2020-11-29	994
1022	스프링 강좌 RestController 한글 깨짐 설정 코드	newlec	2020-11-25	802
1020	스프링 강의 20강용 Notice 서비스 파일	newlec	2020-11-06	1524
1016	Tiles ViewResolver 설정 내용	newlec	2020-10-22	921
16	html.zip 파일 (스프링 웹 MVC 강의용)	newlec	2020-10-12	1360
14	전기 점검이 있을 예정입니다.	newlec	2020-06-15	1239
10	오라클 수업용 테이블 생성용 스크립트	newlec	2019-10-04	2251
9	JSP 수업용 html 파일	newlec	2019-10-03	3591
1 / 2 pages
이전
1
2
다음
회사정보
Copyright ⓒ newlecture.com 2012-2014 All Right Reserved. Contact admin@newlecture.com for more information

</body>
</html>

4. 웹서버 연동을 위해 exteionsion에서 live server검색 후 install

 

 

 

5. 웹서버연동 : 웹서버연동하려는 페이지 선택 → 마우스 오른쪽버튼 Open with Live Server 클릭

 

 

6. 웹서버가 연동되면 웹브라우저가 자동실행된다.

 

 

 

 


 

Visual Studio code 환경변수 설정

제어판 - 시스템 - 시스템속성 - 고급- 환경변수 - 시스템변수

system32경로 넣고 확인

 

 환경변수 미설정시, Live server사용은 되지만 웹브라우저가 팝업되지않았다.

HTML

  • 웹퍼블리싱 : 웹출판 ->웹문서 만들기
    웹문서 만들기를 위한 기술 :HTML /CSS
    HTML 이란 ? 마크업언어
  • 마크업 : 범위표시하는것
  • 마크업언어 =>표식을 위한 기호를 정의하고 사용하는  방법을 통일화한 명령어 집합
    문서에서 HT도 마크업할 수 있는언어

    SGML -> HTML =>HTML ->ML =>태그를 이용해서 문서의 구조를 표시 :제목,문장,표,목록 + HT

    HT(Hyper Text) : 문서를 연결해주는 텍스트
    웹문서 : 브라우저 리더기 
    웹서버 : 문서를 제공해주는 서버

  • 웹문서의 3요소 : 콘텐트, 구조, 스타일


HyperText

팀버너슬리 1990년 Hypertext 제안 (좀 더 쉬운 문서 공유의 필요성)

물질을 쪼개는 과정→증명최소한의 물질연구양자(입자)이론
최소입자를 가속,충돌시킴,운동에너지 등 연구
연구할때마다  새로운결과물이 쌓임 ->다시 문서찾기가 어려워짐
Hyper Text제안 (쉽게 찾을수있게 링크) : 콘솔에서 찾아야했음 =>Hyper text 에 반응 미지근
Mark Andressen이 윈도의 기반에 netscape 만듦 +마우스등장 (기존문서+hyper text)

과거 방식 :gopher서버에 접속-자료조회-다운로드(text기반)
현재 방식 : hyper link클릭으로 다른곳으로 이동가능 (태그 +링크)

 




+ Recent posts