Я работаю над проектом, в котором есть боковая панель с тремя квадратами. Квадраты будут иметь заголовок подраздела, и при наведении курсора я хочу показать описание. Боковая панель является относительной, потому что справа от нее есть еще один div. Пока ящики все складываются друг на друга, и наведение ничего не делает, я не уверен, что делать дальше. Я открыт для решений CSS или JS.
.sidebar {
width: 20%;
height: 100vh;
position: relative;
}
.boxes {
width: 80%;
height: 25%;
background-color: #C4D5E4;
margin: 10%;
border-radius: 50px;
position: relative;
z-index: 1;
}
.boxes a {
display: block;
color: white;
font-size: 20pt;
font-family: sans-serif;
text-align: center;
padding-top: 40%;
text-decoration: none;
}
.boxesHover {
width: 80%;
height: 25%;
background-color: #6BA5CD;
margin: 10%;
border-radius: 50px;
position: absolute;
z-index: 0;
}
.boxesHover:hover .boxesHover {
z-index: 2;
}
.boxesHover a {
display: block;
color: white;
font-size: 20pt;
font-family: sans-serif;
text-align: center;
padding-top: 40%;
text-decoration: none;
position: relative;
}
I'm working on a project where there is a sidebar with three squares in it. The squares will have a sub-section title, and when hovering I want to reveal a description. The sidebar is relative because there is another div to the right side of it. So far the boxes are all stacking on each other and hover does nothing, I'm not sure where to go from here. I'm open to CSS or JS solutions.
<!-- begin snippet: js hide: false console: true babel: false --><div class = "sidebar">
<div class = "boxes">
<a href = "">Audience</a>
</div>
<div class = "boxesHover">
<ul>
<li>Description 1</li>
<li>Description 2</li>
<li>Description 3</li>
<li>Description 4</li>
</ul>
</div>
<div class = "boxes">
<a href = "">Methods</a>
</div>
<div class = "boxesHover">
<ul>
<li>Description 1</li>
<li>Description 2</li>
<li>Description 3</li>
<li>Description 4</li>
</ul>
</div>
<div class = "boxes">
<a href = "">Industry</a>
</div>
<div class = "boxesHover">
<ul>
<li>Description 1</li>
<li>Description 2</li>
<li>Description 3</li>
<li>Description 4</li>
</ul>
</div>
</div>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я считаю, что ваша проблема в том, что вы помещаете функцию наведения на div, а не на фактические поля.
Попробуй это:
<div>
<ul href = "">
<li class = "boxesHover">Diversification</li>
<li class = "boxesHover">Musical Chairs</li>
<li class = "boxesHover">Telecome M&A</li>
<li class = "boxesHover">Fake News</li>
</ul>
спасибо за это :) к сожалению, возможно, я не описал это должным образом. Ul - это описания, которые мне нужны в "boxHover". «коробки» должны отображаться, когда пользователь не зависает. Когда пользователь наводит курсор на «боксы», я хочу, чтобы «boxHover» отображался поверх «боксов» с ul в качестве текста.
Я пытаюсь сделать три коробки в ряд по вертикали, с промежутком 10% между ними. При наведении указателя мыши на отдельное поле я хочу, чтобы появился другой прямоугольник и покрыл исходный ящик содержимым ul и другим цветом фона.
Я исправил проблему зависания, но три поля все еще не выстраиваются правильно
Мне удалось решить проблему с помощью моего профессора, он предложил гибкий бокс. Код ниже:
HTML:
<div class = "sidebar">
<div class = "boxes">
<a href = "audience.html">
<p>Audience</p>
<ul class = "boxeshover">
<li>Subscriptions</li>
<li>Membership</li>
<li>Global Footprint</li>
</ul>
</a>
</div>
<div class = "boxes">
<a href = "methods.html">
<p>Methods</p>
<ul class = "boxeshover">
<li>Profitability</li>
<li>Data Practices</li>
<li>Metrics of Success</li>
<li>E-Commerce</li>
</ul>
</a>
</div>
<div class = "boxes">
<a href = "industry.html">
<p>Industry</p>
<ul class = "boxeshover">
<li>Diversification</li>
<li>Musical Chairs</li>
<li>Telecom M&A</li>
<li>Fake News</li>
</ul>
</a>
</div>
</div>
CSS:
.sidebar {
width: 20%;
height: 100vh;
position: fixed;
}
.boxes {
width: 200px;
height: 200px;
background-color:#CDCDCD;
margin: 5%;
margin-left: 10%;
border-radius: 50px;
overflow: hidden;
position: relative;
}
.boxes a {
color: white;
text-decoration: none;
font-size: 20pt;
font-family: sans-serif;
text-align: center;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
}
.boxeshover {
opacity: 0;
position: absolute;
top: 0;
width: 100%;
height: 100%;
margin: 0;
background-color:#C05746;
color: white;
font-size: 15pt;
list-style-type: none;
padding-left: 0;
line-height: 175%;
display: flex;
flex-direction: column;
justify-content: center;
}
.boxes:hover .boxeshover {
opacity: 1;
}
привет, посмотри сюда, это может тебе помочь stackoverflow.com/questions/20563803/…