CSS вложенное выпадающее меню, которое открывается справа - PullRequest
2 голосов
/ 20 сентября 2019

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

В идеале я хочу, чтобы при наведении курсора на кнопку «Main» я выглядел так, изатем Sub button2

[Main button] - [Sub button1]
                [Sub button2] - [Sub button2 item1]
                [Sub button3] - [Sub button2 item2]
                              - [Sub button2 item3]                    

.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover > .dropdown-content {
  display: block;
}

.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>

<h2>Dropdown Menu</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
	<div class="dropdown">
	  <button class="dropbtn">Dropdown</button>
  		<div class="dropdown-content">

			<a href="#">Link 1</a>
  			<a href="#">Link 2</a>
  			<a href="#">Link 3</a>
        </div>
	</div>
    <div class="dropdown">
	  <button class="dropbtn">Dropdown</button>
  		<div class="dropdown-content">

			<a href="#">Link 1</a>
  			<a href="#">Link 2</a>
  			<a href="#">Link 3</a>
        </div>
	</div>
  </div>
</div>

<p><strong>Note:</strong> We use href="#" for test links. In a real web site this would be URLs.</p>

</body>
</html>

1 Ответ

2 голосов
/ 20 сентября 2019

Просто добавьте left: 100%; top: 0; к вашему .dropdown-content.Это установит в определенную позицию абсолютного элемента.

.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  left: 100%;
  top: 0;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a:hover {
  background-color: #f1f1f1
}

.dropdown:hover>.dropdown-content {
  display: block;
}

.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}
<h2>Dropdown Menu</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <div class="dropdown">
      <button class="dropbtn">Dropdown</button>
      <div class="dropdown-content">

        <a href="#">Link 1</a>
        <a href="#">Link 2</a>
        <a href="#">Link 3</a>
      </div>
    </div>
    <div class="dropdown">
      <button class="dropbtn">Dropdown</button>
      <div class="dropdown-content">

        <a href="#">Link 1</a>
        <a href="#">Link 2</a>
        <a href="#">Link 3</a>
      </div>
    </div>
  </div>
</div>

<p><strong>Note:</strong> We use href="#" for test links. In a real web site this would be URLs.</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...