Day43 :) CSS, 아이디, 클래스, 선택자

Nux·2021년 11월 5일
0

자바웹개발

목록 보기
45/105
post-thumbnail
post-custom-banner

CSS

  • Cascading Style Sheets
  • 웹브라우져의 화면 혹은 여러 미디어에 어떻게 표현될지를 정의하는 언어
  • HTML문서의 디자인적 요소를 담당

적용방법

inline

  • 태그에 바로 CSS를 지정하는 방식
  • 많을수록 유지보수가 어려우므로 되도록 지양해야함
<h1 style="color: red;">내용</h1>
<!-- 해당 태그에만 스타일 적용 -->

internal

  • 하나의 페이지에 적용할 스타일 정의시 사용
  • 헤더부분의 <style>부에 적용
<head>
	<style>
    	div {border: 2px solid green;}
	</style>
</head>
<body>
	<div>
    	<h1>스타일이 적용되는 부분1</h1>
    </div>
    <div>
    	<h2>스타일이 적용되는 부분2</h2>
    </div>
</body>

external

  • 프로젝트의 모든 HTML문서에 스타일을 적용할 때 사용
  • 많은 페이지에 동일한 스타일 적용 가능
  • .css 파일을 따로 작성한 후 link태그를 이용하여 html문서로 불러옴
1. .css파일
h1 {color:red; font-size:12px;}
p {margin: 10px; padding:6px;}
2. html파일
<link rel="stylesheet" type="text/css" href="css파일 경로">

아이디

1. 아이디 지정
<태그 id = "아이디명">

2. 아이디 호출
#아이디명
  • 고유한 값을 가진 엘리먼트 식별용 선택자
  • 한가지 태그에 한번만 부여 가능

클래스

1. 클래스 지정
<태그 class = "클래스명">

2. 클래스 호출
.클래스명
  • 한 페이지에서 반복적으로 사용되는 스타일 정의
  • 같은 클래스값을 가진 태그들이 여러 개 있을 수 있음

선택자

  • 스타일을 입힐 요소를 선택할 수 있게 해주는 문자

기본 선택자

선택자예시설명
태그p{}모든 p엘리먼트 선택
#id#first-section{}id="first-section"엘리먼트 선택
.class.news{}class="news"인 모든 엘리먼트 선택
*{}모든 엘리먼트 선택
태그, 태그p, h1{}모든 p, h1 엘리먼트 선택
태그, .classp, .news{}모든 p, class="news" 엘리먼트 선택
태그.classh1.news{}모든 <h1 class="news">엘리먼트 선택
.class.class.news.ent{}class="news ent"인 엘리먼트 선택(다중선택자)
.class1, .class2, .class3.news, .ent, .hot{}class="news","ent", "hot"에 적용됨(클래스 한개, 두개씩 따로 적용도 가능)

자손,자식,형제 선택자

  • 공백에 절대 주의
상위요소 하위요소예시상위 요소 내부의 하위요소 엘리먼트 선택
태그 태그div p{}div엘리먼트 내부의 p 엘리먼트 선택
.class .class.news .ent{}class="news"의 class="ent" 하위항목(자식, 후손) 선택

부모요소 > 자식요소예시부모요소의 자식요소 엘리먼트 선택
태그 > 태그div > p{}div의 자식인 p 엘리먼트 선택(자식만)
.class > 태그.news > p{}class="news"의 자식인 p 엘리먼트 선택(자식만)
.class > .class.news > .entclass="news"의 자식인 class="ent" 엘리먼트 선택(자식만)
#id > 태그#first > p{}id="first"의 자식인 p엘리먼트 선택(자식만)
#id > .class#first > .newsid="first"의 자식인 class="news"선택(자식만)

요소1 + 요소2예시요소1과 같은 부모를 가진 인접한 형제인 요소2 선택
태그 + 태그h3 + p{}h3에 인접한 형제 p 선택
.class + .class.ent + .sportsclass="ent"에 인접한 형제 class="sports" 선택
  • 요소2는 요소1 바로 뒤에 와야함
  • 같은 요소가 있어도 하나만 선택됨

요소1 ~ 요소2예시인접하지않은 모든 요소2를 선택
태그 ~ 태그h3 ~ p{}h3엘리먼트 다음에 있는 모든 p엘리먼트 선택
  • 요소2와 요소1은 인접할 필요 없음
  • 같은 요소가 있으면 모두 선택됨

속성 선택자

<a href="www.naver.com" title="네이버홈">네이버</a><a href="www.daum.net" title="다음 홈">다음</a><a href="google.com" title="google">구글</a>
선택자예시설명
[속성][href]href 속성을 가진 모든 엘리먼트(㉠,㉡) 선택
[속성명="속성값"][title="google"]title이 google인 엘리먼트(㉢)선택. 속성값이 내용과 완전히 일치해야함
[속성명^=속성값][href^="www"]href가 www로 시작하는 엘리먼트(㉠,㉡,㉢)선택
[속성명$="kr"][href$="com"]href가 com으로 끝나는 엘리먼트(㉠,㉢) 선택
[속성명*="속성값"][title*="홈"]title에 '홈'을 포함하고 있는 엘리먼트(㉠,㉡) 선택
[속성명~="속성값"][title~="홈"]title에 '홈'이라는 단일 문자를 포함하고있는 엘리먼트(㉡) 선택

필터 선택자

선택자예시설명
:first-childp:first-childp의 첫번째 자식 엘리먼트 선택
:last-childp:last-childp의 마지막 자식 엘리먼트 선택
:nth-child(n)p:nth-child(n)p의 n번째 자식 엘리먼트 선택
:not(selector)p:not(:first-child)p의 첫번째 자식이 아닌 엘리먼트 선택
post-custom-banner

0개의 댓글