2010. 4. 2. 18:13
정적인 가상 class

링크에 대한 가상 class

:link
아직 방문하지않은 앵커
:visited
이미 방문한 앵커

예) a:visited { color : red;}
      방문한 앵커의 색깔을 red로 바꾼다.

첫번째 자식 요소에 대한 가상 class

:first-child
아무 element나 첫 번재 자식관계에 해당하는 element를 선택한다

예) <div>
      <a href="#">click</a>
      </div>
      
      a:first-child { font-weight : bold;}
      아무 element(여기선 div element)의 첫번째 자식 관계인 element가 a 이므로 해당하는 a의 글씨에 bold효과를 준다.

언어를 이용한 가상 class

:lang
사용된 언어를 기반으로 선택한다. 특정속성 선택자인 |= 와 같은방식으로 동작한다.

예) *:lang(en) { font-style : italic;}
      영어로 작성된 모든 elemenet에 italic효과를 준다.


동적인 가상 class

:focus
현재 focus를 갖고있는 element
:hover
마우스 포인터가 위치해 있는 element
:active
입력에 의해 active된 element

예) a:link { color : navy;}
      방문하지않은 앵커의 색깔을 navy로 한다.
      a:visited { color : gray;}
      방문한 앵커의 색깔을 gray로 한다.
      a:hover { color : red;}
      현재 마우스포인터가 올라와있는 앵커의 색깔을 red로 바꾼다.
      a:active { color : yellow;}
      입력에 의해 앵커가 활성화된경우 앵커의 색깔을 yellow로 바꾼다.

      처음 두개는 정적인 가상 class를 이용했고, 아래 두가지는 동적인 가상 class를 이용한다.
      요즘의 추세는 [link-visited-focus-hover-active] 순으로 바뀌고 있지만,
      일반적으로는 [link-visited-hover-active]순서로 사용하는것을 권장한다.

동적인 가상 class는 element의 종류에 상관없이 적용된다.

가상 class는 조합해서 사용이 가능하다

예) a:link:hover { color : maroon;}
      방문하지 않은 링크 위에 마우스가 위치할때 색깔을 maroon으로 변경한다.

가상요소 선택자

첫 번째 글자에 스타일 지정

:first-letter

예) p:first-letter { color : white;}
      p태그의 첫 번째 글자색을 white로 바꾼다.

첫 번째 줄에 스타일 적용하기

:first-line

예) p:first-line { color : red;}
      p태그의 첫 번째 줄 글자색을 red로 바꾼다.

:first-letter와 :first-line은 inline elemement에선 사용이 불가능하고 block element에만 사용할수 있다.

또한 모든 가상요소는 선택자의 끝에서만 사용될 수 있다.

예) p:first-line strong
      가상요소가 끝에오지않고 앞에왔으므로 유효하지 않다.

요소의 앞,뒤에 스타일 적용하기

:before
element앞에 효과를 적용한다.
:after
element뒤에 효과를 적용한다.

예) h1:before { content : "*"}
      h1앞에 *을 덧붙인다.
      h1:after { content : "!"}
      h1뒤에 !을 덧붙인다.

'공부 > Cascading Style Sheets' 카테고리의 다른 글

상속  (0) 2010.04.03
구체성  (0) 2010.04.03
문서 구조 선택자  (0) 2010.04.02
선택자  (0) 2010.04.02
대체 스타일시트  (0) 2010.04.02
Posted by terebyte
2010. 4. 2. 17:37



부모-자식 관계
element가 한 단계로 관계되어있는경우를 부모-자식관계라고 한다.
예) head-title, body-p, p-strong, ol-li

조상-자손 관계
element가 두 단계 이상으로 관계되어있는경우를 조상-자손관계라고 하며, 그때부터 부모-자식관계는 이루어질수 없다.
예) html-li, body-a, ul-ol

자식선택자 -> >
p > strong {color : red;}
p태그 아래의 strong태그의 색깔을 red로 바꾼다.

자손선택자 -> 공백
p a {font-weight : bold;}
p태그아래의 a태그의 글씨에 bold효과를 준다.

인접형제선택자 -> +
p + h1 {color : blue;}
p태그와 그에 인접한 형제관계인 h1태그의 색깔을 blue로 바꾼다.


'공부 > Cascading Style Sheets' 카테고리의 다른 글

구체성  (0) 2010.04.03
가상클래스와 가상요소 선택자  (4) 2010.04.02
선택자  (0) 2010.04.02
대체 스타일시트  (0) 2010.04.02
link 태그  (1) 2010.04.02
Posted by terebyte
2010. 4. 2. 11:37
class 선택자
<p class="important">terebyte</p>
p.important { font-weight : bold;}

class가 important인 p태그의 글씨에 bold효과를 준다.

다중class ->  .
<p class = "important wintercrew kwu">terebyte</p>
<p class = "important wintercrew ssu">winterclue</p>

p.wintercrew { font-weight : bold;}
class가 wintercrew인 p태그의 글씨에 bold효과를 준다.

p.wintercrew.important { font-style : italic;}
class가 wintercrew와 important모두 포함된 p태그의 글씨에 italic효과를 준다.

p.kwu.important { background : blue;}
class가 kwu와 important모두 포함된 p 태그의 글씨의 배경색을 blue로 준다.

이와 같이 다중 class를 사용할경우 class 선택자를 연결할때 순서는 전혀 상관이 없다.

id 선택자  -> #
<p id="terebyte">terebyte</p>

p#terebyte { font-weight : bold;}
id가 terebyte인 p태그의 글씨에 bold 효과를 준다.


class와 id의 차이점
HTML문서에서 class는 중복해서 사용이 가능하지만 id는 중복사용이 불가능하다.

유효
<p class="wintercrew">terebyte</p>
<p class="wintercrew">winterclue</p>

유효하지않음
<p id="wintercrew">terebyte</p>
<p id="wintercrew">winterclue</p>


속성 선택자
img[alt] { border : 2px solid blue;}
alt속성이 있는 img태그에 테두리효과를 준다.

마찬가지로 속성여러개를 동시에 사용할수도있으며 정확하게 속성값을 지정할수도 있다.

a[class][href] { font-style : italic;}
class속성과 href속성이있는 a태그의 글씨에 italic효과를 준다.

a[href="wintercrew-official.com"] { font-weight : bold;}
href속성이 wintercrew-official.com인 a태그의 글씨에 bold효과를 준다.

하지만 이방식은 정확한 속성값을 요구해서 공백으로 분리된 목록을 값으로 가지는 속성들과 사용할때는 문제가 생긴다.

<p class="wintercrew kwu">terebyte</p>

p[class="wintercrew kwu"] {font-style : italic;}
class속성이 wintercrew kwu인 p태그의 글씨에 italic효과를 준다.

p[class="wintercrew"] {font-weight : bold;}
class속성에 wintercrew가 포함된 p태그의 글씨에 bold효과를준다.

라는 의미로 썼지만 이경우는 해당이 되지않는다.
위와 같은 의미로 사용할경우

p[class~="wintercrew"] {font-weight : bold;}
다음과 같이 ~ (틸데기호)를 사용해야한다.

이러한 부분 속성값으로 선택할때 사용하는기호가 몇가지 있다.

attribute ^= "value" 속성이 value로 시작하는 요소
attribute $= "value" 속성이 value로 끝나는 요소
attribute *= "value "속성에 value가 포함되는 요소


특정 속성 선택자

<p class="wintercrew">wintercrew</p>
<p class="winterclue">winterclue</p>

p[class |= "winter"] {font-weight : bold;}
이 선택자는 class속성이 winter이거나 winter로 시작되는 요소를 선택해준다.
따라서 위의 두 p태그모두의 글씨에 bold효과를 준다.





'공부 > Cascading Style Sheets' 카테고리의 다른 글

가상클래스와 가상요소 선택자  (4) 2010.04.02
문서 구조 선택자  (0) 2010.04.02
대체 스타일시트  (0) 2010.04.02
link 태그  (1) 2010.04.02
element  (1) 2010.04.02
Posted by terebyte