#html #css #hyperlink #navigation
#HTML #css #гиперссылка #навигация
Вопрос:
Я немного новичок в веб-программировании и искал повсюду, пытаясь решить эту проблему самостоятельно, но, хоть убей, я не могу в этом разобраться, я очень ценю любую помощь.
Я в основном создаю панель навигации и пытаюсь связать ее с другими моими HTML-страницами, но это не работает. Я использую следующий код.
HTML
<header>
<div class="banner"> <!-- contains main banner and logo -->
<a href="index.html" id="logo">
<img src="images/newlogo.png" alt="blahblah">
</a>
</div>
<div id="nav-bar">
<ul class="nav">
<li><a href="index.html">Home</a></li>
<li><a href="schedule.html">Schedule</a></li>
<li><a href="register.html">Register</a></li>
<li><a href="about.html">About</a></li>
<li><a href="#slideshow">Contact</a></li>
</ul>
</div>
</header>
CSS
header {
border-top: 12px solid #9e2630;
width: 100%;
background: #fff;
left: 0;
top: 0;
z-index: 200;
height: 115px;
margin-bottom: 130px;
}
header #logo img {
padding-top: 35px;
display: block;
margin-left: auto;
margin-right: auto;
}
header ul {
float: left;
position:relative;
left:50%;
min-height: 60px;
margin-top: 30px;
}
header ul li {
margin: 0;
padding: 0;
list-style: none;
float: left;
position:relative;
left:-50%;
/*height: 45px;*/
}
header ul li a {
font: normal normal normal 18px/20px 'Century Gothic', sans-serif;
text-align: center;
color: #9e2630;
/*height: 43px;*/
}
header .nav li a:hover{
background-color: #9e2630; color:#FFFFFF;
}
header ul li a.current{
background-color: #9e2630; color:#FFFFFF;
}
Ссылка в логотипе работает нормально. Ссылка в контакте также работает нормально, нет никаких проблем, когда я ссылаюсь на элемент на странице. Остальные четыре ссылки не работают. Я также пытался установить для href-адреса http-адрес, но это тоже не сработало. Я запустил все эти тесты в функции предварительного просмотра браузера DreamWeaver (IE и Chrome), а также на удаленном сервере без каких-либо различий в результатах.
Я также заметил, что z-индекс в заголовке установлен на 200 (это пример кода, с которым я работаю), который, как я понимаю, играет роль в том, как элементы слоистые. Я пытался возиться с этим безрезультатно. Что вы, ребята, думаете?
Правка1: вот как выглядит моя файловая структура
Также вот шаблон, который я использовал
Редактирование 2: Хорошо, ребята, я обнаружил, что проблема заключалась в файле JS с именем jquery.singlePageNav.min.js
к сожалению, когда я отключаю этот файл, я теряю красивый слайдер изображения, который был у меня на веб-странице, но ссылки снова работают, так что теперь я должен это исправить: p
Всем спасибо за помощь!
Комментарии:
1. Работает для меня: jsfiddle.net/Wz7Wu . Вы пробовали использовать только этот CSS и HTML? Есть ли какая-либо функция JavaScript, блокирующая событие click?
2. jsfiddle предполагает, что с этим конкретным фрагментом кода проблем нет. Что-то еще блокирует ваши ссылки. У вас есть наложение элементов? Может быть, какой-нибудь JavaScript? Вы вообще видите, как меняется курсор при перемещении по ссылкам?
3. Вы говорите: «Почему мои ссылки href не работают?» Поэтому я предполагаю, что ссылки отображаются, но когда вы нажимаете на них, вы не получаете страницу?
4. @smartmeta Пожалуйста, прочитайте вопрос, а не только заголовок.
5. Я сделал. Но не понял, что не работает.
Ответ №1:
Из документации плагина по умолчанию он переопределяет все ссылки, что явно не то, что вы хотите здесь. Однако есть filter
опция, которая может переопределить это поведение:
‘filter’ — по умолчанию плагин будет применяться ко всем ссылкам в контейнере, используйте это, чтобы отфильтровать определенные ссылки, используя встроенный метод фильтрации jquery (например, ‘:not(.external)’)
Поэтому я предлагаю добавить класс ко всем ссылкам, которые вы не хотите использовать для навигации по одной странице, а затем инициализировать с filter
помощью опции:
HTML
<header>
<div class="banner"> <!-- contains main banner and logo -->
<a href="index.html" id="logo">
<img src="images/newlogo.png" alt="blahblah">
</a>
</div>
<div id="nav-bar">
<ul class="nav">
<li><a href="index.html" class="external">Home</a></li>
<li><a href="schedule.html" class="external">Schedule</a></li>
<li><a href="register.html" class="external">Register</a></li>
<li><a href="about.html" class="external">About</a></li>
<li><a href="#slideshow">Contact</a></li>
</ul>
</div>
</header>
JavaScript
$(document).singlePageNav({filter: ':not(.external)'});
Комментарии:
1. Спасибо! это то, что я тоже узнал.
Ответ №2:
Укажите правильный путь к вашим страницам
<li><a href="/pathtopage/index.html">Home</a></li>
<li><a href="/pathtopage/schedule.html">Schedule</a></li>
<li><a href="/pathtopage/register.html">Register</a></li>
<li><a href="/pathtopage/about.html">About</a></li>
<li><a href="#slideshow">Contact</a></li>
Ответ №3:
убедитесь, что все ваши HTML-страницы находятся в правильной папке. На данный момент вы ссылаетесь на html-страницы в той же папке, поэтому, если у вас их там нет, вы не сможете открыть их таким образом. вы должны перейти к другим ссылкам из своего index.html . Я объясню: если у вас есть папка "sites"
, в которой хранятся все ваши документы .html, она должна работать так, как вы это делали. НО если в вашей папке "sites"
у вас есть только ваши index.html а другие сайты находятся во вложенной "sub-sites"
папке, по которой вам сначала нужно будет перейти. Как указано в ответе № 1