반응형

** 반응형 웹 **

* 준비 *

1. 구간별 페이지 제작

- pc, tablet, mobile

- viewport 작성

2. 큰화면 복사해서 다른 파일 준비

3. 복사한 파일의 css 하단에 분기점 작성

4. 각 구간별 css 복사하여 붙여넣기

 

* 코딩 *

1. 통상 구간은 분기점 작성 X

2. 중간 구간은 최소값 생략

- 반드시 큰 구간부터 작성

 

* css 수정*

1. 상위 구간과 하위구간에 동일 속성과 값은 하위 구간에서 삭제

2. 상위 구간에는 있고 하위구간에는 필요없는 속성과 값은 해당 속성을 작은 구간으로 복사해서 기본값으로 작성

3. 상위 구간과 하위 구간에 동일한 속성 및 다른 값인 경우 하위 구간 속성 수정 X

4. 상위 구간에 없고 하위 구간에만 있는 속성 및 값은 하위 구간 속성 수정 X

728x90

'CODING PRACTICE > HTML & CSS' 카테고리의 다른 글

2023/03/17__HTML/CSS__12  (0) 2023.04.05
2023/03/16__HTML/CSS__11  (0) 2023.04.04
2023/03/15__HTML/CSS__10  (1) 2023.03.16
2023/03/14__HTML/CSS/JS__9  (0) 2023.03.15
2023/03/10__HTML/CSS__8  (0) 2023.03.14
반응형

*** Flex(Flexible Box, Flexbox) 속성

  1. 아이템들을 가로 방향으로 배치
  2. 내용물만큼 width적용(=inline)
  3. 아이템들의 height가 모두 컨테이너의 높이만큼으로 자동 적용
  4. (float는 각각의 콘텐츠만큼 높이 설정)


*display: flex

element / #id / .class {
display: flex;
/* display: inline-flex */
}

* Flex Container(플렉스 컨테이너)

1. Flex의 영향을 받는 전체 공간

 

* Flex Item(플렉스 아이템)

1. 설정된 속성에 따라 각각의 아이템들이 어떤 형태로 배치되는 것

<div class="container">
	<div class="item">hellowFlex</div>
	<div class="item">abc</div>
	<div class="item">hellowFlex</div>
</div>

** Flex 컨테이너 속성

* flex-direction : 배치 방향 설정

  1. row : 왼쪽부터 순차적 배치
  2. row-reverse : 오른쪽부터 순차적 배치
  3. column : 위에서 아래로 순차적 배치
  4. column-reverse : 아래에서 위로 순차적  배치

* flex-wrap : 줄넘김 처리 설정

- 아이템 줄바꿈 속성

  1. nowrap : 줄바꿈을 하지 않음
  2. wrap : 줄바꿈
  3. wrap-reverse : 역순으로 배치 후 줄바꿈

* flew-flow = flex-direction + flex-wrap

element / #id / .class {
flex-flow : row wrap;
/* flex-direction : row */
/* flex-wrap : wrap */
}

1. flex-direction과 flex-wrap을 한번에 지정

2. flex-direction, flex-wrap의 순으로 공백으로 구분

 

* 아이템 정렬

  1. justify : 수평축 정렬
  2. align : 수직축 정렬

* justify-content : 메인축 방향 정렬

- 수평축 방향으로 아이템 정렬

 

1. flex-start(기본값): 아이템들을 시작점으로 정렬

-flex-direction : row(왼쪽), column(위)

 

2. flex-end : 아이템들을 끝점으로 ㅈ어렬

- flex-direction : row(오른쪽), column(아래)

 

3. center : 아이템들을 가운데로 정렬

 

4. space-between : 아이템들 사이에 균일한 간격 생성

 

5. space-around : 각 아이템의 좌우에 균일한 간격 생성

 

6. space-evenly : 아이템들의 사이와 양 끝에 균일한 간격 생성

 

* align-items : 수직축 방향 정렬

- 수직축 방향으로 아이템 정렬

 

1.stretch(기본값) : 아이템들을 위아래 방향으로 끝까지 늘림

2. flex-start : 아이템들을 위쪽으로 정렬

- flex-direction : column인 경우

3. flex-end : 아이템들을 아래쪽으로 정렬

- flex-direction : column인경우

4. center : 아이템들을 중간 정렬

5. baseline : 아이템들을 텍스트 베이스라인 기준으로 정렬

 

** 아이템 가운데 (수평)(수직) 정렬

element / #id / .class {
justify-contents : center;
align-items : center;
}

* align-content : 여러 행 정렬

- flex-wrap : wrap이 설정된 상태에서 아이템들의 행이 2줄 이상인 경우 수직축 방향 정렬 지정

  1. stretch
  2. flex-start
  3. flex-end
  4. center
  5. space-between
  6. space-around
  7. space-evenly

* align-self

- align-items로 교차축(cross axis)아이템 정렬

- align-items 속성보다 우선 적용

- 콘테이너 안의 모든 아이템에 적용

- 특정 아이템의 정렬을 따로 정할 경우 align-self 속성 사용

- 기본값은 auto로 align-items속성의 값을 상속

 

1. auto

- 부모 ㅁ컨테이너의 align-itmes 속성을 상속받음

- 부모 컨테이너가 없는 경우 stretch 적용

2.stretch : 컨테이너에 맞게 변경

3.center : 컨테이너 중심에 위치

4.flex-start : 컨테이너 앞단 부분에 위치

5.flex-end : 컨테이너 끝단 부분에 위치

6.baseline : 컨테이너의 기본선에 위치

7. initial : 이 속성의 기본값으로 설정

8. inherit : 부모 요소의 속성값 상속

 

 

** Reset CSS

태그들이 가지고 있는 기본 속성과 값을 코딩하기 편한 값으로 변경

728x90

'CODING PRACTICE > HTML & CSS' 카테고리의 다른 글

2023/04/26__반응형 웹  (0) 2023.04.27
2023/03/16__HTML/CSS__11  (0) 2023.04.04
2023/03/15__HTML/CSS__10  (1) 2023.03.16
2023/03/14__HTML/CSS/JS__9  (0) 2023.03.15
2023/03/10__HTML/CSS__8  (0) 2023.03.14
반응형

웹표준검사

https://validator.w3.org 

 

The W3C Markup Validation Service

Validate by File Upload Note: file upload may not work with Internet Explorer on some versions of Windows XP Service Pack 2, see our information page on the W3C QA Website.

validator.w3.org

 

** 요소 레벨(Element Level) **

태그가 어떻게 보여지는가에 대한 구분

 

1. 블록 레벨(Block Level)

- 독립된 행을 갖는 요소 집합

- 크기 지정, 위치 조정 가능(*)

- p, h1~h6, ul, ol, li, div, table..

- 다른 블록 레벨 요소와 인라인 요소 포함 가능

- p, h, dt, adress 같은 일부 요소는 다른 블록 포함 불가

 

2. 인라인 레벨(Inline Level)

- 범위 표시 요소의 집합

- 크기(예외:img), 위치 조정불가

- a, em, strong, img, span...

- 블록 레벨 요소는 포함할 수 없고 인라인 요소만 포함 가능

- html5 이후 a요소는 블럭 요소 포함 가능

 

** overflow

element / #id / .class {
overflow : auto , hidden , scroll;

overflow-x: auto , hidden , scroll;

overflow-y: auto , hidden , scroll;
}

** 요소 레벨을 바꾸는 속성 **

** position

element / #id / .class{
position : absolute / fixed / float;
}

** display

element / #id / .class {
display : 
block, 
flex, 
none,
inline-block (inline요소를 같은 줄에 놓고 블럭으로 만들어 크기를 생성할 수 있게 도와줄 수 있다.) ;
}

* Box Width : 800px

- width : 800px + padding:100px + border:100px

=800px+(100+100)px+(100+100)px =1200px


* Box Width : 100%

- width : 100% + padding:100px+border+100px = 100% +400px


* Box Width : auto

- width + padding + border = 100%


*box-sizing : border-box

- width + padding + border = widht

- width:80%; padding:100px; border:100px = 80%+400px

- widht:80%; padding:100px; border:100px; box-sizing:border-box = 80%


** position

1. 움직이는 방법

2. 위치 속성과 함께 사용

 

* 위치 속성

1. top / right / bottom / left

2. position 속성이 없는 경우 이동 불가

 

** position 속성값

1. static : 기본값, 이동 불가

2. absolute : 절대 위치 지정, 형제 요소간 동일한 중심점 사용 , margin: auto 사용 불가

3. relative : 모든 요소가 독립된 중심점 사용 ,margin: auto 사용 가능

4. fixed :  스크린을 기준으로 지정된 위치에 고정

 

position 속성 값이 있을 경우  제일 위로 올라오게 된다.

모두가 position속성이 있으면 태그 가 마지막으로 온 것이 제일 위로 올라오게 된다

모두가 있을때 z-index를 사용하면 z-index값이 있는 것이 제일 위로 올라오게 된다.

z-index의 값으로 제일 높은 숫자가 제일 위로 올라오게 된다.

 

** 레이어

  1. 요소들간의 층 (앞/뒤)
  2. z-index 속성 사용
  3. 1부터 시작하는 정수 사용  / 상황에 따라 0 혹은 음수도 쓸 수 도 있다.
  4. 부모 , 다른 자식 순서와 무관하며 본인 자식에게 높은 숫자가 앞
  5. 속성을 지정하지 않는 경우 나중에 작성된 요소가 앞
  6. 임의로 생성된 값은 실제 값보다 무조건 뒤
  7. position 속성과 함께 사용

 

** 기준의 정의 

1. 움직이는 대상의 position이 relative인 경우

- 부모요소가 기준

2. 움직인 대상의 position이 absolute인 경우

- position 속성은 position 속성을 가지는 차상위 요소가 기준

- 상위 요소 중 position 속성을 가지는 요소가 없는 경우 document가 기준

 

position : fixed - 페럴렉스 스크롤링

 

position : sticky

728x90

'CODING PRACTICE > HTML & CSS' 카테고리의 다른 글

2023/04/26__반응형 웹  (0) 2023.04.27
2023/03/17__HTML/CSS__12  (0) 2023.04.05
2023/03/15__HTML/CSS__10  (1) 2023.03.16
2023/03/14__HTML/CSS/JS__9  (0) 2023.03.15
2023/03/10__HTML/CSS__8  (0) 2023.03.14
반응형

* background

1. 기존 배경은 한번에 하나만 적용이 가능하지만 css3에서는 여러 개의 배경을 동시에 적용 가능

*먼저 작성된 이미지가 위에서 출력

 

2. 배경의 범위 및 시작 위치 설정 가능

 

3. 배경의 크기 조정 가능

 

* background-clip

백그라운드 이미지 표시 영역 지정

 

1. 사용방법 

element / #id / .class { background-clip : padding-box}

2. 속성값

padding-box : padding 영역까지 배경 이미지 표시(기본값)

border-box : border 영역까지 배경 이미지 표시

 

* background-origin

백그라운드 이미지 원점 지정

1. 사용방법

element / #id / .class { background-origin : keyword }

2. 속성값

padding-box : padding 영역부터 이미지 배치(기본값)

border-box : border 영역부터 이미지 배치

content-box : content 영역부터 이미지 배치

 

** background-size

백그라운드 이미지의 크기 지정

1. 사용방법

element / #id / .class {background-size: x,y}

2. 속성 값

x%, y% : 적용되는 요소의 크기에 비례하여 적용

Xpx Ypx : 절대 크기로 배경 이미지 적용

cover : 배경 이미지를 늘.려 요소 전체에 표시

contain : 배경 이미지의 가로 세로 비율을 맞춰 요소에 표시할 수 있는 최대 크기로 표시

 

** background-gradient

1. 사용방법

element / #id /.class{background : linear-gradient(red, yellow) / radial-gradient()}
/* 두가지 이상 색상 */

** 전환효과(transition)

- css 속성이 변화할 때 애니메이션

- 2차원 변환(transform) 함수

 

1. 사용 방법

- transition : 변환속성 애니메이션 시간

2. 속성값

- 변환속성 :변환 할 속성

all로 지정되면 모든 속성 영향

-애니메이션 시간 : 애니메이션 재색 시간(duration) 지정

3. 변환 함수

-translate(translateX, translateY) : 지정된 값 만큼 이동

-scale(scaleX ,scaleY) : 지정된 값만큼 확대 및 축소

-skew(angleX, angleY) : 지정된 값만큼 기울림

-rotate(angleZ) : 지정된 값만큼 회전

 

** animation

css의 속성값 변화를 애니메이션

1. keyframes : 효과 작성, 키프레임 지정

- from : 시작 프레임 설정

- to : 끝 프레임 설정

- 중간 키프레임 : %단위로 지정

 

2. animation: 효과 적용

animation-name : 설정된 keyframe 지정

animation-duration : 실행 시간 지정

animation-iteration-count : 반복 횟수 지정

animation-timing-function : 속도 형태 지정

animation-delay : 대기 시간 지정

animation-direction : 진행 형태 지정

 

* 여백 속성

1. margin

2. padding

 

* margin

1. 바깥쪽 여백(위치)

2. margin-top / margin-right / margin-bottom / margin-left

3. margin : top right bottom left

margin : top right bottom (same right)

margin : top/bottom right/left

margin : all

4. margin : auto

상하 여백 0, 좌우 여백 동일

(블럭 요소 가운데 정렬) = margin : 0 auto

element / #id / .class {

margin-top : ??px;
margin-right : ??px;
margin-bottom : ??px;
margin-left : ??px;

/* margin : top right bottom left */
margin : ??px ??px ??px ??px;

/* margin : top right bottom (same right) */
margin : ??px ??px ??px;

/* margin : top/bottom right/left */
margin : ??px ??px;

/* margin : all */
margin : ??px;

/* 가운데 정렬 */
margin : auto
상하 여백 0, 좌우 여백 동일

(블럭 요소 가운데 정렬) = margin : 0 auto

* text-align : center

인라인 요소 가운데 정렬

 

* padding

1. 안쪽 여백(크기)

2. margin 사용법과 동일

 

728x90

'CODING PRACTICE > HTML & CSS' 카테고리의 다른 글

2023/03/17__HTML/CSS__12  (0) 2023.04.05
2023/03/16__HTML/CSS__11  (0) 2023.04.04
2023/03/14__HTML/CSS/JS__9  (0) 2023.03.15
2023/03/10__HTML/CSS__8  (0) 2023.03.14
2023/03/10__HTML/CSS/JavaScript__7  (0) 2023.03.13
반응형

** border-radius

Box Model 외각선의 곡률 지정

 

*사용방법

element / #id / .class {
	border-radius: [length]
}

 

*속성 값

1. length : 곡률의 크기

2. border-top-left-bottom-right으로 개별 지정 가능

 

 element / #id / .class {
 
 border-top-left-radius : 25px;
 border-top-right-radius : 25px;
 border-bottom-left-radius : 25px;
 border-bottom-right-radius : 25px;
  
 }

 

** box-shadow : 지정된 요소의 그림자 설정

* 사용방법

element / #id / .class {
	
    box-shadow : [dx] [dy] [blur] [spread] [color] [set]

/* ! box-shadow는 값을 여러 개 쓸 수 있다. */
}

 

* 속성

1. dx : 그림자의 가로방향 위치

2. dy : 그림자의 세로방향 위치

3. blur : 흐려짐 정도

4. spread : 번짐 정도

5.set : 그림자의 형태

- outset : 요소 바깥족으로 그림자가 떨어짐(기본값)

- inset : 요소 안쪽으로 그림자가 떨어짐box

 

** text-shadow

1. 텍스트에 그림자를 지정

2. 여러 개 지정 가능(","로 구분)

 

* 사용방법

element / #id / .class {
text-shadow: [dx] [dy] [blur] [color]
}

 

*속성 값

1. dx : 본체와 그림자의 가로방향 거리

2. dy : 본체와 그림자의 세로방향 거리

3. blur : 그림자의 흐려짐 정도

4. color : 그림자의 색상

 

** word-wrap

줄 바꿈 속성 지정

 

* 사용 방법

element / #id / .class {
	word-wrap:[keyword]
}

 

* 속성값

1. normal : 공란이 없을 경우 줄바꿈을 하지 않음(기본값)

2. break-word : 공란이 없어도 요소의 폭보다 문장의 길이가 길어질 경우 줄바꿈

 

** column

문장을 다단으로 표시

 

- column-count : 단의 수

- column-width : 단의 폭

- column-gap : 단과 단 사이의 거리

- column-rule : 단과 단 사이의 구분선 지정

   - column-rule-width : 구분선 두께

   - column-rule-color : 구분선 색상

   - column-rule-style : 선 모양(solid, dotted, ...)

 

** text-overflow

오버플로우 되는 텍스트의 표시를 지정

 

*사용방법

element / #id / .class {

text-overflow: 속성값;
white-space: nowrap (속성값);
overflow: hidden (속성값);

/* white-space , overflow 도 같이 써줘야한다. */
}

 

*속성값

1. clip : 지정된 영역의 크기로 잘라낸다.

2. ellipsis : 지정된 영역의 크기에 맞게 말줄임표 표시

 

** 웹폰트 **

폰트가 없는 사용자에게도 동일한 폰트가 적용되도록 웹에 업로드 하여 사용하는 폰트

 

** 웹 폰트 종류 **

* TTF

일반 웹에서는 무관하지만 용량이 커서 모바일에는 부적합

 

*WOFF(Web Open Font Format) 방식 : IE9 이상, 웹킷 브라우저

- 사파리(아이폰), 크롬(안드로이드)

 

*EOT(Embedded Open Type)방식 : IE8 이하

- MS전용 폰트

- IE9은 WOFF와 EOT파일 지원

 

* 사용법

@font-face {

font-family:폰트이름;

src:url('폰트명.eot') format('eot'); /* IE8 이하 */

src:url('폰트명.eot') format('eot?') fortmat('eot'); /* IE9 이하 */

src:url('폰트명.woff') format('woff'); /* 최신브라우저용 woff */

src:local('※'), url('폰트명.ttf') format('truetype');

}

깨알상식.)

p.txt => <p class="txt"> </p>
p .txt =>
<p>
	<??? class="txt">
    </???>
</p>

** 배경 속성

element / id /class {
background-color : #ffffff or ColorName or rgb(a);
background-image : url(이미지 주소);
background-repeat : repeat/no-repeat/repeat-x/repeat-y;
background-position: left/center/right&top / center/bottom or value(from left & from top);
background-attachment : fixed/scroll;
/* => background : color url repeat position attachment; */
}

background 사용시  opacity를 따로 투명도를 준다면 글씨 자체도 같이 투명해지기 때문에 background 속성에서 rgba값을 이용해 투명도를 준다.

728x90

'CODING PRACTICE > HTML & CSS' 카테고리의 다른 글

2023/03/16__HTML/CSS__11  (0) 2023.04.04
2023/03/15__HTML/CSS__10  (1) 2023.03.16
2023/03/10__HTML/CSS__8  (0) 2023.03.14
2023/03/10__HTML/CSS/JavaScript__7  (0) 2023.03.13
2023/03/09__HTML/CSS__6  (0) 2023.03.11
반응형

* CSS (Cascading Style Sheet)

웹 페이지의 표현(디자인)을 나타내는 언어

 

< A B = "C" B ="C" ... >

selector (선택자 : 누구한테) {
property(속성: 어떤효과) :  value(값:얼만큼);
}

body {
background-color : tomato;
}

* 선택자

1.  태그 선택자

- html 태그에 직접 효과 적용

- 해당 태그 작성 시 자동으로 효과 적용

 

2. 클래스 선택자

- 중복 가능

.name{효과}

<요소 class="name">

 

3. 아이디 선택자

- 중복 불가

#name{효과}

<요소 id="name">

 

4. 다중 선택자

A, B, C { 효과 }

 

5. 후손 요소 선택자

A B { 효과 }

 

6. 자식 요소 선택자

A > B { 효과 }


** 스타일 적용방법

* 내부 방식

 

1. 내부 스타일(Embedded)

<head>

<style type="text/css"> <<---- 스타일 선언문

selector { property:value}

</style>

 

2.인라인 방식

<element style="property:value;property:value">

*외부 방식

selector { property : value} <<--- name.css로 저장, 선언문 생략

 

1. 링크 방식

<head>

<link rel="stylesheet" type="text/css" href="name.css"/>

2. 임포트 방식

<head>

<style="text/css">

@import "name.css"

</style>

</head>
/*
태그(재)정의 스타일: 요소 선택자
1. 기존 HTML 요소의 이름에 스타일 작성
2. 해당 요소 전체에 자동으로 효과 적용
*/

body {
/* background : color image repeat position attachment ; */
background- color: 색상이름 / 색상코드 / rgb(a)
/* boder : width style color */
border : 1px solid red;
}
/*
## 사용자 정의 스타일 : class / id

* class
	- css : .className {효과};
	- html : <element class="클래스 이름">
	- 하나의 클래스를 여러 번 사용 가능

* id
	- css : #idName {효과};
	- html : <element id="아이디 이름">
	- 여러 번 적용은 되지만 하나의 이름은 같은 페이지에서 한번만 사용하는 것이 규칙
*/

/*## 다중 선택자 = 여러 개의 요소(요소명, 클래스명, 아이디명 포함)에 같은 효과 적용*/
   	.className, #idName, div, p { background-color: red;}
    
/*## 자식요소 선택자 =  동일한 요소라도 자식 요소에만 효과 적용*/
    div>a {background-color: red;}
    
/*## 후손요소 선택자 = 후손 요소 자식 요소에 효과 적용*/
    div a {background-color: red;}

* CSS 적용 우선순위

1 . 동일한 선택자, 동일한 효과를 사용하는 경우

/* <p class="txt" id="title"> text </p> */

p {color : blue;}
p {color : red;}
p {color : green;}


/* => 제일 마지막에 작성된 효과가 적용됨 */

2. 다른 방식의 선택자 사용

/* <p class="txt" id="title"> text </p> */

#title {color:red;}
.txt {color:blue;}
p {color : green;}

/* => #title 값이 적용 */

/* 점수환산법에 따라 */
/* element inline style > id > class > element */

/* ** 단 "!important" 를 사용하면 아무리 element라도 값에 기입을 해주면 우선순위로 올라간다. */

#title {color:red;}
.txt {color:blue;}
p {color : green !important;}

/* => p 값이 적용 */

여담) favicon는 png로 만들고 ico로 변환해야한다.

<link rel="shortcut icon" type="image/x-icon" href="favicon.ico"/>

 

* media

다양한 미디어 관련 요소에 스타일 변경

 

* Media Type의 종류

- all (모든 출력 장치)

- aural (음성 출력)

- braille (점자 출력)

- handheld (포켓, 모바일)

- print (인쇄)

- projection (투사 장치)

- screen (스크린, 모니터)

- tty (전신 타자기, Tele Type Writer)

- tv (텔레비전, Television)

 

Responsive Web Design ( 반응형 웹 디자인)

 

* 적용방법(ex: 브라우저 크기 반응)

1. 각각의 스타일 적용

<style media = "screnn and (min-width:1000px)"/>

body{}

</style>

<style media = "(min-width:640px)and (max-widhth:999px)"/>

body{}

</style>

2. 임포트

<style type = "text/css"/>

@media screen and (min-width:1000px{

body{}

}

@media (min-width:640px) and (max-width:999px){

body{}

}

</style.

여담)

고정형

반응형 

적응형

4개 분기점

/* 노트북 & 테블릿 가로 (해상도 1024px ~ 1279px)*/ 
@media all and (min-width:1024px) and (max-width:1279px) { 
  스타일
} 

/* 테블릿 가로 (해상도 768px ~ 1023px)*/ 
@media all and (min-width:768px) and (max-width:1023px) { 
  스타일
} 

/* 모바일 가로 & 테블릿 세로 (해상도 480px ~ 767px)*/ 
@media all and (min-width:480px) and (max-width:767px) {
  스타일
} 

/* 모바일 세로 (해상도 ~ 479px)*/ 
@media all and (max-width:479px) {
  스타일
}

3개 분기점
/* 노트북 & PC (해상도 1024px)*/ 
@media all and (min-width:1024px) {
  스타일
} 

/* 테블릿 가로, 테블릿 세로 (해상도 768px ~ 1023px)*/ 
@media all and (min-width:768px) and (max-width:1023px) {
  스타일
} 

/* 모바일 가로, 모바일 세로 (해상도 480px ~ 767px)*/ 
@media all and (max-width:767px) {
  스타일
}

웹폰트는 안쓰는것을 선호..

728x90

'CODING PRACTICE > HTML & CSS' 카테고리의 다른 글

2023/03/15__HTML/CSS__10  (1) 2023.03.16
2023/03/14__HTML/CSS/JS__9  (0) 2023.03.15
2023/03/10__HTML/CSS/JavaScript__7  (0) 2023.03.13
2023/03/09__HTML/CSS__6  (0) 2023.03.11
2023/03/08__HTML/CSS__5  (0) 2023.03.10
반응형

** 경로(URL , Uniform Resource Location)

  1. 파일 위치

 

* 절대경로

  1.  최상위 디렉토리부터 순차적으로 이동하는 경로
  2.  드라이브명(c: 혹은 d:) 이나 프로토콜(http://, ftp://)으로 시작
  3.  기준 파일의 위치에 상관없이 대상 파일의 경로가 동일

* 상대경로

  1. 기준 파일과 대상 파일의 위치에 따라 경로 설정
  2. 동일한 디렉토리에 있는 경우 - 파일명.확장자
  3. 하위디렉토리에 있는 경우 - 디렉토리명/파일명.확장자
  4. 상위디렉토리에 있는 경우 - ../: 위로 *1 ,  - ../파일명.확장자
  5. 복합사용
Document

경로설정

절대경로

1. 최상위 디렉토리부터 순차적으로 경로작성

2. 대상 파일의 경로가 모든 기준 파일에서 동일

3. 드라이브명(c: 혹은 d:) 이나 프로토콜(http://, ftp://)으로 시작

4. 다른 사이트의 자원을 활용 시

ex)
<a href="http://www.daum.net"> 다음 </a>
<img src="c:/img/logo.jpg"/> 다음로고




상대경로

1. 동일한 디렉토리에 있는 경우

2. 하위 디렉토리에 있는 경우

- 폴더이름/파일명.확장자

ex)
<a href="notice.html>공지사항</a>
<img: src="logo.jpg"/>
<img: src="img/logo.jpg"/>

3. 상위 디렉토리에 있는 경우

ex)
<a href="../notice.html>공지사항</a>
<img: src="../../logo.jpg"/>

4. 복합 경로

- ../:상위 디렉토리로 이동

- 디렉토리 이름/:하위 디렉토리로 이동

ex)
<a href="../html/notice.html>공지사항</a>
<img: src="../foldernmae/logo.jpg"/>

** Video Element

1. 차이점

 - 기존 : object Element, Embed Element로 Flash, media player와 같은 플러그인 이용

 - HTML5 : 플러그인 없이 동영상 재생

 

2. 특징

 - 재생, 일시중지 등 Web Browser 자체 Control 제공

 - Source에 파일을 여러개를 지정할 수 있어서 Web Browser의 지원 Format에 따라 표시

<video width="320" height="240" controls>
  <source src="movie.webm" type="video/webm" />
  <source src="movie.mp4" type="video/mp4" />
  <source src="movie.ogg" type="video/omovie.ogg" />
</video>

<video src="movie.mp4" type="video/mp4" controls></video>
Document

(여담 : jpg 해상도 최고 / png 투명 / gif 웹에 최적화 애니메이션 가능)

(webm(H.264 유료) -> mp4, ogg->ogv)

 

* Geolocation API

HTML5 표준이 아닌 구글에서 처음 제안한 위치정보 기반 서비스

 

* 사용 방법

1. navigator 객체에 정의

- 1회 확인
navigator.geolocation.getCurrentPostion(A,B,C)

 - 계속 확인
var wathcld =navigator.geolocation.watchPosition(A,B,C)

 

* A : successCallback 함수에 전달되는 위치정보

1. coords

 - 위도, 경도, 표고, 오차 등

2. timestamp : 위치정보를 얻은 시각 (1970년 1월 1일 부터 millisecond)

 

* B : errorCallback 함수에 전달되는 객체

1. Error Code

function (pos) {
              // google연동
              mapInit(pos.coords.latitude, pos.coords.longitude);
            },
            function (err) {
              msg(
                {
                  0:
                    `위치 정보 검색에 문제가 있습니다.(msg:` +
                    err.message +
                    `)`,

                  1: `현재 페이지에서 사용자가 위치 정보 검색을 거부했습니다.`,

                  2:
                    `브라우저가 위치정보를 검색하지 못했습니다.(mgs:` +
                    err.message +
                    `)`,

                  3: `브라우저의 위치 정보 검색 시간이 초과됐습니다.`,
                }[err.code]
              );
            },

** msg **

0: '위치 정보 검색에 문제가 있습니다.(msg:' + err.message + ')',

1: '현재 페이지에서 사용자가 위치 정보 검색을 거부했습니다.',

2: '브라우저가 위치정보를 검색하지 못했습니다.(mgs:'+err.message+')',

3: '브라우저의 위치 정보 검색 시간이 초과됐습니다.'

 

* C : options

1. 정확도, 시간제한 설정 등

{enableHighAccuracy: false, timeout: 10000, maximumAge: 0}

 

 

** SVG (Scalable Vector Graphic)

  1. 웹 페이지에 직접 드로잉 할 수 있는 요소
  2. xml기반
  3. 애니메이션 제작에 사용

100% -> 1em

200% -> 2em

500% -> 5em

50% -> 0.5em

 

opacity = alpha = transparent

 

** Canvas

  1. SVG 기술을 이용한 드로잉 요소
  2. 비트맵 방식의 드로잉
  3. javascript 기반
  4. 게임 제작에 사용
728x90

'CODING PRACTICE > HTML & CSS' 카테고리의 다른 글

2023/03/14__HTML/CSS/JS__9  (0) 2023.03.15
2023/03/10__HTML/CSS__8  (0) 2023.03.14
2023/03/09__HTML/CSS__6  (0) 2023.03.11
2023/03/08__HTML/CSS__5  (0) 2023.03.10
2023/03/07__HTML/CSS__4  (0) 2023.03.10
반응형

** 입력 양식(Web Form)**

사용자가 페이지에 값을 전달하는 모든 형식

 

** form **

1. 모든 양식은 <form> ~ </form>안에서 작성

2. 모든 양식은 이름(name 과 id) 입력

 <form name="" action="데이터가 전송될 페이지" method="(데이터를 전달하는 방식) get 혹은 post">
 	<input type="종류" name="" id="" />
 </form>

3. 대부분의 양식은 <input> 태그의 "type" 속성으로 정의

 

<input 
tpye="속성"
name="" id="" 
size="한칸에 몇글자를 보이게 할건지 (칸의 길이가 바뀜 css대체)"
maxlength="숫자입력 (입력 된 수만큼 글자수 입력)"
minlength-"숫자입력 (입련 된 수보다 적게 입력 시 제한)"
value="input의 값"
placeholder="해당 input의 안내글 같은 개념"
readonly - 읽기전용 on/off(따로값은없음)
disabled - 비활성화 on/off(따로값은없음)
/>

<!-- type 속성
1 text
2 password

3 chechbox
- 다중선택가능 / value의 값으로 데이터로 보낼수 있음 / checked를 사용해 체킹을 미리 할수 있음
4 radio
- name이 같은 것 중에 하나 택 1 선택 / value의 값으로 데이터로 보낼수 있음 / checked를 사용해 체킹을 미리 할수 있음

5 image
- 하는 일은 submit과 동일 / submit 버튼에 이미지가 들어감 / src와 alt작성란이 있다. 요즘에는 잘안쓰임.
6 file
- 전송은 따로 구현
/ accept="파일종류/확장자 (ex)image/* image/jpg,image/png, video/mp4, video/webm)"
/ multiple - 파일을 여러개 선택가능

7 hidden - 용자에게는 보이지 않는 숨겨진 입력 필드를 정의

8 button - value를 사용해 버튼의 글자를 바꿈
9 submit - value를 사용해 버튼의 글자를 바꿈 / 전송을 하면 form의 action으로 보내준다.
10 reset - value를 사용해 버튼의 글자를 바꿈 / 원래 처음 있던 값으로 돌아감-->

 

text

< br/> password


checkbox


radio


image


file


hidden


button


submit


reset


get : 데이터를 가져오는 방식 - 빠르다

post : 데이터를 감춰서 가져오는 방식 - get 보다 느리다 ex) login, join, payment

 

- CRUD - 

Create - insert

Read - select

Upload - update

Delete - delete

Input
Result
1
↔️
processing 2 , 3
↔️
Data Base
  4
↖️↘️
↕️    
Front end   Result   Back end

4. <select> : 콤보 상자 작성

<select
name="" 
id=""
size="숫자 = 숫자만큼 항목이 보임"
multiple(다중선택)
/>
	<option value="1"> 1 </option>
    <option value="2" selected> 2 </option>
</select>
<!-- ////////////////////////////// -->
<select>
   <optgroup label="group1">
    	<option value="3"> 3 </option>
        <option value="4"> 4 </option>
        <option value="5"> 5 </option>
        <option value="6"> 6 </option>
    </optgroup>
    
    <optgroup label="group2">
    	<option value="7"> 7 </option>
        <option value="8"> 8 </option>
        <option value="9"> 9 </option>
        <option value="10"> 10 </option>
    </optgroup>
</select>

 

5. <textarea> : 텍스트를 여러 줄 입력하는 상자

<p>
textarea
<textarea name="" id="" cols="숫자" rows="숫자">"textarea 는 value값을 안쓰고 여기다 기입 enter와 space가 결과에 반영된다."</textarea>
</P>

<!-- 약관 같은 것은 여기에 기입하면 안된다. -->

textarea

6. <button> : 버튼 형식의 요소 작성(input 대신 button 사용)

<button type=""> TEXT </button>
<!-- type : button / submit / reset -->


7. 추가된 파일 속성값

- datetime
<input type="datetime"/>
<input type="datetime-local">

- week
<input type="week"/>

- month
<input type="month"/>

- date
<input type="date"/>

- time
<input type="time"/>

- email
<input type="email"/>

- url
<input type="url"/>

- search
<input type="search"/>

- number
<input type="number" min="1" max="30"/>

- range
<input type="range" min="0" max="10" step="2" value="5"/>

- tel
<input type="tel"/>
Document

추가된 type 속성값

datetime

datetime-local

date

week

month

time

email

url

search

number

range

tel

 

* input Element의 새로운 Attribute

 

1. placeholder

<input type="text" placeholder="값"/>

2. autofocus

<input type="text" autofocus/>

3. required

- 필수 입력 항목 지정

- title 속성을 이요하여 추가 메세지 지정 가능

- mobile 일부 구현

<input type="text" title="값" required/>
Document

추가된 type 속성값

placeholder

autofocus

required

* 표준 & 접근성 향상

1. fieldset : 양식의 소그룹 

- 의미적으로 묶어주기 위해 사용 / 디자인적 구분은 div를 사용

2. legend : fieldset의 제목

3. label : 필드와 텍스트의 그룹

4. for(속성): 연결하고자 하는 필드의 id값 작성

<form action="" method="">
      <fieldset>
        <legend>로그인 정보</legend>
        <p>
          <label for="uid">아이디</label>
          <input name="uid" id="uid" type="text" />
        </p>
        <p>
          <label for="pwd"> 비밀번호 </label>
          <input name="pwd" id="pwd" type="password" />
        </p>
      </fieldset>

      <fieldset>
        <legend>연락처 정보</legend>
        <p>
          <label>
            이메일
            <input name="email" id="email" type="text" />
          </label>
        </p>
        <p>
          <label>
            전화번호
            <input name="mobile" id="mobile" type="text" />
          </label>
        </p>
      </fieldset>
    </form>
로그인 정보

연락처 정보

 

SIMPLE Log In Form

<!DOCTYPE html>
<html lang="ko">
  <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>
      fieldset {
        border: 1px solid tomato;
      }
      label,
      input {
        margin: 5px 20px;
      }
      div > input {
        border-radius: 20px;
        padding: 5px 0px;
        padding-left: 15px;
      }
      fieldset > input:last-child {
        border-radius: 25px;
        padding: 5px 10px;
        background-color: cornflowerblue;
        border: none;
      }
    </style>
  </head>
  <body>
    <form action="" method="">
      <h2>JOIN</h2>
      <fieldset>
        <legend>USER INFO</legend>
        <div>
          <label for="name">Name</label>
          <input type="text" name="" id="name" placeholder="NAME" required />
        </div>

        <div>
          <label for="id">ID</label>
          <input type="text" name="id" id="id" placeholder="ID" required />
        </div>

        <div>
          <label for="confirm_id">Checking ID</label>
          <input
            type="text"
            name="id"
            id="confirm_id"
            placeholder="Check ID"
            required
          />
        </div>

        <div>
          <label for="pwd">Password</label>
          <input
            type="password"
            name="pwd"
            id="pwd"
            placeholder="Password"
            required
          />
        </div>

        <div>
          <label for="check_pwd">Password</label>
          <input
            type="password"
            name="pwd"
            id="check_pwd"
            placeholder="Chech Password"
            required
          />
        </div>

        <div>
          <label for="gender">Click your Gender</label>
          <input type="radio" name="gender" id="gender" /> <span>Man</span>
          <input type="radio" name="gender" id="gender" /> <span>Woman</span>
        </div>

        <div>
          <label for="phone">phone</label>
          <input
            type="tel"
            name="phone"
            id="phone"
            placeholder="Phone number"
            required
          />
        </div>

        <div>
          <label for="location">Location</label>
          <input
            type="text"
            name="location"
            id="location"
            placeholder="Where you at?"
            required
          />
        </div>

        <div>
          <label for="email">E - Mail</label>
          <input
            type="email"
            name="email"
            id="email"
            placeholder="E-Mail"
            required
          />
        </div>

        <div>
          <label for="birthday">Birthday</label>
          <input type="date" name="birthday" id="birthday" />
        </div>

        <div>
          <label for="agree">Agreement</label>
          <input type="radio" name="agree" id="agree" /> <span>Agree</span>
          <input type="radio" name="agree" id="agree" /> <span>Disagree</span>
        </div>

        <input type="submit" value="JOIN" />
      </fieldset>
    </form>
  </body>
</html>
Document

JOIN

USER INFO
Man Woman
Agree Disagree
728x90

'CODING PRACTICE > HTML & CSS' 카테고리의 다른 글

2023/03/10__HTML/CSS__8  (0) 2023.03.14
2023/03/10__HTML/CSS/JavaScript__7  (0) 2023.03.13
2023/03/08__HTML/CSS__5  (0) 2023.03.10
2023/03/07__HTML/CSS__4  (0) 2023.03.10
2023/03/06__HTML/CSS__3  (0) 2023.03.09

+ Recent posts