2013-05-09 31 views
9

Typową metodą tworzenia odsyłaczy w LaTeX jest umieszczenie obiektu \label wewnątrz czegoś, co chcesz później sprawdzić, a następnie użycie \ref. Na przykład pisanie as we saw in Section~\ref{intro} w źródle LaTeX może spowodować "jak widzieliśmy w sekcji 1" w ostatecznym wyniku. Czy można uzyskać ten sam efekt za pomocą samego HTML i CSS? Nowsze funkcje CSS zezwalają na automatyczne numerowanie sekcji i tak dalej, ale nie znalazłem niczego, co pozwoliłoby ci odnieść się do tych wartości liczników z dowolnego miejsca w dokumencie.Jak automatycznie numerować odsyłacze w HTML + CSS, bez JavaScript?

Oto konkretny przykład:

<!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> 

W tym przykładzie wszystkie Nagłówki sekcji są poprzedzane automatycznie wygenerowany numer. Chciałbym wiedzieć, czy istnieje jakikolwiek znacznik HTML lub styl CSS, który mógłbym użyć zamiast ??, który wstawi numer odpowiadający #intro.

Zdaję sobie sprawę, że mogę użyć <a href="#intro">, aby utworzyć hiperłącze do wstępu, ale chciałbym również dołączyć numer sekcji w tekście linku.

Jeśli nie jest to możliwe z samym HTML i CSS, czy istnieją biblioteki JavaScript do dodawania odsyłaczy w dokumencie?

Odpowiedz

6

Lepszym sposobem mi się sformułować pytanie (z perspektywy czasu) byłby „W jaki sposób można uzyskać dostęp do treści generowanych automatycznie przez CSS bez użycia JavaScript?”, I że te pytania są istotne:

wygląda dostępu do automatycznie wygenerowanych wartości liczników nie jest łatwe nawet z JavaScript, a nie jest możliwe bez niego, tak że odpowiedzi na moje pytanie.

Istnieje szereg dokumentów z W3C, który omówienia liczniki i generowanych treści, ale nikt o ile mogę powiedzieć dyskutować przedstawieniu generowane treści z innych części dokumentu:

Nie jesta note in the W3C's List of suggested extensions to CSS, który wspomina dokładnie o problemie z odsyłaczem - pochodzi z e-maila napisanego w i nie znalazłem żadnej dodatkowej pracy, więc domyślam się, że nie był to wysoki priorytet.

Aktualizacja

CSS Generated Content for Paged Media Modulediscusses cross references explicitly i opisuje funkcje target-counter i target-text je realizować z CSS. Jest to jednak projekt roboczy z dnia 29 listopada 2011 r .; te funkcje nie wydają się być implementowane w żadnej większej przeglądarce. An article from A List Apart mówi o użyciu tych funkcji CSS do tworzenia e-booków PDF z HTML za pomocą niektórych narzędzi losowych własności.