0

すべて大文字のページにタイトルがある効果を生み出そうとしています。ただし、各単語の最初の文字を少し大きいフォント サイズで表示したいと思います。

例えば:

私のタイトル

M と T はサイズ 16 のフォントで、残りの単語はサイズ 12 です。データベース (MySQL) からタイトルを取得しているので、「MY TITLE」は単なる例です。どんな言い方でも構いません。

substr (php) を使用してこれを行う方法があることを認識し、各単語の末尾にあるスペースを検索します。しかし、これはコーディングが少し面倒になるように思えます。

誰かがより良い提案をしていますか?

4

4 に答える 4

4

このようなものがあなたが探しているものだと思います。

PHP

<?php
$text = "My Title";
$newText = preg_replace('/(\w)(\w+\b)/', '<span class="firstLetter">$1</span>$2', $text);

echo $newText;  // <span class="firstLetter">M</span>y <span class="firstLetter">T</span>itle

CSS

.firstLetter{font-size: 125%;}
于 2012-05-01T19:23:36.070 に答える
3

各最初の文字をタグでラップして、 CSS の最初の文字疑似要素を使用します。<span>

p span:first-letter
{ 
    font-size: 16pt;
}
于 2012-05-01T19:11:35.943 に答える
1

純粋な PHP ソリューション:

<?php
$str = '<h2><big>S</big>ome <big>t</big>ext</h2>';
echo strtoupper($str);
?>

CSS ソリューション:

<h2><span class="larger">S</span>ome <span class="larger">T</span>ext</h2>
<style type="text/css">
h2{text-transform:uppercase;}
.larger{font-size:larger;}
</style>

追加の方法:可変数の単語で特定の形式を出力できるようにしたい場合は、次のようにすることができます。

<?php
$string = 'VariaBle Number oF WORds!';
$words = explode(' ', $string);
$modified = array();
foreach($words as $word)
{
    $modified[] = '<big>'.substr($word, 0, 1).'</big>'.substr($word, 1, strlen($word));
}
echo strtoupper(implode(' ', $modified));
?>
于 2012-05-01T19:16:29.980 に答える
1

単純な CSS プロパティ、

font-variant:small-caps;
于 2012-05-01T20:21:26.877 に答える