2010-12-14 37 views
6

有大寫字母/字母/單詞的CSS假選擇器嗎?我希望我所有的首都都是小一點,所有其他角色的大小都一樣。首都不是句子(或單詞)的第一個字符,反之亦然。大寫字母/單詞的僞選擇器?

或者也許有另一種方法來在CSS中找到這些字符?有一個竅門?我喜歡花招。

回答

3

那麼,有支持不佳的first-letter選擇器,但這不是你想要的。

你當然也可以在PHP中預分析你的HTML,將所有大寫封裝在<span class="capital"></span>標籤中,但這是一種破解。

然後,當然你總是可以拿出魔術jQuery兔子,並在文檔加載時改變你的DOM以包含跨度。這也是一個黑客。你喜歡黑客嗎?

讓我們看看還有誰變成了一個魔術:-)

+0

我喜歡黑客,但不是jQuery和JavaScript不固定風格的東西。在PHP中進行準備是個好主意。好東西,我使用PHP :) – Rudie 2010-12-16 17:45:24

1

我不認爲這是可能的。

更好的做法是用大小寫的大寫字母來包裝大寫字母,然後用它來設計風格。

1

這是不可能的使用CSS。

您可以使用Javascript來檢查文本中所有字符的大寫字母(例如,通過使用if (yourtext == yourtext.toUpperCase())),然後在它們周圍包含一個<span>,其中包含您的CSS以對其進行樣式設置。

或者一些圍繞這些線:(?也許有人來創建這個的jsfiddle的時間)

function wrapCaps() { 
    var text = document.getElementById("my_text").value; 
    for(i=0; i < text.length; i++) { 
     if(text[i].charCodeAt(text[i]) >= 65 && text[i].charCodeAt(text[i]) <= 90) 
     wrapNode(text[i], 'span'); 
    } 
} 

我沒有嘗試它,你可能需要使用replaceNode或類似的東西。 charCodeAt方法只是查找大寫字母,請注意,不包括特殊希臘大寫字母等Unicode字符。
現在,您只需用類似風格你跨度:

#my_text span { 
    font-size: 10px; 
} 
+0

我不使用javascript佈局/樣式修復。我喜歡純潔。儘管如此,你還是可以解決這個問題! – Rudie 2010-12-16 17:46:22