2012-03-04 4 views
2

탐색 메뉴에서 : first-letter 의사 요소를 사용하려고합니다.: li 요소의 첫 글자

HTML과 같은 :

<nav> 
    <ul> 
     <li>Navigation</li> 
     <li>Navigation</li> 
     <li>Navigation</li> 
     <li>Navigation</li> 
    </ul> 
</nav> 

그리고 CSS와 같은 :

nav li:first-letter {font-size: 150%;} 

나는 또한 어떤 도움을

nav ul li:first-letter {font-size: 150%;} 

을 시도했습니다.

나는이에 조정하면 나는 <ul> 태그의 첫 번째 요소에 대한 작업을 볼 수 있습니다 여전히

nav ul:first-letter {font-size: 150%;} 

하지만 정확히 내가 원하는 것을 얻을 수 없다; <li>의 인라인은 첫 번째 문자가 다른 문자보다 큽니다.

+0

구문 힌트를 주셔서 감사합니다. @BoltClock. –

답변

2

당신의 li 요소가 모두 (이 표시 아니에요 display: inline 스타일을 가지고 가정) 인라인 흐르는되기 때문에 :first-letter 의사 요소는 인라인 텍스트의 전체 덩어리 밖으로 매우 첫 글자를 선택합니다. 따라서 ul:first-letter이 작동하지만 li:first-letter은 작동하지 않습니다.

대신 목록 항목을 인라인 블록으로 만들어보십시오. 따라서 상자 자체는 인라인으로 이동하면서 자신의 상자에 텍스트가 계속 포함됩니다. 필요한 경우 여백과 패딩을 제로로하십시오. 브라우저에서 생성 된 "그림자"마크 업 단지 다른 요소를 삽입으로

jsFiddle demo

+0

완벽 하 고, 정말 고마워요, 이것은 정확히 내가보고있는 것입니다. 나는'display : inline-block; '도 작동한다는 것을 깨닫지 않았다. –

+0

(편집) (snips) 죄송합니다. 덧붙인 설명은 연속성보다 다른 새로운 질문처럼 보였습니다 ... –

1

는 것 같다.

뭔가 같은 :

<p><p:first-letter>H</p:first-letter>ello</p> 

당신은 인라인 블록 및/또는 블록 요소와 :first-letter 선택을 시도 했습니까?

display:block을 추가하면 정상적으로 작동합니다.

+0

"그림자"마크 업을 따르지 않습니다 ... –

+0

나는 그가 단지 의사 요소 작업. 그렇다면이 대답은 그 요점을 완전히 놓치고 있습니다. – BoltClock

+0

글쎄, 실제로 그림은 의사 선택기를 사용하면 인라인 요소가 자동으로 생성되는 방법을 보여줍니다. 글꼴 크기가 부모 요소에 절대적인 것이 아니므로 글꼴 크기가 각 상속 된 수준의 크기에 두 배가되므로 글꼴 크기가 질문자의 주어진 문제이므로이 지점을 완전히 누락하는 이유를 모르겠다. –

2

첫 번째 CSS 스 니펫이 정상적으로 작동합니다 (this fiddle 참조). 그것을 덮어 쓰는 다른 CSS 규칙이 있어야합니다.