8

是否有用于大写字符/字母/单词的 CSS 伪选择器?我希望我所有的大写字母都小一点,而所有其他字符的大小都一样。大写字母不一定是句子(或单词)的第一个字符,反之亦然。

或者也许还有另一种方法可以在 CSS 中找到这些字符?用诡计?我喜欢诡计。

4

3 回答 3

4

好吧,有支持不佳的首字母选择器,但这不是您想要的。

当然,您也可以在 PHP 中预先解析您的 HTML,将所有大写字母包装在<span class="capital"></span>标签中,但这是一种 hack。

然后当然你可以随时拿出神奇的 jQuery rabbit 并在文档加载时改变你的 DOM 以包含 span。这也是一个黑客。你喜欢黑客吗?

让我们看看还有谁会变魔术:-)

于 2010-12-14T13:57:06.903 回答
1

我不认为这是可能的。

最好只用一个类将大写字母包装起来,并用它来设置它们的样式。

于 2010-12-14T13:48:31.170 回答
1

使用 CSS 是不可能的。

您可以使用 Javascript 检查文本中的所有字符是否为大写(例如,使用if (yourtext == yourtext.toUpperCase())),然后<span>在它们周围包裹一个包含您的 CSS 的样式来设置这些字符的样式。

或者围绕这些线的东西:

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');
    }
}

我没有尝试过(也许有人有时间用这个创建一个 jsfiddle?),你可能需要使用replaceNode或类似的东西。该charCodeAt方法只查找大写字母,请注意不会包含像特殊希腊大写字母这样的 unicode 字符。
您现在只需要使用以下内容来设置您的跨度:

#my_text span {
    font-size: 10px;
}
于 2010-12-14T13:58:23.643 回答