Как уменьшить вдвое размер липкой навигационной панели, чтобы она занимала только половину экрана, без изменения размера изображения навигационной панели

#html #css #navbar

#HTML #css #навигационная панель

Вопрос:

Я пытаюсь вдвое уменьшить размер моей липкой навигационной панели, и чтобы она отображалась наложенной, а не над изображением моего заголовка. Когда я пытаюсь изменить масштаб содержимого контейнера / оболочки, кажется, что он регулирует размер изображения, которое у меня есть в качестве навигационной панели. Я также хотел бы, чтобы выпадающее меню отображалось везде, где вы находитесь на странице, а не только вверху.

Я попытался использовать ‘position: absolute’ в моем css для всех битов навигационной панели. Похоже, это работает при наложении навигационной панели, однако она не отображается в верхней части страницы, а выпадающее меню недоступно.

 #wrapper {
     width: 100%;
}
 #demoncontrast {
     filter:contrast(100%) brightness(180%);
}
 .navbar {
     overflow: hidden;
     background-color: #333;
     z-index: 9999;
}
 .navbar a {
     float: left;
     font-size: 16px;
     color: white;
     text-align: center;
     padding: 14px 16px;
     text-decoration: none;
}
 .dropdown {
     float: left;
     overflow: hidden;
}
 .dropdown .dropbtn {
     font-size: 16px;
     border: none;
     outline: none;
     color: white;
     padding: 0px;
     background-color: inherit;
     font-family: inherit;
     margin: 0;
}
 .navbar a:hover, .dropdown:hover .dropbtn {
}
 .dropdown-content {
     display: none;
     position: absolute;
     background-color: #f9f9f9;
     min-width: 657px;
     box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
     z-index: 1;
}
 .dropdown-content a {
     float: none;
     color: black;
     padding: 12px 16px;
     text-decoration: none;
     display: block;
     text-align: left;
}
 .dropdown-content a:hover {
     background-color: #ddd;
}
 .dropdown:hover .dropdown-content {
     display: block;
}
 .content {
     padding: 16px;
}
 .sticky {
     position: fixed;
     top: 0;
     width: 100% 
}
 .sticky   .content {
     padding-top: 102px;
}  
 <div class="container">
    <div id="wrapper">
		<div class="navbar" id="myHeader">
			<div class="dropdown">
				<button class="dropbtn">
					<img src="NONENTITYHEADERNB.png" id="opacity" align="left" style="max-width: 50%;height:auto;">
					<i class="fa fa-caret-down"></i>
				</button>
				<div class="dropdown-content">
					<a href="#1">Bio and album stream</a>
					<a href="#2">Where to buy</a>
					<a href="#3">Upcoming shows and links</a>
				</div>
			</div> 
		</div>
    </div>
</div>  

Комментарии:

1. Используете ли вы фреймворк bootstrap? Если да, укажите эту версию

2. Я не совсем понимаю ту часть, «чтобы она отображалась наложенной, а не над изображением моего заголовка». Не могли бы вы перефразировать это, пожалуйста?

Ответ №1:

Я также хотел бы, чтобы выпадающее меню отображалось везде, где вы находитесь на странице, а не только вверху.

Вы должны использовать position свойство со fixed значением: position: fixed . Это приведет к тому, что ваш элемент (в данном случае панель навигации) останется в окне и всегда будет перемещаться вместе со зрителями.

И чтобы гарантировать, что ваш элемент не будет наложен, вы можете добавить z-index свойство на определенный уровень. Например: z-index: 999 .

Когда я пытаюсь изменить масштаб содержимого контейнера / оболочки, кажется, что он регулирует размер изображения, которое у меня есть в качестве навигационной панели

Причина кроется здесь:

 <img src="NONENTITYHEADERNB.png" id="opacity" style="max-width: 50%;height:auto;">
  

Вы max-width:50% имеете в виду, что это изображение должно иметь размер только 50% по сравнению с родительской шириной, и контейнер, и оболочка являются его родительскими.

Если я вас правильно понял, вы хотите, чтобы изображение автоматически масштабировалось при изменении размера контейнера, верно? Если это так, то, боюсь, вам придется приложить больше усилий к JavaScript, а не к CSS.