본문 바로가기
TIL

[TIL] CSS 선택자, 가상요소, 우선순위 / Java 클래스, 생성자, this, 인스턴스, static 멤버

by thegreatjy 2023. 10. 10.
728x90

CSS 연산 우선순위

!important : css 최고 우선순위

코드 가장 아래 부분에 있는 css가 적용된다. 이를 고려하지 않고 우선순위를 갖게 하고 싶다면 !important를 사용한다.

<style>
    h1{
        color : yellow !important;
    }
</style>

CSS 적용하기

내부 스타일 시트

html 내부의 style 태그 사용

<style>
    h1{
        color : yellow !important;
    }
</style>

외부 스타일 시트

별도의 .css 파일을 생성

link 태그를 사용하여 html과 .css 파일을 연결

<ㅣink rel="stylesheet" href="css 파일 경로">

인라인 스타일

html 태그 안에서 style 속성에 css 코드 작성

<h1 style="color:red; font-size:24px">제목1</>

선택자

전체 선택자 *

모든 요소를 한 번에 선택자로 지정

<style>
    *{
        color : yellow;
    }
</style>

태그 선택자

<style>
    h1{
        color : yellow;
    }
</style>

아이디 선택자

<style>
    #title{
        color : yellow;
    }
</style>

<h1 id="title">아이디</h1>

클래스 선택자 .

<style>
    .yellow, #title, h1{
        color : yellow;
    }
</style>

<h1 class="red">아이디</h1>

조합 선택자

그룹 선택자

<style>
    .yellow, #title, h1{
        color : yellow;
    }
</style>

자식 선택자 >

.box > p{
    color: red;
}

<h1 class="box">
    <p>문단</p>
</h1>

하위 선택자

div p{
    color: red;
}

<div>
    <p>lorem 1</p>
    <ul>
        <li>
            <p>lorem 2</p>
        </li>
        <li>
            <p>lorem 3</p>
        </li>
    </ul>
</div>

lorem 1,2,3 적용됨

display = block, inline

  • inline
    • 전후 줄 바꿈 없이 한 줄에 나란히 배치
  • block
    • 전후 줄 바꿈이 들어감
    • div, p, h1
  • inline-block
    • 줄바꿈 없이 나란히 배치
    • 상하간격 지정 가능
      • padding, margin, height, width

가상요소

::before, after

선택된 요소의 마지막 자식 가상요소를 생성

div p::before{
    content: '♥';
    color: palevioletred;
}

div p::after{
    content: '♥';
    color: palevioletred;
}

링크

종류 설명
:link 한 번도 방문하지 않은 링크
:visited 한 번 이상 방문한 적 있는 링크
a:link{
    color:orange;
}
a:visited{
    color:green;
}

구조적 가상 클래스 선택자

종류 설명
:first-child, :last-child 첫 번째 자식, 마지막 자식 태그
nth-child(n), nth-last-child n번째 자식 태그, 마지막에서 n번째 자식 태그

CSS 적용 우선순위

선택자 예 (높음>낮음)
인라인 스타일 style=”color:red;”
아이디 #id, #title
가상 클래스 :link, :visited, :hover
클래스 .class, .box
가상 요소 ::before, after
태그 div, p
전체 *

CSS 크기 단위

px, %, em, rem

  • em

    • 상위요소의 몇 배인지 지정

      html { font-size: 16px; }
      body { font-size: 1.5em; } // html 요소 * 1.5 = 16 * 1.5
      .a { font-size: 2.0em; }// body 요소 * 2 = (16 * 1.5) * 2
      
      <body>
      <p class="a">Lorem Ipsum Dolor</p>
      </body>
  • rem

    • html 요소(16px)의 몇 배인지 지정

        .a { font-size: 2.0rem; } // 16 * 2 = 32

객체지향 프로그래밍 OOP 특징

캡슐화

객체의 필드와 메서드를 외부로부터 감추는 것

접근 제한자를 사용한다

상속

부모 객체의 필드와 메서드를 자식 객체에게 물려주어 사용할 수 있도록 한다.

다형성

추상화

클래스

new 연산자

클래스로부터 객체를 생성하려면 객체 생성 연산자인 new가 필요하다.

new 연산자는 객체를 생성시킨 후, 객체의 주소를 리턴한다.

객체의 실제값은 Heap 영역, 객체의 주소값은 Stack 영역에 저장된다.

클래스 구성 멤버

객체의 멤버는 Heap 영역에 저장된다.

Heap 영역에는 객체와 객체의 인스턴스 변수가 저장된다.

필드

변수

객체의 데이터를 저장

생성자

객체 초기화

메서드

객체가 수행할 동작

자료형 기본값

stack에 저장되면 쓰레기값이 들어가지만, 객체는 Heap 영역에 저장되므로 기본값으로 초기화된다.

생성자

Car c = new Car(); //Car()는 생성자를 호출한다.

new 연산자는 객체를 생성한 후, 생성자를 호출하여 객체를 초기화한다.

기본 생성자

클래스에 생성자가 없으면 컴파일러는 기본 생성자를 바이트코드 파일에 자동으로 추가한다.

메모리

ROM

Read Only Memory

RAM

Random Access Memory

레지스터 - 캐시 (SRAM) - 메모리 (DRAM) - Buffer - 보조 메모리

캐시 : static 정적 멤버

메모리 : dynamic

인스턴스 멤버

멤버 : 변수 + 메서드

구분 설명
인스턴스 객체(인스턴스)에 소속된 멤버. 객체를 만들어야지 사용할 수 있는 멤버
정적 static 클래스에 고정된 멤버. 객체 없이도 사용할 수 있는 멤버

객체가 생성되어 야지 인스턴스 멤버를 사용할 수 있다. 객체와 객체의 멤버변수(인스턴스 변수)는 Heap 영역에 생성된다. 객체의 메서드 코드는 메서드 영역에 저장하여 여러 객체가 공유하여 사용할 수 있도록 한다. 중복 저장을 막아 메모리 효율을 높이기 위함이다.

this

객체 내부에서 인스턴스 멤버에 접근하기 위해 사용

객체 자신의 참조

정적 static 멤버

자바는 클래스 로더를 이용해서 클래스를 메소드 영역에 저장하고 사용한다.

정적 멤버는 메소드 영역의 클래스에 고정적으로 위치하는 멤버이다.

정적 멤버는 객체를 생성할 필요없이 클래스를 통해 바로 사용 가능하다.

객체마다 각자 가지고 있을 필요성이 없는 공용적인 필드를 정적 필드로 선언한다.

클래스가 메모리로 로딩되면 정적 멤버를 사용할 수 있다.

따라서 객체 자신의 참조인 this를 사용할 수 없다.


Refs

display

https://www.w3schools.com/css/css_inline-block.asp

java static

https://scshim.tistory.com/205

java 인스턴스 멤버
<이것이 자바다 개정판>

728x90