首页CSSscss实现网格布局中的移入动画

scss实现网格布局中的移入动画

分类CSS时间2024-09-19 14:38:34发布RustStream浏览155
摘要:实现效果 原先效果 移入效果 代码如下 <div class="content"> <div class="item"</div><!--autointro-->...

实现效果

原先效果

null

移入效果

null

代码如下

<div class="content">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div>
<style lang="scss" scoped>
.content{
    width: 600px;
    height: 600px;
    margin: 0 auto;
    padding: 50px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;  // 列布局
    grid-template-rows: 1fr 1fr 1fr; // 行布局
    gap: 10px;  // 间隙
    transition: .5s;
}
.item{
    background: #999;
}

@for $i from 1 through 9 {
    .item:nth-child(#{$i}){
        background: hsl($i*40%, 100%, 75%);  // hsl  调色盘 (调色盘旋转角度,饱和度,亮度)
    }
    .content:has(.item:nth-child(#{$i}):hover) {
        $r: floor(($i - 1 ) / 3 + 1);
        $c: ($i - 1 ) % 3 + 1;
        $arr: 1fr 1fr 1fr;
        $row: set-nth($list: $arr, $n: $r, $value: 2fr);
        $columns: set-nth($list: $arr, $n: $c, $value: 2fr);
        /* 当第一个.item处于hover状态时,改变.content的样式 */
        grid-template-columns: $columns;
        grid-template-rows: $row;
    }
}

// 子元素需要改变其父元素
// 使用伪元素 :has   只有在子元素被鼠标移入后才会选中父元素
// .content:has(.item:nth-child(1):hover) {
//     /* 当第一个.item处于hover状态时,改变.content的样式 */
//     grid-template-columns: 2fr 1fr 1fr;
//     grid-template-rows: 2fr 1fr 1fr;
// }

</style>

本文链接:https://blog.smallhao.fun/?id=7 转载需授权!

分享到:

Chen’Blog版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

CSS
webworker实现不需要引用外部js文件运行 原生JS实现大文件多线程切片

游客 回复需填写必要信息
召唤伊斯特瓦尔