CSS样式:使用flex布局实现网格样式的动画

一、使用效果

老规矩,先看看实现的效果,如下

原理很简单:通过:hover+关键帧将子元素的flex:1改为flex:2,代码如下

二、代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>flex中的网格状布局</title>
  </head>
  <body>
    <div class="page">
      <div class="box">
        <div class="top">
          <div class="a"></div>
          <div class="b"></div>
          <div class="c"></div>
        </div>
        <div class="center">
          <div class="d"></div>
          <div class="e"></div>
          <div class="f"></div>
        </div>
        <div class="bottom">
          <div class="g"></div>
          <div class="h"></div>
          <div class="i"></div>
        </div>
      </div>
    </div>
  </body>
  <style>
    .page {
      display: flex;
      width: 100vw;
      height: 100vh;
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: #2d2525;
    }

    .box {
      width: 600px;
      height: 600px;
      display: flex;
      flex-direction: column;
    }

    .box > div > div {
      margin: 5px;
    }
    .top {
      flex: 1;
      display: flex;
    }
    .top:hover {
      flex: 2;
      animation: big 0.5s;
    }
    .top > div:hover {
      flex: 2;
      animation: big 0.5s;
    }
    .center {
      flex: 1;
      display: flex;
    }
    .center:hover {
      flex: 2;
      animation: big 0.5s;
    }
    .center > div:hover {
      flex: 2;
      animation: big 0.5s;
    }
    .bottom {
      flex: 1;
      display: flex;
    }
    .bottom:hover {
      flex: 2;
      animation: big 0.5s;
    }
    .bottom > div:hover {
      flex: 2;
      animation: big 0.5s;
    }
    .a {
      flex: 1;
      background-color: #e7ce0f;
    }
    .b {
      flex: 1;
      background-color: #e73e0f;
    }
    .c {
      flex: 1;
      background-color: #786e24;
    }
    .d {
      flex: 1;
      background-color: #4ebf34;
    }
    .e {
      flex: 1;
      background-color: #a30fe7;
    }
    .f {
      flex: 1;
      background-color: #78242a;
    }
    .g {
      flex: 1;
      background-color: #0fe7bf;
    }
    .h {
      flex: 1;
      background-color: #5c5350;
    }
    .i {
      flex: 1;
      background-color: #c1ffb8;
    }
    @keyframes big {
      0% {
        flex: 1;
      }
      100% {
        flex: 2;
      }
    }
  </style>
</html>

三、更多的样式

同理,我们可以运用flex布局实现更多的表格形式,如下

参考文章:

关于flex布局可以参考这篇文章:弹性盒子布局详解(flex布局)-CSDN博客

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是一些常见的CSS样式,用于创建页面布局、图片样式和文字样式: ## 页面布局 ### 1. Flexbox布局 Flexbox布局可以让元素沿着主轴和交叉轴进行布局,非常适合响应式设计。以下是一些常用的CSS属性: ```css .container { display: flex; /* 将容器变为Flexbox布局 */ flex-direction: row; /* 主轴方向 */ justify-content: center; /* 对齐方式 */ align-items: center; /* 交叉轴对齐方式 */ } ``` ### 2. Grid布局 Grid布局可以创建网格布局,非常适合复杂的布局设计。以下是一些常用的CSS属性: ```css .container { display: grid; /* 将容器变为Grid布局 */ grid-template-columns: repeat(3, 1fr); /* 列定义 */ grid-template-rows: 1fr 2fr 1fr; /* 行定义 */ gap: 10px; /* 格子间距 */ } ``` ## 图片样式 ### 1. 圆形图片 ```css img { border-radius: 50%; /* 将图片边框设置为圆形 */ } ``` ### 2. 图片滤镜 ```css img { filter: grayscale(100%); /* 将图片变成黑白色 */ } ``` ### 3. 图片遮罩 ```css .container { position: relative; /* 父容器需要设置为相对定位 */ } img { position: absolute; /* 图片需要设置为绝对定位 */ top: 0; left: 0; z-index: -1; /* 图片需要设置为负的z-index,以便遮住下面的内容 */ opacity: 0.5; /* 图片需要设置透明度 */ } ``` ## 文字样式 ### 1. 渐变文字 ```css h1 { background-image: linear-gradient(to right, #ffbe0b, #fb5607, #ff006e); /* 将文字背景设置为渐变 */ -webkit-background-clip: text; /* 将背景剪切到文字上 */ -webkit-text-fill-color: transparent; /* 将文字颜色设置为透明 */ } ``` ### 2. 文字描边 ```css h1 { -webkit-text-stroke: 1px black; /* 将文字描边 */ color: white; /* 设置文字颜色 */ } ``` ### 3. 文字阴影 ```css h1 { text-shadow: 2px 2px 4px #000000; /* 添加文字阴影 */ } ``` 以上只是一些简单的例子,您可以根据需要进行更多的样式设计。希望这可以帮助到您! ### 回答2: 使用CSS可以为网页设计各种炫酷的页面布局、图片样式和文字样式。以下是一些例子来展示如何通过CSS实现炫酷效果。 页面布局: 1. 使用CSS网格布局可以创建分栏效果。通过设置不同的网格大小和位置,可以创建出独特的页面布局。 2. 使用CSS Flexbox可以实现灵活的页面布局,通过调整项的对齐方式和排列顺序,可以使布局更加动态和有趣。 图片样式: 1. 使用CSS变换属性,如旋转、缩放和扭曲,可以为图片添加特殊的效果,使其独特而生动。 2. 使用CSS过渡和动画属性,可以实现平滑过渡和动画效果,使图片动态起来。 文字样式: 1. 使用CSS字体属性,可以选择不同的字体类型、字号和颜色,使文字更加独特。 2. 使用CSS文本阴影效果,可以为文字添加立体、发光或模糊等效果,使其更加引人注目。 总结起来,通过CSS的各种属性和技巧,可以实现丰富多样的页面布局、图片样式和文字样式。只要发挥想象力,加入一些创意和独特的设计,就能创造出令人赞叹的炫酷效果。 ### 回答3: 使用CSS可以为网页添加各种布局,图片样式和文字样式,使页面更加炫酷。 首先,在HTML文件中引入CSS文件:在<head>标签内使用<link>标签,将CSS文件链接到HTML中,例如: <link rel="stylesheet" href="styles.css"> 接下来,可以使用CSS选择器来选择特定的元素进行样式设置。例如,选择所有图片元素,设置宽度、高度和边框样式: img { width: 300px; height: 200px; border: 2px solid #000; } 这样可以让所有图片都具有固定的宽度、高度和边框样式。 同时,可以使用CSS样式设置文字样式,例如设置字体、字号和颜色: p { font-family: Arial, sans-serif; font-size: 16px; color: #FF0000; } 这样可以让所有段落具有特定的字体、字号和颜色。 此外,可以使用CSS属性来实现动态效果,例如使用过渡效果和动画效果。例如: .box { width: 100px; height: 100px; background-color: #00FF00; transition: width 2s, height 2s; } .box:hover { width: 200px; height: 200px; } 这样,当鼠标悬停在一个具有.class为box的元素上时,元素的宽度和高度会缓慢过渡到200px。 总结起来,使用CSS可以通过设置不同的布局样式和效果,使页面更加炫酷。通过选择器选择特定的元素,设置其样式属性,以及使用过渡效果和动画效果,可以实现各种炫酷的页面布局、图片样式和文字样式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值