Преобразование всех заглавных букв в прописные

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

I YELL WITH MY KEYBOARD

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

I Yell With My Keyboard

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

1 ответ

Решение

Есть несколько вещей, которые вы можете сделать с помощью 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
    );
}
Другие вопросы по тегам