2012-12-10 33 views
10

これを読んでいるなら、おそらくCSSプロパティtext-transform:capitalize;はこれをThisに変換していないことに気づいたでしょう。そうではなく、最初の文字は大文字で残っているので、変換はこの場合には何の効果もありません。だから私たちはこの結果をどのように達成できますか?CSSを使用して大文字をタイトルケースに変換する方法

これはよく聞かれましたが、ほとんどの回答は、これを達成するためにjavascriptを使用して促進するのが簡単です。これは動作しますが、Wordpress、Drupal、JoomlaのようなPHP CMSのテンプレート/テーマを作成したり、カスタマイズしたりするのは不必要です。

答えて

9

text-transform : title-caseのようなものがないことが悪いニュースであり、結果がタイトルになることが保証されます。良いニュースは、javascriptを必要としない、これを行う方法があることです(この状況ではしばしば示唆されるように)。 CMSのテーマを書く場合は、strtolower()とucwords()を使用して、関連するテキストをタイトルケースに変換できます。 BEFORE

(これが動作しない):

<style> 
.title-case{ text-transform:capitalize; } 
</style> 
<span class="title-case">ORIGINAL TEXT</span> 

AFTER:あなたがテーマを作成している場合

<?php echo ucwords(strtolower('ORIGINAL TEXT')); ?> 

、あなたはおそらく、代わりにテキスト文字列の変数を扱うことになりますが、機能とコンセプトは同じように機能します。ここでは変数としてページのタイトルを返すために、ネイティブWordpressの機能get_the_title()を使った例です:

<?php 
$title = get_the_title(); 
$title = strtolower($title); 
$title = ucwords($title); 
<h1> 
<?php echo $title; 
</h1> 
?> 

・ホープこれは誰かに役立ちます。ハッピーコーディング。あなたは疑似クラス::最初の文字を使用して、CSSでこれを達成することができますし、すべての動作するはずある程度まで

text-transform: capitalize; 
+0

PSST、[ 'ucwords'(http://php.net/ucwords)。 – Charles

+0

ニース。それを変更しました。 – emersonthis

+1

'ucwords'だけでは不十分な場合は、最初に小文字にする必要があります。 'ucwords(strtolower( 'ORIGINAL TEXT'));' – tungd

-5

あなただけtext-transform: none;

+1

入力テキストが大文字の場合、それはうまくいかないでしょう。 – disinfor

+1

また、タイトルケースは変換を意味しません。タイトルケースは、大文字の各単語の最初の文字を意味し、残りの文字は大文字であることを意味します。 OPは 'capitalize'を探しています。 –

+0

@EduardLucaこれは、タイトルの大文字小文字が区別されないことです。http://www.grammar-monster.com/lessons/capital_letters_title_case.htm(私はこの回答はうまくいきません。) – Gus

-4

これは1つの単純なルールで達成することができますを書きますあなたのHTML構造に非常に依存していて、すべての場合にはうまくいかないかもしれませんが、時には役立つことがあります。「run code snippet」を参照してください結果は以下のとおりです。

ここで

.progTitle { 
 
    text-transform: lowercase; 
 
} 
 

 
.progTitle::first-letter { 
 
    text-transform: uppercase; 
 
}
<p class="progTitle">THIS IS SOME TEST TEXT IN UPPERCASE THAT WILL WORK. </p> 
 
<p class="progTitle">this is some test text in lowercase that will work. </p> 
 
<p class="progTitle"><i class="fa fa-bars"></i> THIS WILL NOT WORK </p>

+1

これは機能しません。 – Restuta

+0

ユースケースシナリオを提示してください。私はこれが非常に簡単に動作することを発見しました。 –

+0

@EmmanuelBuckshiあなたが示唆している方法では、2番目のルールは最初のものを上書きし、あなたが暗示するように互いにビルドしません。それはあなたのために働くと言う - 実際のユースケースを提示できますか? –

10

+0

優れたアイデア、華麗な...魅力のように働いた –

+2

これは、テキストの最初の文に対して適切な大文字を得るかもしれませんが、 「大文字の大文字小文字のテストテキストです」(大文字にするかどうかは「味覚/判断の問題」) – Gus

+0

こんにちは@Gusあなたは正しいです、この答えはあなたに文例を与えるでしょうオリジナルの質問には、どちらが優先されたかについての言及がありませんでした。そのため、元の回答に警告を追加したのはなぜですか?これはおそらくJSソリューションよりもリソースに依存しませんが、 – BMac

0

Virtuemart 1.目的はもともと大文字の文字列を取り、適切なケースに変換することですが実行しているJoomlaの1.5.22のウェブサイトで実施例です。

大文字:

<?php echo $list[$i]->name; ?> 

適切ケース:

<?php echo ucwords(strtolower($list[$i]->name)); ?> 
関連する問題