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

1.gif

此动画涉及到的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 (色相、饱和度、亮度)颜色模型来定义颜色,不同的参数值产生不同的颜色效果。

代码

<!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

.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

.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 ,然后点击 确定

cmd.png

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

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

   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 文件。

QQ截图20240813115948.png

Last modification:August 13, 2024
如果觉得我的文章对你有用,请随意赞赏