CMS エディターが、CSS オーバーライドのみを使用して、ページ タイトルに使用されるテキストを交換できるようにしようとしています。
<header data-alternate="An Alternate Title">
This Page's Default Title
</header>
:before または :after タグを使用すると、利用可能な多くの代替タイトルのいずれかを使用できます。
header:before {
content: attr(data-alternate);
display: inline-block;
}
私たちも言うことができれば、
header:text {
display: none;
}
残念ながら、私が知る限り、「このページのデフォルト タイトル」を非表示にして「別のタイトル」に置き換える良い方法はありません。これがスプライトの場合、Phark などの使い古された画像置換技術のいずれかを使用できます。:before によって生成されたテキスト置換では、それほど多くはありません。:before は、デフォルト テキストを非表示にするために使用される CSS デバイスの影響も受けるため、たとえば Phark では、:before コンテンツも -9999px になります。
私が避けようとしている解決策があります。
- Phark メソッドまたは何かを使用してデフォルトのテキストを非表示にし、:before コンテンツで絶対配置を使用して左: 0、上: 0 に戻します。可能であればフローを維持したい/維持する必要があります。
- 「ページのデフォルト タイトル」をスパンでラップし、別のタイトルが使用されているときに CSS で display: none に設定するだけです。
すなわち
<header data-alternate="An Alternate Title">
<span class="default">This Page's Default Title</span>
</header>
これは機能しますが、ヘッダーにネストされたスパンは不快です。
生成された :before/:after コンテンツをターゲットにせずに、タグのテキストをターゲットにする方法はありますか? これを行う別の方法はありますか?