2013-05-09 14 views
9

LaTeXで相互参照を作成する通常の方法は、\labelを後で参照したいものの中に置き、\refを使用することです。例えば、LaTeXソースにas we saw in Section~\ref{intro}を書き込むと、最終出力で「セクション1で見たように」生成される可能性があります。 HTMLとCSSだけで同じ効果を得ることは可能ですか? CSSの新しい機能では、セクションなどに自動的に番号を付けることができますが、これらのカウンタ値をドキュメントの他の場所から参照できるようなものは見つかりませんでした。ここJavaScriptを使用せずにHTML + CSSの相互参照に自動的に番号を付ける方法はありますか?

が具体例である。この例では

<!DOCTYPE html> 
<html> 
<head> 
    <title>Cross references</title> 
    <meta charset="utf-8"> 
    <style type="text/css"> 
     body { 
      counter-reset: section; 
     } 
     section > h1::before { 
      counter-increment: section; 
      content: counter(section) ". "; 
     } 
    </style> 
</head> 
<body> 
<section> 
    <h1 id="intro">Introduction</h1> 
    <p>Pineapples contain essential vitamins.</p> 
</section> 

<section> 
    <h1>Further discourse on pineapples</h1> 
    <p>As we saw in Section ??, pineapples contain essential vitamins.</p> 
</section> 
</body> 
</html> 

、すべてのセクション見出しが自動的に生成された番号を用いて付加されます。 #introに対応する数字を挿入する??の代わりに使用できるHTMLマークアップまたはCSSスタイリングがあるかどうかを知りたいと思います。

私は<a href="#intro">を使って紹介へのクロスハイパーリンクを作成できたことを知っていますが、リンクテキストにセクション番号も含めたいと思います。

HTMLとCSSだけでは不可能な場合は、ドキュメント内に相互参照を追加するJavaScriptライブラリはありますか? 「?どのようにJavaScriptを使用しなくてもCSSで自動的に生成されたコンテンツにアクセスすることができます」

答えて

6

私は(結果論では)この質問を言葉で表現しているために、より良い方法があったであろう、そしてこれらの質問は関連していること:

自動的に生成されたカウンタ値にアクセスするにもJavaScriptを使用して容易ではなく、不可能それなしで、そのためには、私の質問に答えるように見えます。

はカウンターと、生成されたコンテンツを議論するW3Cからの文書の数がありますが、私の知る限り言うことができるようどれも、文書の他の部分から生成されたコンテンツを参照して議論していない:

012ですは、相互参照の問題を正確に言及しています。それはで書かれた電子メールから来ており、フォローアップの作業が見つかっていないので、これは最優先事項ではないと思います。

更新

CSS Generated Content for Paged Media Modulediscusses cross references explicitly、およびCSSでそれらを実装するためにtarget-countertarget-text機能について説明します。しかし、これは2011年11月29日付の作業草案です。これらの機能は主要なブラウザでは実装されていないようです。 article from A List Apartでは、これらのCSS機能を使用して、HTMLからPDF eBookを作成する方法について説明しています。

関連する問題