의사 클래스(가상 클래스, 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


 

▶서체

font-family: '배달의민족 한나';

 

▶서체 상태(폰트 스타일)

font-weight: bold;

· normal, bold, italic 등 가능

 

▶폰트 색상

color:red;

· 딱히 앞에 font를 붙인다든가 하지는 않음

 

▶폰트 크기

font-size: 2em;

· em, px, % 등 가능

 

▶자간

letter-spacing: 2pt;

· 음수(-)도 적용 가능

· pt, px 등 가능

 

▶행간

line-height: 180%;

· pt, px, % 등 가능

 

▶단어간 간격

word-spacing: 2pt;

· pt, px 등 가능


 

▶생활코딩 WEB2 CSS - 10. 그리드 소개

매우우우우우 중요! 헷갈려서 정리할 겸 기록해 둠.

대체 화면 분할은 어떻게 하고, 선는 또 어떻게 넣는 건지 궁금했는데

css 역할이 이리 중할 줄이야....

 

일단 css가 활약할 수 있는 토대를 마련하려면

먼저 html에서 레이아웃을 나눠야 하는데, 이를 위해서는 각각의 영역 설정이 중요하다.

 

해서 영역을 설정하기 위한 <div>, <span>태그들과 

설정시킨 영역에 속성값을 부여시키기 위한 id, class 등의 속성의 역할이 크다.

그러니까 html에서 <div>, <span>태그를 통해 영역을 구분하고 → 이를 css에서 활용함!

 

html의 태그들이지만 css로 분류해 정리하는 이유는,

<div>, <span> 모두 자체만으로는 큰 영향력이 없고, css와 결합했을 때 존재 의의가 극대화되기 때문.

 

▶id, class속성 참조

 

[css] id, class속성

html의 class속성 ≠ 자바스크립트의 class 보면 사용되는 곳이 엄밀히 다른데, 명칭이 같아 헷갈리는 것들이 있다. 말 나온김에 몇 가지 정리해보자면, (html의) 태그 · anchor의 약자 · 링크 역할 (css

vvvictory2.tistory.com

 

<div>, <span>태그

 

▶영역 분할하기

<div>태그 <div></div> · block eliment이기 때문에, 기본적으로 화면 전체를 사용함
<span>태그 <span></span> · inline eliment이기 때문에, 기본적으로 화면의 일부분만을 사용함

html에서, 

전체적인 틀을 나누는데는 <div>태그를 이용하고,

텍스트의 일부만을 지정하는 등 부분을 선정해 꾸미고자 할 때는 <span>태그를 이용한다.

 

▶참고로

<div>, <span>태그 자체가 박스 영역을 얼마나 차지하는지 보여주자면...

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

  <style>
    div {
      border:5px solid gray;
    }  
    span {
      border:5px solid red;
    }
  </style>

</head>
<body>

  <div>HONG</div> 
  <div>GILDONG</div>
  
  <span>HONG</span> 
  <span>GILDONG</span>

</body>
</html>

 

예시

 

<!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>그리드01</title>

  <Style>
    #grid1 {
      display: grid;
      grid-template-columns: 150px 1fr;
    }
    #grid1 #grid2 {
      padding-left: 35px;
    }
    body {
      margin:0;
    }
    a {
      color: black;
      text-decoration: none;
    }
    h1 {
      font-size: 100px;
      text-align: center;
      border-bottom: 5px solid  gray;
      margin:0;
      padding:20px;
    }
    #grid1 ol {
      border-right: 3px solid gray;
      width:100px;
      margin:0;
      padding:20px;
      padding-left: 40px;
    }  
  </Style>

</head>
<body>
  
  <h1><a href="index.html">WEB</a></h1>
 
  <div id="grid1">
    <ol>
      <li><a href="1.html">HTML</a></li>
      <li><a href="2.html">CSS</a></li>
      <li><a href="3.html">JavaScript</a></li>
    </ol>
    <div id="grid2">
      <h2>CSS</h2>
        <P>
          CSS is the language we use to style an HTML document. CSS 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 HTML document. CSS describes how HTML elements should be displayed. This tutorial will teach you CSS from basic to advanced.
        </P>
    </div>
   </div> 

</body>
</html>

 

여기서 포인트는

<div>로 분할시킨(묶은) 영 id를 이용해 속성값을 부여시킴.

<div id="grid1"></div>
<div id="grid2"></div>

  <div id="grid1">
    <ol>
      <li><a href="1.html">HTML</a></li>
      <li><a href="2.html">CSS</a></li>
      <li><a href="3.html">JavaScript</a></li>
    </ol>
    <div id="grid2">
      <h2>CSS</h2>
        <P>
          CSS is the language we use to style an HTML document. CSS 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 HTML document. CSS describes how HTML elements should be displayed. This tutorial will teach you CSS from basic to advanced.
        </P>
    </div>
   </div>

 

이후, css(html의 <style>태그 내)에서 id 속성값을 불러와 해당 영역을 꾸몄다.

    #grid1 {
      display: grid;
      grid-template-columns: 150px 1fr;
    }
    #grid1 #grid2 {
      padding-left: 35px;
    }
    #grid1 ol {
      border-right: 3px solid gray;
      width:100px;
      margin:0;
      padding:20px;
      padding-left: 40px;
    }

 

▶여기서,

    #grid1 {
      display: grid;
      grid-template-columns: 150px 1fr;
    }

150px 1fr;이 뭔고 하면...

fr은 화면비율을 의미함. 예를 들어,
150px 1fr 150px와 나머지화면
1fr 1fr 화면비율 1:1
2fr 1fr 화면비율 2:1

 

▶요 부분의 경우,

    #grid1 #grid2 {
      padding-left: 35px;
    }

#grid1 #grid2의 경우,

(#grid1의 휘하에 있는) #grid2 요걸 의미한다.

 

▶여기서의

    #grid1 ol {
      border-right: 3px solid gray;
      width:100px;
      margin:0;
      padding:20px;
      padding-left: 40px;
    }

#grid1 ol은,

(#grid1의 휘하에 있는) ol 요걸 의미함.

 

어디 밑에 있는 누구라고 명확하게 명시해 주는 편이 좋다.

만약 구분하지 않고 그냥 ol 요것만 적는다면, 

컴퓨터는 ol전체를 지정한 것으로 인식한다.

만약 코드가 길어질 경우 수정할 생각을 하면 끔찍함. 혼선을 피하기 위해 명확하게 구분 해두자.

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

[css] 의사 클래스(가상 클래스, pseudo-class)  (0) 2021.08.06
[css] 폰트  (0) 2021.07.11
[css] Block level element, Inline element_박스 기본 영역  (0) 2021.07.08
[css] id, class속성  (0) 2021.07.07
[css] 속성 간략하게 쓰기  (0) 2021.07.05


 

 

▶생활코딩 WEB2 CSS - 8. 박스 모델

진작 제대로 봤으면 테이블 태그 예시나 기념일 만들기를 할 때, 

쓸데없이 많은 시간을 보내진 않았을 것 같다...^^...

그 때 웹의 elements에서 바로바로 확인했던 게 아니라서

수정리로드수정리로드...를 반복하며 정말 덧없이 시간을 흘려보냈음.

 

영역 사용 범위

 

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>

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

[css] 폰트  (0) 2021.07.11
[css] <div>, <span>태그_레이아웃 설정하기  (0) 2021.07.09
[css] id, class속성  (0) 2021.07.07
[css] 속성 간략하게 쓰기  (0) 2021.07.05
[css] 선택자(Selector), css의 속성(Property)  (0) 2021.06.25


 

html의 class속성 ≠ 자바스크립트의 class

보면 사용되는 곳이 엄밀히 다른데, 명칭이 같아 헷갈리는 것들이 있다.

 

말 나온김에 몇 가지 정리해보자면,

(html의)
<a>태그
· anchor의 약자
· 링크 역할
(css의)
a
· all의 약자
· 전부를 의미
· 태그 아님!
<style>태그 · html내에서 태그로써 쓰임
· 예시 <Style>a {color: green;}</Style>
style속성 · 예시 <a href="2.html" style="color:red">CSS</a>

만약... 틀렸다면 추후 수정하는 것으로. 지식을 좀 더 쌓은 후에....

아무튼 class속성을 처음 접했을 땐, 자바스크립트의 class가 생각났음.

 

id, class속성 모두 html에서 먼저 지정시켜야 하는, html의 속성임에도,

css에서 정리하는 이유는 css에서야 두 속성이 빛을 발하기... 때문임. 

 

id, class속성

 

id속성

html에서 지정시킬 때 id="속성값"
css(혹은 html의 <style>태그 내)에서 불러올 때 #속성값 {}

 

class속성

html에서 지정시킬 때  class="속성값"
css(혹은 html의 <style>태그 내)에서 불러올 때 .속성값 {}

 

▶정리해서 비교하면,

· html에서 지정시킨 속성값 css에서 가져오는 법

id="속성값" #속성값 {}
class="속성값" .속성값 {}

· id, class를 각자 어느 상황에서 쓰냐면,

id · id 하나 당, 하나의 정체성만을 가짐 (고유값)
· 태그 하나 당 id속성 하나를 사용한다. 이미 한 번 적용시킨 id는 다른 태그에 또 사용할 수 없음. 
· 단, id에 부여시킨 속성값이 제각기 다르다면 하나의 태그에 여러 id가 올 수 있다.
중요한 건, 같은 속성값을 가진 id를 다른 태그에 중복해 사용할 수 없다는 것!
class · 하나의 class를 여러 곳에 쓸 수 있음 (그룹화)
· 여러 태그에 class속성을 중복해 사용할 수 있다.

 

선택자 우선순위: id > class > 태그선택자

· 태그선택자 예시: a, h1 등

· 같은 유형의 선택자일 경우, 

css에서 가장 마지막에 있는(가장 밑에 위치한) 선택자 일수록 → 우선순위가 높음

 

▶예시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>속성01</title>

  <Style>
    a {
      color: black;
      text-decoration: none;
    }
    h1 {
      font-size: 100px;
      text-align: center;
    }
    .test {
      color: red;
    }
  </Style>

</head>
<body>

  <h1><a href="index.html">NAME</a></h1>
  <ol>
    <li><a href="1.html" class="test">HONG</a></li>
    <li><a href="2.html" class="test">GIL</a></li>
    <li><a href="3.html">DONG</a></li>
  </ol>
  
</body>
</html>

 

▶예시2

<!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>속성02</title>

  <Style>
    a {
      color: black;
      text-decoration: none;
    }
    h1 {
      font-size: 100px;
      text-align: center;
    }
    .test {
      color: gray;
    }
    #test2 {
      color: red
    }
    #test3 {
      color:cornflowerblue
    }
  </Style>

</head>
<body>
  
  <h1><a href="index.html">NAME</a></h1>
  <ol>
    <li><a href="1.html" class="test">HONG</a></li>
    <li><a href="2.html" class="test" id="test2">GIL</a></li>
    <li><a href="3.html" id="test3">DONG</a></li>
  </ol>

</body>
</html>

 

+) html 내부 링크

 

WOW... 깜짝 놀랐다.

id 속성값(#속성값)을 불러올 수 있는 곳이 css 뿐 만 아니라, html 내(<body>태그 내)에서도 사용 가능함.

예를 들어 <a>태그와 결합해 <body>태그 내에서 사용할 경우,

링크를 타고 html 내에서 이동하는(본문에서 본문으로 이동하는) 내부 링크가 가능하게 된다.

 

+ Recent posts