当前位置: 首页 > news >正文

【网页】CSS原子化+变量尝试

概述

最近想做一个卡片形式的网页工具,可以生成好看的小红书笔记,不喜欢用前端别人写的东西,尝试了一下CSS原子化,确实能用比较少的代码完成很好的功能。

结合一些现成的工具,可以很简单的扩展样式。

目前积累的代码

.box{width: 200px;aspect-ratio: 1;}
/* 线性渐变文本 */
.gradient_text_red_blue{
    background: linear-gradient(to right,red,blue);
    background-clip: text;
    color: transparent;
}
/* 圆角 */
.r5{border-radius: 5px;}
.r10{border-radius: 10px;}
.r15{border-radius: 15px;}
/* 内边距 */
.pd10{padding: 10px;}
/* 比例 */
.aspect_4_3{aspect-ratio: 4/3;}
.aspect_16_9{aspect-ratio: 16/9;}
/* 渐变背景 */
.linear_bg_45_red_yellow{background: linear-gradient(45deg,red,yellow);}
/* 毛玻璃 */
.glass{
    background-color:rgba(255, 255, 255, 0.05);
    backdrop-filter:blur(5px);
}
/* 阴影 */
.shadow{ox-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1);}
/* ------------------------------ 特殊背景 ------------------------------ */
/* 棋盘格 */
.bg_checker_board{
background-color: #eee;
background-image: linear-gradient(45deg, black 25%, transparent 25%, transparent 75%, black 75%, black),
linear-gradient(45deg, black 25%, transparent 25%, transparent 75%, black 75%, black);
background-size: 60px 60px;
background-position: 0 0, 30px 30px;
}

使用:

<div class="box aspect_16_9 linear_bg_45_red_yellow r15 pd10">
    <p class="gradient_text_red_blue">这是一段普通的文本。</p>
    
</div>

效果:

可以看到,原子化的CSS具有很强的复用性,对于一些小页面,十几二十行的CSS就可以搞定很多东西。

加入变量控制

CSS变量,可以进一步简化CSS的样式控制。

/* 变量 */
:root{
    --color1:rgb(89, 116, 34);
    --color2:rgb(84, 68, 9);
    --deg:90deg;
}

/* 宽度 */
.w200{width:200px;}
.w400{width:400px;}
.w800{width:800px;}

/* 线性渐变文本 */
.gradient_text_red_blue{
    background: linear-gradient(var(--deg),var(--color1),var(--color2));
    background-clip: text;
    color: transparent;
}
/* 圆角 */
.r5{border-radius: 5px;}
.r10{border-radius: 10px;}
.r15{border-radius: 15px;}
/* 内边距 */
.pd10{padding: 10px;}
.pd20{padding: 20px;}
.pd40{padding: 40px;}
/* 比例 */
.aspect_4_3{aspect-ratio: 4/3;}
.aspect_16_9{aspect-ratio: 16/9;}
.aspect_3_4{aspect-ratio: 3/4;}
/* 渐变背景 */
.linear_bg_45_red_yellow{background: linear-gradient(var(--deg),var(--color1),var(--color2));}
/* 毛玻璃 */
.glass{
    background-color:rgba(255, 255, 255, 0.8);
    backdrop-filter:blur(25px);
}
/* 阴影 */
.shadow{box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);}
/* ------------------------------ 特殊背景 ------------------------------ */
/* 棋盘格 */
.bg_checker_board{
background-color: #eee;
background-image: linear-gradient(45deg, black 25%, transparent 25%, transparent 75%, black 75%, black),
linear-gradient(45deg, black 25%, transparent 25%, transparent 75%, black 75%, black);
background-size: 60px 60px;
background-position: 0 0, 30px 30px;
}

测试:

<div class="w400 aspect_3_4 bg_checker_board pd40">
    <div class="w400 pd10 aspect_3_4 shadow glass r15 pd10">
        <h1 class="gradient_text_red_blue">这里是标题</h1>
    </div>
</div>

效果:

相关文章:

  • test skills
  • openai 标准化协议 Structured Outputs 具体示例教程
  • Django settings.py 文件全解析
  • 案例:图书管理
  • 如何保证消息不被重复消费?(如何保证消息消费的幂等性)
  • golang-嵌套结构体
  • Unity利用噪声生成动态地形
  • vscode/windsurf/trae无法识别junit的@Test注解解决办法
  • C# WPF编程-启动新窗口
  • 新版AndroidStudio / IDEA上传项目到Gitee
  • 时间语义与窗口操作:Flink 流式计算的核心逻辑
  • Excel VBA实现智能合并重复元器件数据(型号去重+数量累加)
  • golang函数与方法的区别
  • 【组件安装】Ubuntu 22.04.5 desktop 安装 Anyware Agent
  • springboot441-基于SpringBoot的校园自助交易系统(源码+数据库+纯前后端分离+部署讲解等)
  • c++ 类和对象 —— 中 【复习笔记】
  • UE5中 Character、PlayerController、PlayerState、GameMode和GameState核心类之间的联动和分工·
  • 【从零开始学习计算机科学】软件工程(一)软件工程中的过程模型
  • 分布式 IO 模块:助力实现智慧仓储
  • 2.2 B/S架构和Tomcat服务器
  • 文天祥与“不直人间一唾轻”的元将唆都
  • 解放日报头版聚焦“人民城市”:共建共享展新卷
  • 餐饮店直播顾客用餐,律师:公共场所并非无隐私,需对方同意
  • 人社部:我国劳动力市场潜力足,韧性强
  • 夜读丨庭院春韵
  • 首映|《人生开门红》:段子背后都是案子