У меня есть следующий код, и я использую свойство css text-transform со значением capitalize или php ucwords() я получаю заголовок с заглавной буквы, но когда в заголовке все буквы прописные, это не работает. Как я могу добиться, чтобы результат был написан с заглавной буквы, независимо от предоставленного заголовка?

  <h4 style="text-transform: capitalize;">
      <a href="{{ route('posts.show', $post )}}">{{ $post->title }}</a>
  </h4>
0
Alphy Gacheru 18 Сен 2021 в 11:51

3 ответа

Лучший ответ

Решением php было бы преобразовать регистр в более низкий, а затем использовать ucfirst

$text = 'THIS IS A TITLE';
$normalText = ucfirst(strtolower($text));
echo $normalText;
0
endeavour 18 Сен 2021 в 09:11

Пока это только одна строка, вы можете сделать это с помощью CSS, объединив lowercase и capitalize с помощью псевдоселектора first-line:

.title-case {
  text-transform: lowercase;
  display: inline-block;
}

.title-case::first-line {
  text-transform: capitalize;
}
<h4>
  <a class="title-case" href="#">SHOUTING</a>
</h4>
2
dave 18 Сен 2021 в 09:06

В Twig есть фильтр с заглавными буквами

https://twig.symfony.com/doc/3.x/filters/capitalize.html

{{'моя первая машина' | заглавными буквами}}

{# выводит "Моя первая машина" #}

Идеальное место для этого, вид.

1
user1207013 18 Сен 2021 в 09:15