前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >css 选中缩放九宫格

css 选中缩放九宫格

作者头像
友儿
发布2024-08-14 15:09:22
760
发布2024-08-14 15:09:22
举报
文章被收录于专栏:友儿

要求当前选中的9宫格放大显示,其他相邻缩小,如下图所示

此动画涉及到的css知识点

一、容器设置

  1. display: grid; :将容器的布局方式设置为网格布局。
  2. grid-template-columns: 1fr 1fr 1fr; :定义网格的列宽为三个相等的部分,使用 fr 单位实现弹性布局。
  3. grid-template-rows: 1fr 1fr 1fr; :定义网格的行高为三个相等的部分。
  4. gap: 10px; :设置网格单元格之间的间距为 10 像素。
  5. transition: 0.5s; :为容器添加 0.5 秒的过渡效果,使状态变化更加平滑。

二、子元素选择器

  1. .item:nth-child(1) :选择第一个子元素。
  2. .item:nth-child(2) :选择第二个子元素,以此类推。

三、父元素悬停状态

  1. container:has(.item:nth-child(1):hover) :当第一个子元素悬停时,应用特定的样式到父元素 container
  2. 类似的规则如 container:has(.item:nth-child(2):hover) 等,根据不同子元素的悬停状态改变父元素的网格布局。

四、颜色表示

  1. hsl(40, 100%, 74%) :使用 hsl (色相、饱和度、亮度)颜色模型来定义颜色,不同的参数值产生不同的颜色效果。

代码

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>9宫格</title>
    <link rel="stylesheet" href="main.css">
</head>
<body>
<div class="container">
    <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>
</body>
</html>

代码scss

代码语言:javascript
复制
.container {
  width: 400px;
  height: 400px;
  margin: 50px auto 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  gap: 10px;
  transition: 0.5s;
}

@for $i from 1 through 9 {
  .item:nth-child(#{$i}) {
    background: hsl($i * 40%, 100%, 74%);
  }
  .container:has(.item:nth-child(#{$i}):hover) {
      $r : floor(($i - 1) / 3) + 1;
      $c : ($i - 1) % 3 + 1;
      $list : 1fr 1fr 1fr;
      $rows: set-nth($list, $r, 2fr);
      $cols: set-nth($list, $c, 2fr);
      grid-template-columns: $cols;
      grid-template-rows: $rows;
  }
}

代码css

代码语言:javascript
复制
.container {
  width: 400px;
  height: 400px;
  margin: 50px auto 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  gap: 10px;
  transition: 0.5s;
}

.item:nth-child(1) {
  background: hsl(40, 100%, 74%);
}

.container:has(.item:nth-child(1):hover) {
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 2fr 1fr 1fr;
}

.item:nth-child(2) {
  background: hsl(80, 100%, 74%);
}

.container:has(.item:nth-child(2):hover) {
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: 2fr 1fr 1fr;
}

.item:nth-child(3) {
  background: hsl(120, 100%, 74%);
}

.container:has(.item:nth-child(3):hover) {
  grid-template-columns: 1fr 1fr 2fr;
  grid-template-rows: 2fr 1fr 1fr;
}

.item:nth-child(4) {
  background: hsl(160, 100%, 74%);
}

.container:has(.item:nth-child(4):hover) {
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 2fr 1fr;
}

.item:nth-child(5) {
  background: hsl(200, 100%, 74%);
}

.container:has(.item:nth-child(5):hover) {
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: 1fr 2fr 1fr;
}

.item:nth-child(6) {
  background: hsl(240, 100%, 74%);
}

.container:has(.item:nth-child(6):hover) {
  grid-template-columns: 1fr 1fr 2fr;
  grid-template-rows: 1fr 2fr 1fr;
}

.item:nth-child(7) {
  background: hsl(280, 100%, 74%);
}

.container:has(.item:nth-child(7):hover) {
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 2fr;
}

.item:nth-child(8) {
  background: hsl(320, 100%, 74%);
}

.container:has(.item:nth-child(8):hover) {
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: 1fr 1fr 2fr;
}

.item:nth-child(9) {
  background: hsl(0, 100%, 74%);
}

.container:has(.item:nth-child(9):hover) {
  grid-template-columns: 1fr 1fr 2fr;
  grid-template-rows: 1fr 1fr 2fr;
}

/*# sourceMappingURL=main.css.map */

phpstorm 使用 scss 编写 css

一、安装 Node.js

  1. 访问 Node.js 官方网站(https://nodejs.org/ )。
  2. 下载适合您 Windows 系统的安装程序(32 位或 64 位)。
  3. 运行安装程序,按照默认设置进行安装。

二、打开命令提示符(CMD)或 Windows PowerShell

  1. 按下 Win + R 键,输入 cmdpowershell ,然后点击 确定

三、使用 NPM(Node.js 的包管理器)安装 Sass

在命令提示符或 PowerShell 中,运行以下命令来全局安装 Sass: 在 Windows 系统中,您可以通过以下命令来切换 NPM 的镜。安装

代码语言:javascript
复制
   npm config set registry http://mirrors.cloud.tencent.com/npm/
   npm install -g sass

四、安装 File Watcher 插件

  1. 打开 PHPStorm,点击顶部菜单栏的 File -> Settings
  2. 在打开的设置窗口中,点击 Plugins
  3. 在搜索框中输入 File Watcher ,然后安装并重启 PHPStorm 。

五、配置 File Watcher

  1. 再次进入 File -> Settings
  2. 这次点击 Tools -> File Watchers
  3. 点击 + 号添加新的 File Watcher 。
  4. 在弹出的窗口中:Name :输入一个有意义的名称,比如 SCSS Compilation 。File type :选择 SCSS 。Scope :根据您的需求选择项目范围。Program :设置为您之前全局安装 Sass 时的可执行文件路径。Arguments :一般输入 FileName FileNameWithoutExtension.css 。Output paths to refresh :输入 FileNameWithoutExtension.css 。
  5. 点击 OK 保存设置。

配置完成后,当您修改 SCSS 文件时,PHPStorm 会自动编译生成对应的 CSS 文件。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档