Ссылка на фрагмент не работает - PullRequest
1 голос
/ 20 марта 2012

Всего вопросов новичка, но я не могу понять, что я делаю не так.Я хочу сделать ссылку, которая перепрыгивает страницу вниз в заголовок.Я считаю, что это называется фрагментными ссылками.Вот мой код, который не работает:

<a href="#Frag">My Link</a>

<div id="cont">

<p>Lots of content here, abbreviated in this example to save space</p>

<h2 id="Frag">Header I want to jump to</h2>
</div>

Ответы [ 2 ]

2 голосов
/ 20 марта 2012

Уверен, вам нужно указать атрибут name для работы привязки, например:

<a href="#content">Skip to content</a>

<div name="content" id="content"></div>

Хорошо, так что «почти наверняка» было эвфемизмом слова «угадай», и я подумал, что смогу найти его, поэтому из спецификации HTML 4.01 мы получаем это из раздела 12.2. 3 якоря с атрибутом id :

Атрибут id может использоваться для создания привязки в начальном теге любой элемент (включая элемент A). В этом примере показано использование атрибута id для позиционирования якоря в элементе H2. Якорь связан с помощью элемента A.

You may read more about this in <A href="#section2">Section Two</A>.

... позже в документе

<H2 id="section2">Section Two</H2>

... позже в документе

<P>Please refer to <A href="#section2">Section Two</A> выше для более подробной информации.

Чтобы следовать соглашению о догадках, возможно, ваша страница недостаточно длинна, чтобы разрешить переход к этому контенту (т. Е. Вашей странице может быть некуда перейти и контент для перехода до уже видно.)

Кроме этого, и из того же раздела спецификации, ранее связанного, вот некоторая общая информация о том, когда использовать то, что в качестве идентификатора привязки (в терминах самой ссылки), которое могло бы быть полезным в противном случае:

Использовать id или name? Авторы должны учитывать следующие вопросы, когда решить, использовать ли идентификатор или имя для имени привязки:

  • Атрибут id может выступать не только как имя привязки (например, селектор таблицы стилей, идентификатор обработки и т. Д.).
  • Некоторые старые пользовательские агенты не поддерживают якоря, созданные с атрибутом id.
  • Атрибут name допускает более богатые имена якорей (с сущностями).
0 голосов
/ 20 марта 2012

Ваш код отлично работает в Firefox, в любом случае вы можете использовать также имя вместо id ..

http://www.w3schools.com/tags/att_a_name.asp

если вы хотите иметь хорошую прокрутку, вы можете использовать jquery scroll http://api.jquery.com/scroll/

...