Myz*_*394 5 html css alignment css3 css-grid
我是CSS的网格新手,但我想尝试一下.我有一个3x3盒子的网格.当我将鼠标悬停在一个盒子上时,它应该应该排出整行...但是这不起作用.
当我将鼠标悬停在1屏幕上时,它会完全填满屏幕,当我将鼠标悬停在3屏幕上时,它会开始闪烁并且无法正常工作.
.container {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(3, minmax(100px, auto));
grid-template-rows: repeat(3, minmax(100px, auto));
}
[class^="item"] {
text-align: center;
box-sizing: border-box;
padding: 10%;
font-size: 5em;
color: #0580d5;
transition: .2s;
}
[class^="item"]:hover {
grid-column-start: 1;
grid-column-end: 4;
}
.item-1 {
/*grid-area: 1 / 2 / span 2 / span 2;*/
}
.container>div {
border: 2px solid #0580d5;
background-color: rgba(40, 180, 240, .3);
border-radius: 5px;
}
@media only screen and (min-width: 789px) {
.container {
grid-template-columns: repeat(3, 1fr);
}
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="item-1">1</div>
<div class="item-2">2</div>
<div class="item-3">3</div>
<div class="item-4">4</div>
<div class="item-5">5</div>
<div class="item-6">6</div>
<div class="item-7">7</div>
<div class="item-8">8</div>
<div class="item-9">9</div>
</div>Run Code Online (Sandbox Code Playgroud)
这是一个想法,您可以依靠负边距来创建重叠效果,而无需更改结构并使用display:contents
.container {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(3, minmax(100px, auto));
grid-template-rows: repeat(3, minmax(100px, auto));
}
[class^="item"] {
text-align: center;
box-sizing: border-box;
padding: 10%;
font-size: 5em;
color: #0580d5;
transition: .2s;
}
[class^="item"]:hover {
z-index:2; /*we increase the z-index to cover the other*/
background:
/*we this to keep the initial background*/
linear-gradient(rgba(40, 180, 240, .3),rgba(40, 180, 240, .3)),
#fff;
}
[class^="item"]:nth-child(3n + 1):hover {
margin-right:calc(-200% - 20px); /* we remove (2 x grid items + 2 x gap) */
}
[class^="item"]:nth-child(3n + 2):hover {
margin-left:calc(-100% - 10px);
margin-right:calc(-100% - 10px);
}
[class^="item"]:nth-child(3n + 3):hover {
margin-left:calc(-200% - 20px);
}
.container>div {
border: 2px solid #0580d5;
background-color: rgba(40, 180, 240, .3);
border-radius: 5px;
}
@media only screen and (min-width: 789px) {
.container {
grid-template-columns: repeat(3, 1fr);
}
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="item-1">1</div>
<div class="item-2">2</div>
<div class="item-3">3</div>
<div class="item-4">4</div>
<div class="item-5">5</div>
<div class="item-6">6</div>
<div class="item-7">7</div>
<div class="item-8">8</div>
<div class="item-9">9</div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |