자바스크립트
자바스크립트(JavaScript)는 객체(object) 기반의 스크립트 언어입니다.
HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트로는 웹의 동작을 구현할 수 있습니다.

자바스크립트를 공부해야하는 이유는 아래와 같습니다. 

JavaScript는 모든 웹 개발자가 배워야 하는 3가지 언어 중 하나입니다.
1. 웹 페이지의 내용을 정의하는 HTML
2. 웹 페이지 레이아웃을 지정하는 CSS
3. 웹 페이지의 동작을 프로그래밍하는 JavaScript

자바스크립트를 처음 사용하기 위해 프로그램을 설치할 필요가 없습니다.

자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버 측 프로그래밍에서도 사용할 수 있습니다.
현재 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있습니다.

JavaScript Can Change HTML Content

자바스크립트를 사용하여 웹 프로그래밍에서 할 수 있는 일은 다음과 같이 매우 다양합니다.
 
1. 자바스크립트는 HTML의 '내용'을 변경할수 있습니다
2. 자바스크립트는 HTML의 '속성'을 변경할수 있습니다.
3. 자바스크립트는 HTML의 '스타일'을 변경할수 있습니다.

아래 예제는 HTML element가 (id = "demo")를 "찾고" element 내용을 (innerHTML)를 "Hello JavaScript"로 변경합니다.

자바스크립트는 <script> 태그 안에서 작동됩니다.

JavaScript Functions and Events

Function: 자바스크립트가 실행하는 명령

Event: 함수 실행으로 발생한 결과

External JavaScript

외부 js 파일에 자바스크립트 코드를 저장하고 불러와서 사용할 수 있습니다.

다만, script src="파일경로+파일명" 을 명시해야합니다. 

 

JavaScript Output

자바스크립트 출력
자바스크립트는 여러 방법을 통해 결과물을 HTML 페이지에 출력할 수 있습니다.
자바스크립트에서 사용할 수 있는 출력 방법은 다음과 같습니다.
 
1. window.alert() 메소드 : 윈도우 alert 박스를 나타냄
2. HTML DOM 요소를 이용한 innerHTML 프로퍼티: 원하는 특정 HTML 요소를 지정하여 그 값을 변경
3. document.write() 메소드 : HTML 결과물을 바꾸는것
4. console.log() 메소드: 콘솔 로그를 나타낸다.

JavaScript Keywords

KeywordDescription

break Terminates a switch or a loop
continue Jumps out of a loop and starts at the top
debugger Stops the execution of JavaScript, and calls (if available) the debugging function
do ... while Executes a block of statements, and repeats the block, while a condition is true
for Marks a block of statements to be executed, as long as a condition is true
function Declares a function (함수명 정의)
if ... else Marks a block of statements to be executed, depending on a condition
return Exits a function
switch Marks a block of statements to be executed, depending on different cases
try ... catch Implements error handling to a block of statements
var Declares a variable (변수 선언)

JavaScript is Case Sensitive

자바스크립트는 대소문자 구분한다.

JavaScript and Camel Case

식별자 작성 방식

자바스크립트에서는 식별자를 작성할 때 다음과 같은 작성 방식을 사용할 수 있습니다.

 

1. Camel Case 방식

2. Underscore Case 방식

 

Camel Case 방식이란 식별자가 여러 단어로 이루어질 경우에 첫 번째 단어는 모두 소문자로 작성하고, 그다음 단어부터는 첫 문자만 대문자로 작성하는 방식입니다.

Underscore Case 방식은 식별자를 이루는 단어들을 소문자로만 작성하고, 그 단어들은 언더스코어(_)로 연결하는 방식입니다.

예제
var firstVar = 10;           // Camel Case 방식
function my_first_func {     // Underscore Case 방식
    var firstLocalVar = 20;  // Camel Case 방식
}

JavaScript Data Types

var 타입은 모든 데이터 타입을 contain할 수 있습니다.

JavaScript Arithmetic

number + number = number 

string + string = string -->  var x = "John" + " " + "Doe"; ==> "John Doe"

string + number+ number = string  -->  var x = "5" + 2 + 3;  ==> "523" (string이 먼저 나오면 나머지 숫자들도 string으로 간주)

number + number+ string = string --> var x = 2 + 3 + "5"; ==> "55" (number가 먼저 나오면 숫자부분들만 덧셈을 하고 string은 숫자뒤에 concatenate해줌)

Primitive Data

typeof 명령어는 데이터타입을 반환한다. 

(주의점: array 배열은 object로 여겨져서 object로 반환이된다. )

JavaScript String Methods

String Length

Finding a String in a String

use indexOf()

Searching for a String in a String

use search()

Extracting String Parts

string을 잘라내는 방법은 3가지가 있습니다. (아래 함수에서 첫 index 와 마지막 index 를 지정하여 해당 범위의 string 추출)

Replacing String Content

replace("바꾸고자 하는 텍스트", "새로운 텍스트") 함수는 특정 텍스트를 새로운 텍스트로 교체할 수 있습니다. 

The charAt() Method

Converting a String to an Array

특정 string을 split하여 배열로 저장할 수 있습니다.

JavaScript Array Methods

stack과 같이, array에 pop(), push() 에 할 수 있고, 나머지는 아는 내용이다. 

 

다음 메소드는 원본 배열을 직접 변경하는 메소드입니다.

 

1. push()

2. pop()

3. shift() : shift() 메소드는 pop() 메소드와는 달리 배열의 가장 마지막 요소가 아닌 첫 요소를 제거하고, 그 제거된 요소를 반환합니다. 따라서 shift() 메소드도 실행할 때마다 배열의 길이가 1씩 줄어들게 됩니다.

4. unshift() : unshift() 메소드는 하나 이상의 요소를 배열의 가장 앞에 추가합니다.

원본 배열은 추가한 요소의 수만큼 길이(length)가 늘어나게 되며, 요소를 성공적으로 추가하면 배열의 총 길이를 반환합니다.

5. reverse() : reverse() 메소드는 배열 요소의 순서를 전부 반대로 교체합니다.

즉, 가장 앞에 있던 요소가 가장 뒤에 위치하며, 가장 뒤에 있던 요소는 가장 앞에 위치하게 됩니다.

6. sort() : sort() 메소드는 해당 배열의 배열 요소들을 알파벳 순서에 따라 정렬합니다.

이 메소드는 배열 요소를 모두 문자열로 보고 정렬하므로, 숫자나 불리언과 같은 타입의 요소들은 잘못 정렬될 수도 있습니다.

7. splice() : splice() 메소드는 기존의 배열 요소를 제거하거나 새로운 배열 요소를 추가하여 배열의 내용을 변경합니다.

 

첫 번째 인수는 새로운 요소가 삽입될 위치의 인덱스이며, 두 번째 인수는 제거할 요소의 개수입니다.

그 이후의 인수들은 모두 배열 요소로서 지정된 인덱스부터 차례대로 삽입됩니다.

이 메소드는 배열에서 제거된 요소를 배열의 형태로 반환하며, 아무 요소도 제거되지 않았으면 빈 배열을 반환합니다.

Responsive Web Design 이란?

웹페이지 크기에 따라 유동적으로 화면 크기에 맞춰 HTML 과 CSS가 적용됨을 말합니다. 이를 통해 가독성을 유지할 수 있고, 다양한 기기의 화면 사이즈에 최적화된 사이즈로 웹페이지를 보여지게 할 수 있습니다. (주로 데스크탑 보다 작은 기기들이 원래는 웹페이지가 작게 보여서 발생하는 불편함을 해결하기 위해 만들어짐).

 

What is The Viewport?

viewport는 웹 페이지에서 사용자가 볼 수 있는 영역을 말합니다.

뷰포트는 장치에 따라 다르며, 휴대폰의 경우 컴퓨터 화면보다 크기가 더 작습니다.

 

HTML5는 웹 디자이너들이 <meta> 태그를 통해 viewport를 제어할 수 있는 방법을 도입했다.

모든 웹 페이지에 다음 보기 포트 요소를 포함해야 합니다.

<meta name ="viewport" content ="width = device-width, initial-scale =1.0">
이렇게 하면 페이지의 크기 및 배율을 제어하는 방법에 대한 브라우저 지침을 제공합니다.

width(너비) = device-width(장치 너비) 부분은 (장치에 따라 다름) 장치의 화면 너비를 따르도록 페이지 너비를 설정합니다.

initial-scale=1.0 파트는 브라우저에 의해 페이지가 처음 로드될 때 초기 확대/축소 수준을 설정합니다.

 

What is a Grid-View?

gridview란 페이지를 여러 작은 column으로 나눌 수 있는데 이걸 토대로 페이지 layout을 만들 수 있습니다.

 

Building a Responsive Grid-View

responsive gridview를 만드는 간단한 방법 중 하나는 바로 box-sizing과 float 속성을 활용하는 방법입니다.

 

하지만, 실상에는 column이 2개 이상이 필요로 할 수 있어서, 세밀하게 웹 페이지를 만들기 위해서 12개의 column으로 나눕니다.

먼저 한 열에 대한 백분율을 계산해야 합니다. 즉, 100% / 12개 열에 대한 백분율이 ® 8.33%입니다.

그런 다음 12개 열 각각에 대해 클래스를 하나씩 만들고, 해당 섹션에 걸쳐야 하는 열 수를 정의하는 숫자를 만듭니다.

이렇게 아래와 같이 웹페이지 사이즈에 따라 적용될 class를 정의하고 

(ex: 웹 페이지 사이즈가 50%일때는 .col-6 클래스가 적용이 되도록 할 수 있다)

아래 HTML 코드와 같이 특정 element가 웹 페이지 사이즈 변동에 따라 적용되고자 하는 class를 명시합니다.

ex) 웹 페이지가 75%일 때는 col-9 클래스가 적용이 됩니다.

이제 아래 부분이 정말 중요합니다.

저희는 모든 element들을 float:left로 설정했기 때문에, 본래의 웹 페이지 flow에 따르지 못하게 됩니다. 그래서 다른 element 요소가 있으면 그 요소는 마치 위 float:left가 적용된 element가 없는 것처럼 적용이 되어서 겹쳐서 보여지게 됩니다. 이걸 막기 위해서 사용하는 속성이 바로, clear: both; 입니다.

그리고 display: table; 를 사용합니다. (이걸 왜 하는지는 안나와있어 인터넷에 찾아보고 추가해서 정리할게요. ) 

Media Query:

media query는 특정 조건이 만족되면 적용되는데,  미디어 쿼리(media query)는 width, height, color 속성과 같은 미디어 관련 속성을 이용한 표현식을 통해 스타일이 적용되는 범위를 조절할 수 있습니다.

 

위 그림 처럼, 각 상황에 따른 미디어쿼리를 적용할 시에 화면이 작아졌을때 element가 작아서 보기가 불편했던 문제점들을 해결할 수 있습니다.

 

본 포스트는 www.w3schools.com/css/css3_borders.asp 에서 필요한 내용만 발췌해서 정리하였습니다.

 

CSS Rounded Corners

CSS Rounded Corners CSS Rounded Corners With the CSS border-radius property, you can give any element "rounded corners". CSS border-radius Property The CSS border-radius property defines the radius of an element's corners. Tip: This property allows you to

www.w3schools.com

CSS border-radius

border-radius 도 사각형을 기준으로 최 좌측상단부터 시계방향으로 하나씩 정의할 수 있다.

(top-left corner, top-right corner, bottom-right corner, bottom-left corner순)

CSS background: Hero Image

배경화면을 이미지로 만들고 그 위에 텍스트를 입히는 것

CSS Gradients

그라데이션은 top, right, bottom, left 뿐만 아니라 대각선으로도 적용할 수 있다.

사용법은 간단하다. 원하는 방향과 함께 두가지 색상을 명시하면 색이 그 방향으로 바뀐다.

CSS Text Shadow

가로, 세로 방향으로 텍스트 shadow 픽셀을 정의할 수 있다.

Blur Effect (텍스트 블러 효과)

텍스트 블러 효과는 z-index 값을 추가로 설정하여 효과를 나타낼 수 있다.

CSS Text Effects

  • CSS Text Overflow
    • 텍스트 overflow가 발생시 처리 방법은 다양합니다
      • text-overflow: clip = overflow하는 텍스트는 잘려서 보여지지 않습니다.
      • text-overflow: ellipsis = 텍스트 끝을 .... 으로 표시하여 잘려짐을 알려줍니다.

CSS Word Wrapping

HTML css는 글자가 길면 다음줄로 넘기지 못하고 컨테이너 밖을 overflow하게 됩니다. 이때 단어가 overflow하지 않고 다음줄까지 이어서 보여지도록 하는것이 바로   word-wrap: break-word; 입니다.

전)

후)

 

컨테이너를 넘치는 텍스트를 컨테이너 안에 넣도록 만드는 명령어 입니다.

 

CSS Transitions

transition 은 특정 CSS효과 변화를 설정하고 적용시간을 설정할 수 있습니다.

transition 속성

transition 속성은 다음과 같은 순서로 정의할 수 있습니다.

 

1. 해당 요소에 추가할 CSS 스타일 전환(transition) 효과를 설정합니다.

2. 추가할 전환 효과가 지속될 시간을 설정합니다.
www.tcpschool.com/css/css3_transform_transition

아래 예시는 마우스를 빨간 박스에 올릴 시에 가로 길이가 300px, 세로 길이가 300px 로 각각 2초, 4초 동안 커지게 됩니다. 

효과는 부드럽게 빨간 박스가 커지는 것을 볼 수 있습니다. (커서를 밖으로 치울 시에는 서서히 작아집니다) 

Transition 은 크게 아래와 같은 속성을 지닙니다.

CSS Create Multiple Columns

My favorite, and one of my best snacks is Kurkure - Rajasthani Style.

It's been 3 years ever since I last had the taste of it. (My last visit to India was 2018)

If somebody returns from India, please contact me, for I am willing to buy 6 of these....

 

Love India! Stay Healthy mere dost!!

내용을 단을 2개로 나눠서 작성할때 table 안에서 <td colspan="2"> 를 이용할것.

그럼 아래 그림 처럼 한 row 에 두 column을 사용하여 만들어짐.

 

 

CSS를 공부할때는 pixel grid 이미지를 전체 배경으로 설정해서 보면 css 배치가 어떻게 작동되는지 보기에 훨씬 효과적이다.

난 아직도 position: relative; position: absolute가 조금 헷갈린다....

결국, position: relative는 원래 element가 static이었으면 있었을 자리에서 상대적으로 움직이는 것이고,

position: absolute는 그런거 없이 절대위치를 지정해서 전체 화면 최좌측상단을 기준으로 해서 위치를 결정하는 것이다. 

예제)

포스트 참고:

rgy0409.tistory.com/2951

 

CSS position absolute relative 절대위치 상대위치 개념정리

티스토리 스킨을 뜯어보면 가장 많이 볼 수 있는 태그 요소 중 하나가 바로 position 위치에 대한 설정 입니다. 대체로 두 가지 요소를 많이 씁니다. relative 와 absolute 입니다. 이 두개의 차이를 간단

rgy0409.tistory.com

----

 

 

CSS position 는 기본적으로 default 값이 = static이다. (즉, element가 순차적으로 각 자리를 차지하게 된다)

CSS 에는 shorthand property (shorthand: 정의: 속기) 라고 단축 코드를 만들때 사용이 된다. 즉 여러 속성을 한 element 이름안에 순서대로 적용할 수 있다는 것이다. 그 한 예가 아래와 같다.

아래 사진에서 첫번째 line은 font-size: 100% 와 font-family: Courier New; 를 한꺼번에 적용한 것 과 같다. 

 

aboooks.tistory.com/72

 

[css 기초] float 속성에 대하여

 [css 기초] float 속성에 대하여 float를 그대로 번역하자면 '띄우다'라는 뜻입니다. float는 css에서 정렬하기 위해 사용되는 속성입니다. 예를 들어, 문서에 사진과 그림이 있을 때, 그림을 왼쪽이나

aboooks.tistory.com

 

이건 모든 내용을 float로 만든것. responsive web을 만들때 유용하다. 

www.w3schools.com/css/tryit.asp?filename=tryresponsive_col-s

 

Tryit Editor v3.6

* { box-sizing: border-box; } .row::after { content: ""; clear: both; display: table; } [class*="col-"] { float: left; padding: 15px; } html { font-family: "Lucida Sans", sans-serif; } .header { background-color: #9933cc; color: #ffffff; padding: 15px; } .

www.w3schools.com

 

 

CSS 문법:

원하는 선택자 태그와 중괄호 안에 "속성명:속성값;" 으로 선택자에 CSS를 적용할 수 있습니다.

 

Universal selector:

* {
  text-align: center;
  color: blue;
}

모든 selector에게 공통적으로 적용되는 css이다.

 

CSS 적용 3가지 방법:

  • Inline: 태그 안에 CSS를 적용시키는것
  • Internal: 같은 HTML파일 안에서 <head> 태그안의 <style>태그 안에서 정의해주는것
  • External: 별개로 별도의 CSS 파일을 생성하여 여러 HTML 파일에 동일한 CSS를 적용하는 것

Cascading Order:

여러 CSS 방법이 적용되어 있다면, Inline > Internal > External 순으로 우선시되어 적용된다는 뜻

 

다양한 CSS Properties:

  • Comment: <!-- 내용 --> , /* 내용 */
  • opacity: 투명도 조절

         - (범위: 0.0 ~ 1.0)

  • background-image: 배경 이미지 적용
  • background-attachment: fixed; => 배경 이미지 고정시키기

Margin:

  • margin: Top, Right, Bottom, Left (위에서 시계방향 순으로 지정)

- 아래는 Top, Bottom: 25px, Right, Left: 50px 입니다.

margin: auto

margin: auto로 설정해놓으면 행에서 좌우 여백을 고려하여 정중앙에 배치되게 만듭니다. (상하여백은 고려안함)

즉, div element에게 할당된 가로:300px 을 제외하고 행에서 남은 여백을 조절하여 div element를 정중앙에 배치합니다.

Margin Collapse:

이건 따로 CSS 속성이 있는것이 아니라 일종의(?) 법칙입니다...!

가령, h1 태그가 bottom: 50px; 

h2 태그가 top: 20px; 이 주어지고 서로 위아래에 맞닿이게 배치되어있다면, 두 element의 공간은 하나로 collapse되어 50px이 됩니당!!

Padding:

  • width + padding: 총 길이. 
    • width:300px을 의도하였으나, padding:25때문에 총 길이는 350px이 되었다. (좌+우:  25px+25px) 

  • 원하는 크기의 element를 만들고 싶을때에는, 아래 해결 방법이 있다.
  • box-sizing: border-box;
  • 이렇게 하면 element의 크기를 테두리까지의 길이를(border-box) 기준으로 사이즈를 지정할 수 있기 때문에 사이즈 조정에 유용하다. 
  • element의 크기는 원하는 300px으로 설정을 할 수 있고, 안에 padding:25px이 적용되어 텍스트가 한껏 좁아진것을 볼 수 있다.

Text-align:

  • text-align: justify
    • element안의 모든 글자 간격 균등하게 만들기.

  • text-decoration: none;
    • 링크에 밑줄 제거
    • 우측 결과처럼 링크 밑줄을 제거하는데 사용된다.

  • text-decoration: line-through 취소선 긋기

  • text-indent: 50px; 
    • 글자 들여쓰기

  • letter-spacing: 글자 간격

  • 줄 간격:

line-height: 1.8

ex) p element에 big 이라는 class css를 적용한 모습

Bootstrap Icons:

아이콘을 적용시 다운로드가 필요없는 bootstrap을 사용하면 유용하다. (CDN 을 사용하기 때문에 인터넷에서 바로 이모티콘을 reference해서 적용할 수 있다)

사용법은 <link rel="stylesheet" href="웹사이트 cdn링크 주소"> 만 하면 끝이다. (대신 cdn 을 지원하는 boostrap을 제공하는지 봐야함)

CSS Links:

css 링크는 a 태그, (즉 anchor 태그)를 활용하여 사용할 수 있다.

a 태그에 적용할 수 있는 css는 아래와 같다.

 

1. 링크를 방문하기 전의 css 

2. 링크를 과거에 방문했을시 css

3. 링크에 마우스를 올렸을때 css

4. 링크를 마우스로 클릭했을때 css

 

주의점:

 

CSS lists:

css list에 특정 list style 따로 따로 적용방법:

CSS tables:

우리가 흔히 사용하는 horizontal divider는 table을 만들고 border-bottom:만 활성화 시켜서 만드는 방법이다.

CSS Layout:

display 특성:

CSS layout을 display를 사용하여 조종할 수 있다. 

CSS element은 크게 2가지 타입이 있는데,

1. Block-Level Elements : 새 행에서 시작하고 각 element는 따로 행을 가진다.

2. Inline-Level Elemetns : element가 필요로 하는 만큼의 공간만 차지한다. 즉, 한 행에 여러 element가 (공간만 충분하다면) 함께 올수 있다. 

CSS Layout - The position Property

  • position: static;

일단 모든 태그들은 처음에 position: static 상태입니다. (기본적으로 static이라 따로 써주지 않아도 됩니다.) 차례대로 왼쪽에서 오른쪽, 위에서 아래로 쌓입니다.

  • position: relative;

여기서 태그의 위치를 살짝 변경하고 싶을 때 position: relative를 사용합니다. 이제 top(위), right(오른쪽), bottom(아래), left(왼쪽) 속성을 사용해 위치 조절이 가능합니다.

(이건 내가 생각했던 대로 무슨 상대위치 이런게 아니라 위치를 사용자 임의로 설정할 수 있다는 뜻이다... )

## 태그 옆에 공간을 준다고 생각하면 됩니다!! (ex. left:5px; --> 태그 왼쪽으로 5px을 준다는 뜻!!)

 

즉, position: relative;

     left:5px;  --> 태그 element의 왼쪽에 5px 간격이 생겨서 오른쪽으로 움직입니다. 

태그를 왼쪽으로 움직이고 싶을때에는, left: -5px; 로 해줘야함!!

 

  • position: fixed;

이건 태그를 어느 한 위치에 고정시킬 때 씁니다. 즉, 스크롤을 아무리 움직여도 화면상에는 한 곳에 고정되어 움직이지 않고 보여집니다.

 

  • position: absolute;

원래 위치와 상관없이 위치를 지정할 수 있다. 단, 가장 가까운 상위 요소를 기준으로 위치가 결정 된다.

 

요약:

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

 

relative : 위치를 계산할때 static의 원래 위치부터 계산한다.

 

absolute : 원래 위치와 상관없이 위치를 지정할 수 있다. 단, 가장 가까운 상위 요소를 기준으로 위치가 결정 된다. (무슨 말이냐면, 

<div 

 

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

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

 

출처:electronic-moongchi.tistory.com/26

 

  • position: sticky

특정 element를 페이지를 스크롤 하여도 특정 위치에 계속 붙어 있는 효과를 나타낸다.

 

Overlapping Elements

element를 겹처보이게 하고 싶으면 한 element가 다른 element 뒤에 위치하면 된다.

이걸 적용하기 위해 z-index: -1 을 하면 해당 element가 다른 element 뒤에 위치하게 된다.

CSS Overflow

이건 contents (내용물)이 담고 있는 container element를 넘치면 (overflow) 어떻게 처리할지 지정하는 CSS 이다.

 

각 방법은:

1. visible- 내용물이 넘쳐나는데로 그냥 내비두어서 보여지게 하는것

2. hidden- 넘처나는 내용물은 안보이게 가리는것 

3. scroll- 넘치는 내용물을 스크롤바로 보이게하는것

4. auto- scroll과 유사, 필요할 때만 스크롤바가 생성된다.

 

CSS Layout - float and clear

  • float:left:

float은 웹 페이지의 레이아웃(layout)을 작성할 때 자주 사용됩니다.

 

 

 

  • clear: both;

clear은 float속성을 사용하여 float:left, right, top, bottom을 적용하고 난 뒤에 해당 객체 다음에 오는 객체 element가 붙지 않게 하기 위해서 사용하는 속성입니다. 

즉, clear 속성은 float 속성이 적용된 이후 나타나는 다음 요소들의 동작을 조절해 줍니다.

 

아래 사진은 원래 p 태그가 float: left; float:right 사이에 남은 공백에 위치하였는데 , text 문자를 아래로 오게 하기 위해 적용한 속성이 바로 clear: both; 이다.

 

 

float 속성을 이용한 HTML layout 방식!!: (중요 --> 굿!)

<div> 태그 안의 <header>, <nav>, <section>, <footer> 태그는 block style을 따라서 각 태그는 한줄 전체를 활용합니다.

하지만, <nav> 와 <section> 태그는 float와 margin을 사용하여 같은 행에 같이 나타나게 만들었습니다. section 태그 안의 텍스트는 section 구역안에 제한되어 나옴. 

<nav> 태그 안에 float:left 와 border: 3px 와 width: 150px; 를 사용하여, 총 가로 길이 156px를 차지하고 있습니다.

<section> 태그는 <nav> 태그 오른쪽에 오게 하기 위해 float 속성을 사용하지 않고, 다만 margin-left: 156px; 를 주어 <nav> 태그 오른쪽에 올수 있도록 만들었습니다. 

 

 

CSS Navigation Bar 

아래 사이트에 한 단계씩 너무 상세하게 설명되어 있어서 고대로 참조해도 좋을듯!!

www.w3schools.com/css/css_navbar.asp

 

CSS Navigation Bar

CSS Navigation Bar Demo: Navigation Bars Navigation Bars Having easy-to-use navigation is important for any web site. With CSS you can transform boring HTML menus into good-looking navigation bars. Navigation Bar = List of Links A navigation bar needs stan

www.w3schools.com

 

특이사항:

horizontal navbar를 만들때, 각 list를 display: inline으로 설정!

 

HTML을 이제 막 시작한 단계라면 HTML 디자인에 대해서 궁금하실거에요.

각 태그들이 어떻게 배치가 되고 어떻게 자리와 공간을 차지하는지 아셔야 나중에 각 요소들을 배치할때 엉키지 않고 올바르게 사이즈를 조절하고 배치를 할 수 있답니다.

각설하고,

inline vs block 이란?

상세한 내용은 아래 블로그에서 넘나리 잘 설명해놓아서 여기를 참조해주세용... ㅎㅎㅎ (숟가락 얹기... )

 

www.daleseo.com/css-display-inline-block/

 

[CSS] display 속성: inline, block, inline-block

Engineering Blog by Dale Seo

www.daleseo.com

본 포스트는 위 블로그를 참조하여 정리한 내용입니당

HTML 을 연습하는데 HTML 태그 배치가 (layout이라고 해야하나) 내 맘대로 딱딱 원하는 위치에 배치가 안되서 열불나더라고요.

교수님은 w3schools.com의 try it yourself! 에서 연습하라고 했는데 이렇게 하면 일일히 run을 눌러서 결과를 봐야하는게 여간 힘든 작업이 아니더라고요. 각설하고, (요약한 내용은 맨 밑에서 보세요!!) 

www.w3schools.com/html/tryit.asp?filename=tryhtml_default

 

Tryit Editor v3.6

Page Title This is a Heading This is a paragraph.

www.w3schools.com

제가 생각해낸 방법은 저희가 웹 페이지와 VS code를 연결해놓았잖아요? (전 포스팅 참조: blog.naver.com/PostView.nhn?blogId=blu_mountain&logNo=222195968073&parentCategoryNo=&categoryNo=11&viewDate=&isShowPopularPosts=false&from=postList)
페이지 결과화면에서 우클릭>검사하면 페이지 HTML 정보를 볼수 있답니다. 

또한 커서를 올리면 해당 구역의 HTML, CSS 정보를 볼 수 있어요!

이렇게 계속 웹 페이지 HTML 상태를 모니터링 하고 코드 수정은 VS Code에서 하면 너무나 편리한 것...! ㅜㅠㅠㅜ

너무 뻔한 이야기였나요? ㅜㅠㅜ 

저는 이렇게 하면 편한걸 뒤늦게 알았네용... ㅜㅠㅠ 

 

(추가): 2021/1/8

 

암튼 요약하자면

1) 벤치마킹하고 하는 페이지를 띄어놓고 페이지 우클릭 > 검사 (따라하고자 하는 웹 페이지 배치 및 CSS 적용사항을 확인할 수 있음)

2) VS Code로 소스코드 수정 및 저장. (바로 바로 웹페이지에 수정사항이 반영된것을 확인할 수 있음)

 

 

www.w3schools.com/css/tryit.asp?filename=trycss_template1_float

 

Tryit Editor v3.6

CSS Template * { box-sizing: border-box; } body { font-family: Arial, Helvetica, sans-serif; } /* Style the header */ .header { background-color: #f1f1f1; padding: 30px; text-align: center; font-size: 35px; } /* Create three equal columns that floats next

www.w3schools.com

위 예제를 똑같이 따라해보는데 3개의 column들이 한 row안에 일정한 간격으로 나오지 못하고 한 column이 밑으로 빠져나오는걸 계속 해결하려다가 안됬는데 간단하게 아래 코드만 <style> 태그 안에 넣어주면 해결이 되는 문제였다. 

* {
          box-sizing: border-box;
        }

 

제가 설명을 드리자면, HTML CSS size는 텍스트(또는 contents) 사이즈를 기준으로 사이즈를 조절하는건 아시죠? 

모든 column의 width:33.33%이렇게 주면 3개의 column이 한 row에 들어갈 수 있을거라 생각하지만 저희가 빠뜨린게 있습니다.

바로 테두리 사이즈이죠.

이렇게 되면 테두리의 사이즈를 고려하지 못해서 한개의 column이 밑으로 빠지게 되는것이죠!

이걸 해결하기 위해 모든 태그에 (* 사용) 테두리 사이즈, 즉 border-box까지 포함한 사이즈를 기준으로 box-sizing을 한다는 뜻으로, 

아래와 같은 코드를 추가합니당.

* {
          box-sizing: border-box;
        }

 

이에 대한 설명은 생활코딩에서 잘 설명하고 있습니당!!

opentutorials.org/course/2418/13405

 

box-sizing - 생활코딩

box-sizing은 박스의 크기를 화면에 표시하는 방식을 변경하는 속성입니다. width와 height는 엘리먼트의 컨텐츠의 크기를 지정합니다. 따라서 테두리가 있는 경우에는 테두리의 두께로 인해서 원하

opentutorials.org

 

유용한 HTML Form Attributes:

1. The Action Attribute

주로 action 속성은 사용자가 submit 버튼을 누르면 입력된 데이터가 어떻게 처리되는지 지정합니다. 여기서, 보통은 form data는 서버의 파일 처리 핸들러가 받아서 적절하게 처리합니다.

 

2. Method Attribtue

Method Attribute는 데이터를 제출할 때 사용할 HTTP 메서드를 지정합니다.

Get 방식 - URL에서 데이터와 함께 보내는 방식

POST 방식- HTTP post transaction 으로 데이터를 함구하여 보내는 방식입니다.

 

입력 방식이 명시되지 않은 경우, 디폴트 방식은 GET 방식입니다.

HTML Form Elements

우리가 지난 포스트에서 다루지 못한 요소들을 이어서 설명해볼게요

(지난 포스트 : binarywoo.tistory.com/3 )

 

  • <datalist>
  • <output>

<datalist>

이 태그는 빈 공란에 커서를 갖다 대면 미리 개발자가 지정한 여러 드롭다운 리스트가 보여지게 되면서 원하는 항목을 선택하는 방법이에요.

<output>

output태그는 script에서 계산을 하고 결과값을 보여주는데 사용이 되요.

간단한 사칙연산을 지원해줍니다. 복잡한건 되는지 몰겟네용

 

추가로 알아볼 여러가지 HTML Input types

  • <input type="color"> : 색갈을 고를 수 있게 클릭시에 조그마한 창이 생기네용! 

  • <input type="date"> : 날짜를 입력할 수 있게 선택 bar 가 생깁니당

  • <input type="email">: 이메일 형식인 xxx@xxx.com 으로만 데이터를 받을 수 있게 만들어놓아요
  • <input type="file"> : 파일을 서버에 업로드 할 수 있도록 버튼이 생성됩니당. 파일 전송시 (submit 버튼 클릭시) 처리되는 방식은 form handler가 처리를 하겠죵?? 
  • <input type="hidden"> : 
  • <input type="image">
  • <input type="month">
  • <input type="number">: 숫자로만 값을 입력받을 수 있게 만들어요
  • <input type="range">: 입력값의 범위를 지정할 수 있어요
  • <input type="reset"> : 이 버튼을 클릭시 입력한 내용이 전부 지워져용
  • <input type="tel">: 전화번호 형식인 010-1234-1234 으로 받을 수 있게 해요
  • <input type="time">: 원하는 시간대를 설정할 수 있어요

  • <input type="url">
  • <input type="week">

 

다음은 HTML Input Attributes 로 입력받을시에 사용자 행동을 정의할 수 있어요

The readonly Attribute:

readonly라고 지정하면 사용자는 입력된 값을 바꿀 수 없습니다.

The size Attribute:

입력받을 내용의 크기를 미리 지정할 수 있습니다.

The required Attribute:

개발자는 사용자가 꼭 입력해야할 목록들을 빠뜨리지 않고 입력하게 만드는 기능이에요.

The formenctype Attribute

Submit 버튼을 누를시에 (POST 방식에 한하여) form-data가 엔코딩이 필요한지를 input formenctype이 결정하게 됩니다.

Note: 주로 submit과 image 타입에 사용됩니다.

중요!!) 이 방식은 주로 이미지를 서버에 전송을 할때 사용됩니다. 

여기서는 입력값을 엔코딩하지 않음을 뜻하여 이미지 파일 자체를 전송하게 함을 의미합니다.

multipart/form-data : 
모든 문자를 인코딩하지 않음을 명시함.이 방식은 <form> 요소가 파일이나 이미지를 서버로 전송할 때 주로 사용함.

추가 내용:

HTML Canvas Graphics

HTML<캔버스> 요소는 웹 페이지에 그래픽을 그리는 데 사용됩니다.

상세한 내용은 아래 링크 참조 하세용:

www.w3schools.com/html/html5_canvas.asp

HTML SVG Graphics

SVG란 무엇인가?
SVG는 확장 가능한 벡터 그래픽을 나타냅니다.
SVG는 웹에 대한 그래픽을 정의하는 데 사용됩니다.
SVG는 W3C 권장 사항입니다.

www.w3schools.com/html/html5_svg.asp

+ Recent posts