以下と同じ結果を取得したいのですが、重複はありません(同じリンクが2回表示されます)。
<html>
<body>
<a href="http://www.w3schools.com">http://www.w3schools.com</a>
</body>
</html>
Javascriptなしの静的HTMLで可能ですか?
attr
CSSの関数を使用することにより、CSSセレクターを使用して重複することなくこれを行うことができます。
スタイルシートにこれを追加できます:
a::after {
content: attr(href);
}
質問の例:
<html>
<style>
a::after {
content: attr(href);
}
</style>
<body>
<a href="http://www.w3schools.com">Some text</a>
</body>
</html>
そして、の後にリンクを表示しますSome text
。
HTML標準(a)では、URL自体に特定のものを配置することしか許可されてhref
おらず、「リンクとしてテキストの説明を使用してください」マーカーはそれらの1つではありません。
リンクのテキストによる説明はリンクよりも少し人間が読める形式である必要があるとほとんどの人が考えるかもしれませんが、多くの重複を節約できることは間違いありません。たとえば、Webページに次の情報を表示したくない場合があります。
そうは言っても、CSSを使用して、特にテキスト属性を含む要素をドキュメントに追加するために使用することで、それを行うことができます。次のように、所有しているすべてのタグを変更しないように、特定のクラスに制限することをお勧めします。after
href
a
<html>
<style>
.add-link::after {
content: " (" attr(href) ")";
}
</style>
<body>
<a class="add-link" href="http://www.example.com">Link added</a>
<p />
<a href="http://www.example.com">No link added</a>
</body>
</html>
最初のリンクにはリンクテキストが追加されますが、2番目のリンクには追加されません。残念ながら、それでは非常に大きなURI(上記を参照)がテキストとしてページに配置されるという問題は解決されませんが、少なくともadd-link
それらにクラスをアタッチしないオプションがあります):
できません。JavaScriptを使用するか、そのままにしておく必要があります。
いいえ、静的htmlのみで重複を削除する方法はありません。
また、それは必要ではありません。多くのWebページはPHPまたはこのようなものを使用しており、PHPでリンクを作成するのは簡単です:)
PHPの例:
<a href="<?php echo $item->link; ?>"><?php echo $item->link; ?></a>
実際にリンクをフォーマットする良い方法は次のとおりです。
<html>
<body>
<a href="http://www.w3schools.com">w3schools.com</a>
</body>
</html>