Преобразование всех заглавных букв в прописные - PullRequest
6 голосов
/ 25 января 2010

Мне было интересно, существует ли какой-либо способ использования только CSS (и это МОЖЕТ быть специфичным для браузера CSS) для преобразования всего текста в верхнем регистре в слова, которые пишутся только с заглавной буквы, например:

I YELL WITH MY KEYBOARD

будет преобразовано в:

I Yell With My Keyboard

РЕДАКТИРОВАТЬ: я понял, что я не достаточно ясно в своем вопросе, текст был введен заглавными буквами, а не в нижнем регистре, преобразование текста: заглавные буквы не работают на данных, которые были введены, как это кажется.

1 Ответ

9 голосов
/ 25 января 2010

Есть несколько вещей, которые вы можете сделать с помощью CSS для преобразования текста, вот они все.

.Capitalize
{ text-transform: capitalize }

.Uppercase
{ text-transform: uppercase }

.Lowercase
{ text-transform: lowercase }

.Nothing
{ text-transform: none }

К сожалению, нет преобразования текста в Camel Case.

Вы всегда можете использовать Javascript для правильного преобразования текста или, если вы используете язык сценариев, такой как PHP или ASP, то измените его там.

Вот пример, взятый со страницы документации strtoupper PHP:

function strtocamel($str, $capitalizeFirst = true, $allowed = 'A-Za-z0-9') {
    return preg_replace(
        array(
            '/([A-Z][a-z])/e', // all occurances of caps followed by lowers
            '/([a-zA-Z])([a-zA-Z]*)/e', // all occurances of words w/ first char captured separately
            '/[^'.$allowed.']+/e', // all non allowed chars (non alpha numerics, by default)
            '/^([a-zA-Z])/e' // first alpha char
        ),
        array(
            '" ".$1', // add spaces
            'strtoupper("$1").strtolower("$2")', // capitalize first, lower the rest
            '', // delete undesired chars
            'strto'.($capitalizeFirst ? 'upper' : 'lower').'("$1")' // force first char to upper or lower
        ),
        $str
    );
}
...