#html #css
#HTML #css — файл #css
Вопрос:
Я хочу создать эффект наведения курсора мыши, при котором при наведении курсора на родительский элемент отображается больше информации. Я зашел так далеко:
ul{
grid-column-gap: 21px;
grid-row-gap: 40px;
display: grid;
margin: 0;
padding: 0;
list-style: none outside;
clear: both;
grid-template-columns: repeat(3, 1fr);
}
ul li{
text-align: center;
border-style: solid;
border-width: 2px 2px 2px 2px;
border-radius: 0;
padding: 10px 10px 10px 10px;
background-color: #FFFFFF;
border-color: #EAEAE3;
width: auto;
margin: 0;
float: none;
}
.additional{
height: 0;
opacity: 0;
transition: height 0.25s ease-out;
}
ul li:hover .additional{
height: 50px;
opacity: 1;
transition: height 0.25s ease-in,opacity 0.25s ease-in;
}
<div class="container">
<ul>
<li>
Title<br />
Image<br />
<div class="additional">
Line 1<br />
Line 2<br />
</div>
<input type="submit" value="Click here" />
</li>
<li>
Title<br />
Image<br />
<div class="additional">
Line 1<br />
Line 2<br />
</div>
<input type="submit" value="Click here" />
</li>
<li>
Title<br />
Image<br />
<div class="additional">
Line 1<br />
Line 2<br />
</div>
<input type="submit" value="Click here" />
</li>
<li>
Title<br />
Image<br />
<div class="additional">
Line 1<br />
Line 2<br />
</div>
<input type="submit" value="Click here" />
</li>
<li>
Title<br />
Image<br />
<div class="additional">
Line 1<br />
Line 2<br />
</div>
<input type="submit" value="Click here" />
</li>
<li>
Title<br />
Image<br />
<div class="additional">
Line 1<br />
Line 2<br />
</div>
<input type="submit" value="Click here" />
</li>
</ul>
</div>
Как я могу добиться того, чтобы расширялся только контейнер наведения, но не остальная часть строки?
Я могу / должен перекрывать 2-й ряд и перекрывать их контейнеры.
Комментарии:
1. Для этого вам придется задействовать некоторое абсолютное позиционирование, чтобы вывести расширяющиеся части из обычного потока компоновки.
Ответ №1:
Предложение @CBrow было правильным. Я создал перенос div
, который находится в абсолютном положении внутри относительного положения li
, который также имеет фиксированную высоту. Для перекрытия мне также нужно было добавить z-индекс при наведении курсора мыши на «активный» элемент
ul{
grid-column-gap: 21px;
grid-row-gap: 40px;
display: grid;
margin: 0;
padding: 0;
list-style: none outside;
clear: both;
grid-template-columns: repeat(3, 1fr);
}
ul li{
text-align: center;
width: auto;
margin: 0;
float: none;
height: 90px;
}
.additional{
height: 0;
opacity: 0;
transition: height 0.25s ease-out;
}
ul li:hover .additional{
height: 50px;
opacity: 1;
transition: height 0.25s ease-in,opacity 0.25s ease-in;
}
.container{
border: 2px solid #EAEAE3;
background-color: #FFFFFF;
padding: 10px 10px 10px 10px;
position: absolute;
z-index: 5;
}
<ul>
<li>
<div classs="container">
Title<br />
Image<br />
<div class="additional">
Line 1<br />
Line 2<br />
</div>
<input type="submit" value="Click here" />
</div>
</li>
<li><div classs="container">Title<br />Image<br /><div class="additional">Line 1<br />Line 2<br /></div><input type="submit" value="Click here" /></div></li>
<li><div classs="container">Title<br />Image<br /><div class="additional">Line 1<br />Line 2<br /></div><input type="submit" value="Click here" /></div></li>
<li><div classs="container">Title<br />Image<br /><div class="additional">Line 1<br />Line 2<br /></div><input type="submit" value="Click here" /></div></li>
<li><div classs="container">Title<br />Image<br /><div class="additional">Line 1<br />Line 2<br /></div><input type="submit" value="Click here" /></div></li>
<li><div classs="container">Title<br />Image<br /><div class="additional">Line 1<br />Line 2<br /></div><input type="submit" value="Click here" /></div></li>
</ul>
</div>
Ответ №2:
Возможно, вы захотите попробовать установить контейнер внутри div и задать параметры в html-файле.