2012-06-05 2 views
2

При использовании name = "object", а затем с прокруткой страницы к этому объекту с использованием идентификатора href = "# object" можно настроить, где находится страница. Вместо верхней части окна несколько пикселей вниз. У меня есть фиксированная панель навигации, которая при прокрутке контента идет позади, поэтому навигационная панель всегда видна. Поэтому, когда я использую href = "# object", часть его отключается, потому что она находится за навигационной панелью. Любые исправления? Спасибо.Как отрегулировать href = "# object"

ответ

5

Измените верхнюю прокладку и укладку краев на элемент с помощью именованного якоря. Например, если ваш заголовок имеет высоту 100 пикселей, дайте вашему именованному якорю значение margin-top -100px и верхнюю часть 100px.

См. Это jsFiddle example.

В этом примере ссылка приведет к полужирным шрифтам ('Vestibulum ante ipsum') 100px в верхней части страницы.

+1

Умный раствор. Я предлагаю вам поместить стиль в класс CSS или даже лучше: нарисуйте их с помощью 'a [name]'! –

+0

Да, отделите CSS от HTML. JsFiddle был предназначен только для демонстрационных целей. – j08691

+0

Очень хорошо, спасибо. –

1

Вы можете сделать это с помощью jQuery.localScroll, установив offset в конфигурации плагина.

Здесь have a fiddle.

+0

Зачем добавлять всю библиотеку jQuery для чего-то, что так легко делается с помощью CSS? Кроме того, вопрос не помечен jQuery. – j08691

+0

@ j08691 Потому что я не мог придумать чистое решение CSS, подобное вашему. –

2

И если вы хотите установить эти свойства (например, упомянутые j08691) с помощью селектора css, поместите этот JS в свой html, тогда вы сможете дать каждому якорю класс для него, если атрибуты-селекторы не будут использовать, т (старые браузеры):

function findAnchors(){ 
    anker = document.anchors; 
    for(i=0; i<anker.length; i++){ 
     anker[i].className = "anchor"; 
    } 
} 
window.onload = findAnchors(); 
+0

Для этого вам не нужно использовать JavaScript. [В спецификации указано] (http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-7577272), что 'document.anchors' является« совокупностью всех якорей (' A') в документе со значением для атрибута 'name'. Вы можете сделать то же самое с CSS: 'a [name] {...}' –

Смежные вопросы