したがって、CMS によって生成されるナビゲーション メニューがあります。
メニューの HTML は単純です (わかりやすくするために編集されています)。
<ul>
<li><a href="...">Journal</a></li>
<li><a href="...">Art</a></li>
<li><a href="...">Work</a></li>
</ul>
サイトの一般的なテーマに沿って、メニュー項目ごとに個別の PNG ファイルを使用して、項目を手書きのテキストとして表示したいと考えています。
そのために、CSScontent
プロパティを次のように使用しました。
#headerNav .nav li a[href="/_site/en/journal/"]
{ content: url(/path/to/image.png); }
そして、それはうまくいきました!各アイテムの HTML テキストは正しい画像に置き換えられました。
しかし、残念ながら、すべてのブラウザー がとcontent
以外のセレクターのプロパティをサポートしているわけではないことを知りました。Chrome と Safari はそれを行いますが、Firefox は行いません。ただし、を使用すると、HTML ノードは置き換えられませんが、画像が追加されます。:before
:after
:before
これを回避するにはどうすればよいですか?
うまくいかなかったもの:
<a>
要素を作成するとdisplay: none
、パーツも削除さ:before
れます。<a>
要素を作成して別のposition: absolute
場所に移動しても機能しません。- 追加された画像がドキュメントフローにないため、
<a>
要素を作成するwidth: 0px
とレイアウトが台無しになります。content
やりたくないこと:
もちろん、画像を手動で出力することもできますが、CMS が提供
<li>
するテキストを含む HTML で作業したいと考えています。関連するソリューションで
background-image
は、スタイルシートで各アイテムの幅と高さを指定する必要がありますが、この質問の目的では避けたいと思います。手書きをフォントに変換することはオプションではありません。
JavaScript を使用してその場でアイテムを置き換えることはできません。これは、純粋な HTML と CSS を使用して機能する必要があります。