CSS变量与函数的运用!
发布时间:2024-11-19 18:28:41
CSS变量和函数
一、var():CSS变量的使用
var() 是 CSS 中用于调用 自定义属性(CSS变量) 的函数,类似于编程中的变量,能够让样式更加灵活和可维护。
1.基本语法
:root {
--main-color: #008cba; /* 定义CSS变量 */
--font-size: 16px;
}
.box {
background-color: var(--main-color); /* 使用CSS变量 */
font-size: var(--font-size);
}
解释:
--main-color 和 --font-size 是在 CSS 中定义的变量(变量名称以两个连字符 -- 开头)。 var(--变量名) 用来引用这些变量,应用到样式中。
2.特点
灵活性:改动变量的值可以全局生效,避免逐一修改样式。 作用域:CSS变量有作用域,可以被限定在某个选择器中,也可以全局定义在 :root 中。 默认值:支持提供备用值,当变量未定义时使用默认值:
css color: var(--secondary-color, black); /* 如果 --secondary-color 未定义,使用 black */
3. 实用案例
颜色主题切换
```css :root { --background: white; --text-color: black; }
.dark-theme { --background: black; --text-color: white; }
body { background-color: var(--background); color: var(--text-color); } ```
通过切换 class="dark-theme" 可以轻松实现深色主题。
响应式设计
```css :root { --font-size: 16px; }
@media (max-width: 600px) { :root { --font-size: 14px; } }
p { font-size: var(--font-size); } ```
通过改变变量值实现对小屏幕的自适应。
二、attr():HTML属性的值用于样式或内容
attr() 是 CSS 中的一种函数,用来获取 HTML属性的值,并将其用作内容或样式的一部分。
1.基本语法
.box::before {
content: attr(data-value); /* 获取HTML属性值 */
}
attr(attribute-name) 会获取指定元素的某个属性值。 常用场景是将属性值动态显示在页面上,特别是用在 content 属性中。
2.实用案例
动态内容展示
假设有如下 HTML:
```html
```
我们用 CSS 动态展示 data-value 的值:
css .box::after { content: attr(data-value); /* 获取 data-value 的值 */ font-size: 16px; color: #333; }
效果:在 .box 的后面会显示其 data-value 的内容(200)。
链接属性显示
HTML:
html <a href="https://example.com" class="link">Visit</a>
CSS:
css .link::after { content: " (" attr(href) ")"; /* 显示链接地址 */ font-size: 14px; color: gray; }
效果:链接文字后面会显示其 href 属性的内容:
结合伪类制作提示框
HTML:
html <button class="tooltip" data-tooltip="点我!">Hover me</button>
CSS:
```css .tooltip { position: relative; }
.tooltip::after { content: attr(data-tooltip); / 动态获取提示文本 / position: absolute; top: -30px; left: 50%; transform: translateX(-50%); background-color: #333; color: #fff; padding: 5px 10px; border-radius: 4px; white-space: nowrap; font-size: 12px; display: none; }
.tooltip:hover::after { display: block; / 鼠标悬停时显示 / } ```
效果:当鼠标悬停在按钮上时,显示提示框内容。
3.注意事项
attr() 主要用于 content 属性,不能直接应用于样式值(如宽高、颜色等)。 不支持这样写:width: attr(data-width)。 使用前要确保 HTML 属性存在,否则会返回空字符串。
三、对比 var() 和 attr()
| 功能 | var() | attr() | | ---------------- | ---------------------------------------- | ------------------------------ | | 作用 | 调用 CSS 变量的值 | 获取 HTML 属性的值 | | 灵活性 | 适合全局共享样式,如主题切换、响应式设计 | 用于动态显示或读取 HTML 属性值 | | 支持范围 | 任意 CSS 属性 | 仅限 content 属性 | | 实际应用场景 | 配置全局变量、动态控制主题 | 动态显示 data-* 等属性值 |