[解決済み] CSS :first-letterが機能しない
質問
Microsoft Word ドキュメントから生成されたいくつかの HTML スニペットに CSS スタイルを適用しようとしています。 Word が生成した HTML はかなり残酷で、多くのインライン スタイルを含んでいます。 それは次のようなものです。
<html>
<head></head>
<body>
<center>
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-size:12.0pt;line-height:115%;font-family:"Times New Roman"'>Title text goes here<o:p></o:p></span></b></p>
<p class=MsoNormal style='margin-left:18.0pt;line-height:150%'><span
style='font-size:12.0pt;line-height:150%;font-family:"Times New Roman"'>Content text goes here.<o:p></o:p></span></p>
</body>
</html>
...そして非常に単純に、私はタイトルセクションの最初の文字にスタイルを付けたいと思います。 それはちょうどより大きく、異なるフォントである必要があります。 これを行うために、私は
:first-letter
セレクタを使おうとしているのですが、次のようなものです。
p b span:first-letter {
font-size: 500px !important;
}
しかし、うまくいっていないようです。 以下は、これを実演するフィドルです。
何が間違っているか/どのようにタイトルセクションの最初の文字が正しくスタイルされるようにするために何かアイデアはありますか? 私はマークアップにマイナーな変更を加えることができます(物事の周りにラッパーdivを追加するなど)、いくつかの困難がないわけではありませんが。
どのように解決するのですか?
::first-letter
では動作しません。
インライン
要素のような
span
.
::first-letter
で動作します。
ブロック
要素、例えば段落、テーブルキャプション、テーブルセル、リストアイテム、またはそれらの
display
プロパティに
inline-block
.
したがって
::first-letter
を
p
の代わりに
span
.
p::first-letter {font-size: 500px;}
を使いたい場合、あるいは
::first-letter
セレクタを
span
であれば、このように書きます。
p b span::first-letter {font-size: 500px !important;}
span {display:block}
MDN 根拠を示す を提供しています。
は
::first-letter
CSS 擬似要素は、ブロックの最初の行の最初の文字を選択します。もしその行の前に他のコンテンツ(画像やインラインテーブルなど)がなければ、その行を選択します。...
最初の行はブロック・コンテナ・ボックスの中でしか意味を持ちませんので
::first-letter
を持つ要素にのみ効果があります。display
の値を持つ要素にのみ効果があります。block
,inline-block
,table-cell
,list-item
またはtable-caption
. それ以外の場合は::first-letter
は何の効果も持ちません。
もう一つの奇妙なケース
(は、(インライン・アイテムで動作しないこととは別に、)もしあなたが
:before
を使う場合です。
:first-letter
は実際の最初の文字ではなく、その前に適用されます。
コードペン
例
参考文献
https://developer.mozilla.org/en-US/docs/Web/CSS/::first-letter http://reference.sitepoint.com/css/pseudoelement-firstletter
関連
-
[解決済み] CSS - カーソルを置いたときに塗りつぶしの色を変更する - SVG PATH
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] CSSでdivのアスペクト比を維持する
-
[解決済み] 最初の要素にクラスを指定するCSSセレクタ
-
[解決済み] CSSコンテンツによるHTMLエンティティの追加
-
[解決済み] hr要素の色を変更する
-
[解決済み] マークダウンにおける相互参照 (名前付きアンカー)
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Bootstrap 3.3.7で改行する方法
-
[解決済み] HTML IFステートメント
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] チェックボックスとそのラベルをクロスブラウザーで一貫して揃える方法
-
[解決済み] <meta charset="utf-8"> vs <meta http-equiv="Content-Type">.
-
[解決済み] WebSocketとサーバー送信型イベントの比較/EventSource
-
[解決済み] Flexbox:水平方向と垂直方向の中央揃え
-
[解決済み] テーブル内のテキストアラインクラス
-
[解決済み] label要素の中にinput要素を入れるべきですか?
-
[解決済み】CSSで最初の文字を大文字にする