Изменить заглавные буквы на заглавные в CSS

У меня есть предложение, которое все находится в блокировке CAP (и не может быть изменено). Это предложение является частью абзаца, используя только CSS (или немного Jquery, если нужно). Как я могу всегда получать результат надежно и на большинстве устройств!

Примечание. Я просмотрел вопросы например, это, но они не охватывают фактор нескольких предложений.

Без изменений:

ЭТО ПЕРВОЕ ПРЕДЛОЖЕНИЕ. А это второй, как бы с сервера.

Желаемый результат:

Это первое предложение. А это второй...

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

 p { text-transform: lowercase;}
   p:first-letter {text-transform:capitalize}

person tim.baker    schedule 30.03.2014    source источник
comment
Вы не можете. Текст должен быть изменен   -  person Johansrk    schedule 30.03.2014
comment
Даже если вы не можете изменить исходные данные, можете ли вы обработать их на стороне сервера перед отображением?   -  person Mathletics    schedule 30.03.2014
comment
Откуда фраза?   -  person stackErr    schedule 30.03.2014
comment
@Mathletics Он исходит из таблицы MySQL (PHP), поэтому да, его можно изменить, но это не было бы идеальным решением, поскольку это означает многократное изменение, а не один класс стиля.   -  person tim.baker    schedule 30.03.2014


Ответы (3)


Похоже, проблема с jQuery. Проверьте этот ответ на заглавные буквы всего элемента, затем вы можете проанализировать первое предложение, используя что-то вроде:

var setval = $('#my_paragraph').html();
var firstSentence = setval.substring(0, setval.indexOf('.'));
firstSentence = toProperCase(firstSentence);
var theRest = setval.substring(setval.indexOf('.') + 1);
$('#my_paragraph').html(firstSentence + theRest);
person Anthony Atkinson    schedule 30.03.2014
comment
Извините, я был так сосредоточен на коде, что забыл включить ссылку на ответ с функцией toProperCase(): stackoverflow.com/questions/15126466/ - person Anthony Atkinson; 30.03.2014
comment
Я считаю, что этот ответ даст вам функцию, которая изменяет регистр предложения на заголовок, поэтому вы можете просто установить все toLowerCase(), а затем сделать первую букву заглавной. Извини за это. Я уверен, что вы поняли идею. :) - person Anthony Atkinson; 30.03.2014

Это только хотфикс. Если ваш вывод когда-либо изменится на что-то другое, содержащее более одной точки или даже другие слова, начинающиеся с символа в верхнем регистре, этот код не даст желаемого результата.

Пример: http://jsfiddle.net/Em2bD/

// grab your text
var firstSentenceText = $('p').text();

// extract the first sentence and make it all lowercase
var firstSentence = firstSentenceText.substr(0, firstSentenceText.indexOf('.')).toLowerCase();

// convert first char to uppercase
var result = firstSentenceText.charAt(0).toUpperCase() + firstSentence.substring(1);

// append the text to what ever you like and append the missing dot.
$('.result').text(result + '.');
person gearsdigital    schedule 30.03.2014

Что-то, что приходит на ум, это использование jquery. Вы можете найти первую точку (.) в абзаце, а затем вы можете сделать строку перед ней строчной (вы можете указать диапазон с классом/идентификатором и уже иметь правила в файле css). Возможно, вам придется немного погуглить.

person user2832080    schedule 30.03.2014