Semantic Tags(시맨틱 태그)

 

시맨틱 요소 자체가 의미를 갖고 있는 요소를 의미한다.

시맨틱 태그 자체만으로 해당 태그가 어떤 의미를 갖는지를 알 수 있다.

 

html요소는 시맨틱 요소(semantic)와, 논-시맨틱(non-semantic) 요소 두 가지로 나눌 수 있는데

 

 

논-시맨틱의 예시로 <div>, <span> 등이 있다.

위의 두 태그들의 경우 해당 영역을 서로 묶어준다는 역할은 갖고 있으나,

태그 자체만으로 태그들이 어떤 컨텐츠를 보여주는지는 알 수 없다.

 

반면 시맨틱 태그 중 하나인 img의 경우,

태그 이름만 봐도 어떤 컨텐츠를 보여줄지 명확하게 유추해낼 수 있다.

 

 

 

 

Semantic Web(시맨틱 웹)

시맨틱 웹은 ‘의미론적인 웹’이라는 의미로, 기계가 바로 이해할 수 있도록 제작된 웹을 의미한다.

과거에는 여러 차례에 걸쳐 입력한 요소들을 특정 태그 하나를 통해 단번에 결과를 내는 경우다.

 

이를테면 과거에는 div로 영역을 묶은 후 “header”라는 값을 지정해 컴퓨터를 이해시켜야 했는데,

현재에는 <header>라는 태그를 통해 단번에 컴퓨터를 이해시킬 수 있다.

 

position 속성

 

html에서 position 속성을 통해 요소의 위치를 결정시킬 수 있다.

position속성을 통해 실제 화면에 원하는 방식으로 위치되게끔 만드는 것.

 

CSS에서 요소의 위치를 결정하는 방식에는 4가지 방식이 있다.

 

1. 정적 위치(static position) 지정 방식

2. 상대 위치(relative position) 지정 방식

3. 고정 위치(fixed position) 지정 방식

4. 절대 위치(absolute position) 지정 방식

 

 

1. 정적 위치(static position) 지정 방식

 

정적 위치는 단순히 웹 페이지의 흐름에 따라 차례로 요소를 위치시키는 방식이다.

모든 html 요소의 position 속성값은 기본적으로 정적 위치(static position)이다.

 

 

2. 상대 위치(relative position) 지정 방식

상대 위치(relative position)는 해당 HTML 요소의 기본 위치를 기준으로 요소를 위치시키는 방식이다.

HTML 요소의 기본 위치 해당 요소가 정적 위치(static position)일 때 결정되는 위치를 의미한다. 한마디로 기본값!

 

 

3. 고정 위치(fixed position) 지정 방식

고정 위치(fixed position) 지정 방식은 뷰포트(viewport)를 기준으로 요소를 위치시키는 방식이다.

뷰포트를 기준으로 상대적인 위치를 설정하게 된다.

 

뷰포트(viewport) 각각의 기기마다 요구되는 화면 크기.

예를 들어 pc모니터와, 태블릿, 스마트폰은 각기 다른 기준의 화면을 갖게 된다. 반응형 웹사이트 제작 시 중요.

 

 

4. 절대 위치(absolute position) 지정 방식

절대 위치가 작동하기 위해서는 기준이 필요하다.

바로 상위의 부모요소를 기준으로 상대적인 위치를 설정하게 된다.

 

반드시 부모 요소가 있어야 하는 것은 아니다.

부모 요소를 설정하지 않을 시 body를 기준으로(body를 부모요소로 인식) 작동한다.

 

 

 

 


Block level element, Inline element - 박스 기본 영역

 

영역 사용 범위

Block level element 화면(display)의 전체 영역을 사용.
Inline element 화면(display)의 특정 영역(한정된 영역)만을 사용.

화면(display) 영역을 얼마만큼 사용하는가, 하는 특성.

얘네는 태그는 아니고 일종의 특성이다.

속성...같은 걸로 봐도 되나?

 

예를 들어 h1태그는 특성상 기본적으로 Block level element에 해당한다.

화면의 전체 영역  이 말은 화면 가로 최대치를 쫙 차지한다고 보면 됨.

 

▶예시1

<!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>box01</title>

  <style>
    /*block level element -> 
    화면의 전체 영역을 사용.*/
    h1 {
      border-width: 5px;
      border-color: green;
      border-style: solid;
    }

    /*inline element ->
    화면의 특정 영역만을 사용.*/
    a {
      border-width: 5px;
      border-color: blueviolet;
      border-style: solid;
    }
  </style>

</head>
<body>

  <h1>CSS</h1> is the language we use to style an HTML document. (<a href="https://developer.mozilla.org/ko/docs/Web/CSS">CSS</a>) describes how HTML elements should be displayed. This tutorial will teach you CSS from basic to advanced. CSS is the language we use to style an (<a href="https://developer.mozilla.org/ko/docs/Learn/HTML/Introduction_to_HTML/Getting_started">HTML</a>) document. CSS describes how HTML elements should be displayed. This tutorial will teach you CSS from basic to advanced.

</body>
</html>

 

영역 사용 범위를 바꾸고 싶을 때

 

뭔 소린고 하면...

· Block level element를 → Inline element처럼 사용하고 싶다면,

css에서 Block level element특성에 해당되는 곳에 → Inline element요소를 넣으면 됨. 혹은,

· Inline element를 → Block level element처럼 사용하고 싶다면,

css에서 Inline element특성에 해당되는 곳에  Block level element요소를 넣으면 됨.

 

▶예시2

위 예시1을 바탕으로,

· h1에 display:inline;을 삽입해, Block level element를 → Inline element로.

· a에 display:block;을 삽입해, Inline element를  Block level element로.

<!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>box02</title>

  <style>
    /*block level element -> 
    화면의 전체 영역을 사용.
    inline처럼 화면의 일부분만을 사용하고 싶다면, 
    inline요소를 넣어주면 됨.*/
    h1 {
      border-width: 5px;
      border-color: green;
      border-style: solid;
      display:inline;
    }

    /*inline element ->
    화면의 특정 영역만을 사용.
    block처럼 화면 전체를 사용하고 싶다면,
    block요소를 넣어주면 됨.*/
    a {
      border-width: 5px;
      border-color: blueviolet;
      border-style: solid;
      display:block;
    }
  </style>

</head>
<body>

  <h1>CSS</h1> is the language we use to style an HTML document. (<a href="https://developer.mozilla.org/ko/docs/Web/CSS">CSS</a>) describes how HTML elements should be displayed. This tutorial will teach you CSS from basic to advanced. CSS is the language we use to style an (<a href="https://developer.mozilla.org/ko/docs/Learn/HTML/Introduction_to_HTML/Getting_started">HTML</a>) document. CSS describes how HTML elements should be displayed. This tutorial will teach you CSS from basic to advanced.

</body>
</html>


 

 

 

in 연산자 - JavaScript | MDN

in 연산자는 명시된 속성이 명시된 객체에 존재하면 true를 반환합니다.

developer.mozilla.org

 

in 연산자

명시된 속성이 우측에 명시된 객체에 존재하면 → true를 반환시킨다.

 

기본형

속성 in 객체명

 

속성:

속성이나 배열이 온다. 

자세히 말하면 속성의 이름이나, 배열의 인덱스가 온다.

 

객체명:

사용자가 임의로 사용하고자 하는 객체의 이름을 넣는다.


 

▶메소드(method)

· 객체(object)와 속성(property)의 관계와 유사한데...

다만 속성과의 차이점은, 객체의 속성 중 함수 자료형인 모습을 메소드라고 한다.

그러니까 함수 형태의 속성을 메소드라고 생각하면 됨!

· 출력시 점 표기법 대신 대괄호 표기법을 사용할 수 있다.

 

▶기본형

{
  함수명: function () {},
  함수명: function () {},
  함수명: function () {}
}

 

▶예시1

//변수값에 메소드 입력
let greeting = {
  sayHello: function () {
    console.log('Hello!');
  },
  sayHi: function () {
    console.log('Hi!');
  },
  sayBye: function () {
    console.log('Bye!');
  }
};

//출력
greeting.sayHello();

 

▶예시1 - 출력된 결과

Hello!

 

▶예시2

//변수값에 메소드 입력
let greeting = {
  sayHello: function (name) {
    console.log(`Hello! ${name}님!`);
  },
  sayHi: function () {
    console.log('Hi!');
  },
  sayBye: function () {
    console.log('Bye!');
  }
};

//출력
greeting.sayHello('홍길동');

 

▶예시2 - 출력된 결과

Hello! 홍길동님!

 


 

의사 클래스(가상 클래스, pseudo-class)
 

의사 클래스 - CSS: Cascading Style Sheets | MDN

CSS 의사 클래스(가상 클래스)는 선택자에 추가하는 키워드로, 선택한 요소가 특별한 상태여야 만족할 수 있습니다. 예를 들어 :hover를 사용하면 포인터를 올렸을 때에만 글씨 색을 바꾸고 싶을

developer.mozilla.org

▶의사 클래스(가상 클래스, pseudo-class)

· 선택자에 덧붙이고자 할 때 사용하는 키워드

· 요소가 특정 상황(특정 조건을 만족할 때,

예를 들면 마우스 커서가 요소 위에 올려져 있는 경우)에 해당할 때, 효과를 내려면 의사 클래스를 사용한다

· 선택자는 id나 class가 될 수도 있다.

id나 class선택자 뒤 :의사클래스가 붙는다는 말! 하단 예시의 .btn:hover처럼!

 

▶기본형

선택자:의사클래스 {
 속성: 속성값;
}

 

의사 클래스 유형

 

:link · 사용자가 방문한 적 없는 페이지
:visited · 사용자가 한 번이라도 방문한 적이 있는 페이지
:hover · 커서가 요소 위에 올라가 있을 때 나타나는 효과를 설정할 때 사용
:active · 사용자가 활성시킨 요소
· 예를 들어 마우스를 사용하는 경우, 
'활성'은 마우스로 버튼을 누르는 순간부터 떼는 순간까지의 시점에 해당됨
:focus · 선택 받은(집중 받은) 요소
· 보통 마우스로 클릭(한 번만 클릭해도 변경된 효과가 계속 유지되는 경우,
예를 들어 특정 칸을 클릭 했을 때 해당 칸의 색이 변하는 경우)하거나,
키보드 tab키로 해당 요소를 선택했을 경우에 해당됨
:checked  
:enabled  
:disabled  
:target  
:root  

 

의사 클래스 적용 예시

 

▶css에서,

.btn {
  font-size: 1.8rem;
  padding: 1rem;
  width: 20rem;
  text-align: center;
  border: 0.1rem solid #56a5eb;
  margin-bottom: 1rem;
  text-decoration: none;
  color: #56a5eb;
  background-color: white;
}

.btn:hover {
  cursor: pointer;
  box-shadow: 0 0.4rem 1.4rem 0 rgba(86, 185, 235, 0.5);
  transform: translateY(-0.1rem);
  transition: transform 150ms;
}

.btn[disabled]:hover {
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

.btn class선택자에 해당됨

'1-2 css' 카테고리의 다른 글

[css] 폰트  (0) 2021.07.11
[css] <div>, <span>태그_레이아웃 설정하기  (0) 2021.07.09
[css] Block level element, Inline element_박스 기본 영역  (0) 2021.07.08
[css] id, class속성  (0) 2021.07.07
[css] 속성 간략하게 쓰기  (0) 2021.07.05

+ Recent posts