카테고리 없음

2. 다양한 css선택자

깡출깡충 2024. 6. 13. 16:53
  • 목차 
  • css 다양한 속성의 종류

 

1. 형태구조선택자란?

부모박스 안에 자식(형제) 태그들이 다르게 구성되어 있을 때 사용합니다.

(기본형 예시)
- 선택자 : first-of-type : 부모박스 안에 형제관계 중 첫번째로 위치하는 태그를 선택합니다.
- 선택자 : last-of-type : 부모박스 안에 형제관계 중 마지막에 위치하는 태그를 선택합니다.
- 선택자 : nth-of-type : 부모박스 안에 형제관계 중 첫번째로 위치하는 태그를 선택합니다.
- 선택자 : nth-last-of-type : 부모박스 안에 형제관계 중 뒤에서 숫자또는 수열번째로 위치하는 태그를 선택합니다.

 

css 적용 예시

  <style>
      h1:first-of-type { 부모박스 안에 있는 형제관계 중 첫번로 위치한 아이
        color: thistle;
      }
      
      h2:last-of-type { 부모박스 안에 있는 형제관계 중 마지막에 위치한 아이
        color: tomato;
      }
      
      h3:first-of-type { 부모박스 안에 있는 형제관계 중 첫번째로 위치한 아이
        color: aqua;
      }
      
      p:nth-of-type(2) { 부모박스 안에 형제관계 중 첫번째로 위치한 아이
        color: blue;
      }

 

html 작성 예시

 <div>
      <h1>제목1</h1>
      <h2>제목2</h2>
      <h3>제목3</h3>
      <h3>제목3</h3>
      <h2>제목2</h2>
      <h1>제목1</h1>
    </div>
    
        <div>
      <h1>제목1</h1>
      <p>내용1</p>
      <h2>제목2</h2>
      <p>내용2</p>
      <p>내용3</p>
      <h5>제목5</h5>
    </div>

 

형태구조 선택자 적용해보기


 

2. 상태선택자란?

상태 선택자는 입력양식 태그의 상태를 지정할 때 사용하는 선택자 입니다.

(기본형 예시)
- : checked : 체크박스에 체크가 된 상태의 input태그를 선택합니다.
- : focus : 초점이 맞춰진 input태그를 선택합니다.
- : enabled : 입력 또는 사용이 가능한 상태의 input태그를 선택합니다.
- : disabled : 입력 또는 사용이 불가능한 상태의input태그를 선택합니다.

 

html 작성 예시

 <!--입력이 가능한 상태 -->
    <h2>enabled</h2>
    <p><input type="text" /></p>

    <!--입력이 불가능한 상태 -->
    <h2>disabled</h2>
    <p><input type="text" disabled /></p>

    <!--체크박스-->
    <h2>disabled</h2>
    <p><input type="checkbox" />체크</p>

 

css 적용 예시

<style>
      /* 입력이 가능한 상태의input태그*/
      input:enabled {
        background-color: thistle;
        border: 1px double rgb(239, 178, 241);
        color: cadetblue;
        padding: 5px 10px;
        outline: none;
      }

      /* 입력 양식이 포커스 상태(입력하려고 활성화 된 상태) */
      input:focus {
        background-color: turquoise;
        color: bisque;
      }

      /* 입력이 불가능한 상태 */
      input:disabled {
        border: 1px solid red;
        background-color: aqua;
      }

      input:checked {
        width: 50px;
        padding: 10px;
      }
    </style>

 

상태 선택자 html 작성 예시법

 

상태 선택자 css 적용 예시법


 

3. 시작 문자 선택자란?

시작 문자 선택자는 태그 내부의 첫 글자나 첫 줄을 선택할 때 사용하는 선택자 입니다.

(기본형 예시)
- : : first-letter : 태그 내부의 첫 글자를 선택합니다.
- : : first-line : 태그 내부의 첫 줄을 선택함.

 

시작 문자 선택자 적용하기(많이 사용되진 않는 태그)


 

4. 가상 요소 선택자란?

선택한 태그에 앞이나 뒤에 가상 요소를 만드는 선택자 입니다.
html코드에는 존재하지 않지만 html구조에 가상 요소를 만들어서 스타일을 부여하는 역할입니다.
마치 html코드가 있는 것처럼 스타일링 할때 사용합니다.
가상 요소 선택자로 만들어진 요소는 기본적으로 inline속성을 가집니다.
가상 요소를 만들때는 content속성을 이용합니다.

(기본형 예시)
- :: before : 특정 요소의 앞에 가상 요소를 만들고 내용은 content속성을 넣습니다.
- :: after : 특정 요소의 뒤에 가상 요소를 만들고 내용은 content속성을 넣습니다.

 

css 입력 예시

<style>
      p::before {
        content: 'round';
        display: block;
        width: 150px;
        height: 150px;
        background-color: tomato;
        border-radius: 100%;
        /* text-indent: -999px; */
        font-size: 0;
      }
      p::after {
        content: 'line';
        display: block;
        width: 100px;
        height: 2px;
        background-color: rgb(106, 189, 164);
        border-radius: 100%;
        font-size: 0;
      }

      span::before {
        content: '스판태그의 앞입니다';
        color: violet;
        background-color: slategray;
      }

      span::after {
        content: '스판태그의 뒤입니다';
        color: rgb(161, 255, 211);
        background-color: rgb(236, 122, 122);
      }
    </style>

 

html 작성 예시

  <p>
      Lorem ipsum dolor sit, <span>amet consectetur</span> adipisicing elit. Totam molestiae placeat aliquam, veritatis
      deserunt nobis eveniet ei us animi debitis <span>veniam minus</span> eaque mollitia sequi officiis quas ut libero
      aperiam natus?
    </p>
    <p>
      Lorem ipsum dolor sit, amet<span>consectetur adipisicing</span> elit. Totam molestiae placeat aliquam,
      <span>deserunt nobis eveniet</span>veritatis ei us animi debitis veniam minus eaque mollitia sequi officiis quas
      ut libero aperiam natus?
    </p>

 

가상 요소 속성 적용하기

 


 

5. 배경속성이란?

 

웹 문서를 꾸미기 위해 배경이나 여러 속성들을 적용할 수 있습니다.

 (기본형 예시)
1. background-color : 배경에 색상을 지정합니다. 색상명이나 #hex, rgb또는 rgba와 같은 속성값을 사용합니다.

2. background-image : 배경에 이미지를 넣을 수 있습니다. url()속성값을 사용하며 ()사이에 이미지 경로가 들어갑니다.

3. background-repeat : 배경 반복 여부를 지정합니다. 배경속성은 바둑판 배열로 반복되는 것이 기본값입니다.

4. background-attachment : 배경을 스크롤에 따라 고정할지 같이 스크롤할지 결정합니다.

5. background-position : 배경의 위치를 지정합니다.   center : 배경을 가로나 세로가운데로 정렬합니다.

6. background-size : 배경의 크기를 지정합니다.

 

속성들의 속성값 종류

1. background-repeat 
- no-repeat : 반복하지 않습니다. 불러온 배경 이미지를 1번만 보여줍니다.
- repeat-x : 배경이미지를 가로로 반복합니다.
- repeat-y : 배경이미지를 세로로 반복합니다.

2. background-attachment
- fixed : 스크롤에 따라 움직이지 않고 제자리에 고정합니다.
- scroll : 기본값으로 스크롤이 움직이면 배경이 위로 올라갑니다.

3. background-position
- px
- left :영역의 왼쪽으로 정렬합니다.
- center : 배경을 가로나 세로가운데로 정렬합니다.
-right : 영역의 오른쪽으로 정렬합니다.
- top : 영역의 위로 정렬합니다.
- bottom : 영역의 아래로 정렬합니다.

4. background-size
- px / % - cover : 배경 이미지를 가로 영역에 맞춰 채웁니다.
- contain : 배경 이미지를 세로 영역에 맞춰 채웁니다.

 

html 작성 예시

<div class="back1"></div>
<div class="back2"></div>
<div class="back3"></div>

 

css 입력 예시

.back1 {
      margin: 40px;
      width: 500px;
      height: 300px;
      /* 배경 이미지 불러오기 : 먼저 불러온 이미지가 앞으로 옵니다 */
      background-image: url(./img/icon.png), url(./img/ggg.jpg);
      background-color: antiquewhite;
      background-size: 10%;
      background-repeat: repeat-x;
      background-repeat: repeat-y;
      background-repeat: no-repeat;
      background-position: 100px 50px;
      background-position: center center;
      background-size: cover;
    }
    .back2 {
      margin: 40px;
      width: 50vw;
      height: 300px;
      background: url(./img/ggg.jpg) no-repeat;
      background-color: rgb(216, 215, 216);
      /* 영역의 가로 사이즈에 맞춰서 이미지를 정비율로 100% 채움 */
      background-size: 100%;
      background-size: cover;
      background-position: center bottom;
      /* background: url(주소) 반복여부 가로위치 세로위치 컬러/사이즈; */
    }
    /* 대부분 이미지의 비율을 맞출 때 cover를 많이 사용합니다. */

    .back3 {
      width: 2000px;
      height: 200px;
      background-color: turquoise;
      background-image: url(./img/ggg.jpg);
      background-size: 100%;
      background-position: center center;
      background-attachment: fixed;
      color: #fff;
      text-align: center;
      box-sizing: border-box;
      padding: 120px 40px;
    }

    .back3 > h2 {
      font-size: 30px;
      margin-bottom: 20px;
    }

    .back3 p {
      font-size: 18px;

 

배경속성 적용해보기

 

속성값이 너무 많기 때문에 많은 연습이 필요할 것 같습니다.

 

6. 다양한 색상 표현

투명도를 조절하는 opacity와 alpha

컨텐츠에 투명도를 적용하고 싶을 때 opacityalpha를 이용할 수 있습니다.
투명도는 0~1까지의 값을 입력할 수 있고, 소숫점단위로 투명도를 조절할 수 있습니다.
0이 완전 투명한 상태를 뜻하며 1이 완전히 선명한 상태를 의미합니다.
opacity의 경우 영역안에 포함 된 border, 컨텐츠까지 모두 투명하게 만들고 alpha의 경우 컨텐츠와 border를 제외한 배경영역만 투명하게 만듭니다.

(기본형 예시)
- opacity : 0~1; => opacity는 '속성명'
예시) background-corlor : rgba(red,green,blue,alpha); alpha는 '속성값'

 

opacity와 alpha 적용하기 위한 html 작성 예시

<div class="box1">box1</div>
<div class="box2">box2</div>

 

opacity와 alpha css 적용 입력 예시

<style>
      div {
        width: 300px;
        height: 300px;
        border: 5px solid;
        font-size: 30px;
        text-align: center;
        line-height: 300px;
        margin: 30px;
      }
      /* opacity */
      .box1 {
        background-color: thistle;
        opacity: 0.5;
      }
      /* alpha */
      .box2 {
        background-color: rgba(216, 191, 216, 0.5);
      }
    </style>

 

opacity와 alpha 적용하기


 

7. 그라디언트란?

 

배경 색상이나 글자에 그라데이션을 적용하실 수 있습니다.
배경에 적용할 경우 background-image속성을 이용하며 글자를 적용할 경우 color에 적용합니다.


1. linear-gradient : (각도 to 방향, 색상중단점1 시작위치%, 색상중단점2 시작위치%...)
(방향 종류)
- to top : 아래에서부터 위로 그라데이션을 적용합니다.
- to left : 오른쪽에서 시작해 왼쪽으로 적용합니다.
- to right : 왼쪽에서 시작해 오른쪽으로 적용합니다.
- to bottom : 위에서부터 아래로 그라데이션을 적용합니다.

2. radial-gradient : (최종모양 크기 at 위치, 색상중단점1 시작위치%, 색상중단점2 시작위치%... )

(최종 모양)
- ellipse : 타원
- circle : 정원   

(크기)
- closet side : 정원의 경우 그라디언트 가장 자리가 그라디언트 중심에서 가장 가까운 요소에 모서리랑 만나고
타원의 경우 그라디언트 중심에서 가장 가까운 요소의 수평축이나 수직축이랑 만남니다.


 

html 작성 예시

    <div></div>
    <div class="round"></div>

 

css 적용 예시

    <!-- css -->
    
    <style>
      div {
        width: 100%;
        height: 200px;
        background-image: linear-gradient(90deg, #fad0c4 0%, #ffd1ff 100%);
      }
      
      .round {
        width: 500px;
        height: 300px;
        background-image: radial-gradient(circle, #e0c3fc 0%, #aded7c 30%, #8ff 10%);
      }
    </style>

 

그라디언트 적용해보기

 

그라디언트 추천 사이트

https://webgradients.com/

 

Free Gradients Collection by itmeo.com

Free collection of 180 background gradients that you can use as content backdrops in any part of your website.

webgradients.com

사용 방법은 원하시는 그라디언트 효과를 정하신 후 오른쪽 하단에 copy cs 클릭하시고 css 파일로 돌아가셔서 컨트롤+v 

 

마무리

오늘은 지난 시간에 이어 css의 다양한 속성들에 대해 배워보았는데요!
정말 많은 속성들과 값들이 있어서 정말 오랜시간에 걸쳐 복습하고 
또 복습을 해야할 것 같습니다:)

주변 개발자 분들의 이야기를 들어보면 코딩은 평생 공부를
해야 한다는 말이 있더라구요!
첨엔 '에이 그정도로 어렵다고?'라고 생각했는데 정말이였어요ㅠ
정말 현재 모든 개발자 분들이 세삼 대단하게 느껴지는 요즘입니다.

저와 같은 초보자분들이 있으시다면 계속해서 블로그 올려드릴테니
저와 함께 공부해 보아요!

오늘 남은 시간도 항상 화이팅 하시길 바랍니다🥰