整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

如何使用CSS变量 - 通过代码示例解释

果你正在构建网站或Web应用程序,你应该已经知道代码重复被认为是一种不良实践。

这就是为什么你应该学习如何使用CSS变量来减少你编写的CSS代码量并将你的样式带到一个新的水平。

最成功的Web应用程序拥有令人惊叹的设计。不幸的是,为了达到预期的效果,Web开发人员需要准备大量的样式。这迫使我们在许多不同的元素中重复值,比如颜色。

幸运的是,现代样式表支持CSS变量,这使您可以减少代码库中的重复。你不需要像CSS模块、Less或SASS这样的外部工具来利用它。

在这个全面的指南中,我将向您展示如何有效地使用CSS变量,涵盖从纯HTML和CSS的基本示例到更高级的框架,如React和Next.js。

(本文内容参考:java567.com)

复杂的网站都会有大量的CSS代码,通常也会有许多重复的值。

举个例子,同样一个颜色值可能在成千上百个地方被使用到,如果这个值发生了变化,需要全局搜索并且一个一个替换,效率不高且容易出错。

自定义属性在某个地方存储一个值,然后在其他许多地方引用它。另一个好处是语义化的标识。比如,--main-text-color 会比 #00ff00 更易理解,尤其是这个颜色值在其他上下文中也被使用到。

概念

自定义属性(有时候也被称作CSS变量或者级联变量)是由CSS作者定义的,它包含的值可以在整个文档中重复使用。

由自定义属性标记设定值(比如: --main-color: black;),由 var() 函数来获取值(比如: color: **var(--main-color)**;)。

优势

在构建大型站点时,作者通常会面对可维护性的挑战。在这些网页中,所使用的CSS 的数量是非常庞大的,并且在许多场合大量的信息会重复使用。

例如,在网页中维护一个配色方案,意味着一些颜色在 CSS 文件中多次出现,并被重复使用。当你修改配色方案时,不论是调整某个颜色或完全修改整个配色,都会成为一个复杂的问题,不容出错,而单纯查找替换是远远不够的。

如果使用了CSS 框架,这种情况会变得尤其糟糕,此时如果要修改颜色,则需要对框架本身进行修改。

在这些场合使用 LESS 或 Sass 类似的预处理器是非常有帮助的,但是这种通过添加额外步骤的方式,可能会增加系统的复杂性。

CSS变量为我们带来一些预处理器的便利,并且不需要额外的编译。

这些变量的第二个优势就是名称本身就包含了语义的信息。CSS 文件变得易读和理解。main-text-color比文档中的#00ff00更容易理解,特别是同样的颜色出现在不同的文件中的时候。

用法

下面是 CSS 变量的使用方法和步骤。

CSS 中声明变量

我们都知道,在 JS 中要使用一个变量前,必须声明这个表变量。在 CSS 中也是一样的道理。

声明一个自定义属性,属性名需要以两个减号(--)开始,属性值则可以是任何有效的CSS值。和其他属性一样,自定义属性也是写在规则集之内的,如下:

body {
    --bg-color: #7F583F;
    --color: #F7EFD2;
}

上面代码中,body选择器里面声明了两个变量:--bg-color和--color。

它们与color、font-size等正式属性没有什么不同,只是没有默认含义。所以 CSS 变量(CSS variable)又叫做**"CSS 自定义属性"**(CSS custom properties)。

规则集所指定的选择器定义了自定义属性的可见作用域。通常的最佳实践是定义在根伪类 :root下,这样就可以在HTML文档的任何地方访问到它了:

:root {
    --main-bg-color: #eee;
}

自定义属性名是大小写敏感的,--my-color 和 --My-color 会被认为是两个不同的自定义属性。

CSS 中使用变量

通过var()函数来读取变量。语法如下:

var(custom-property-name, value)
  • name (必需) 变量名(以两条破折号开头)。
  • value (可选) 表示变量的默认值。如果该变量不存在,就会使用这个默认值。

变量名称必须以两个破折号(--)开头,且区分大小写!

使用方法:

element {
  background-color: var(--main-bg-color);
}

变量也可以使用在变量声明中:

:root {
  --primary-color: #eee;
  --primary-bg-color: var(--main-bg-color);
}

变量值只能用作属性值,不能用作属性名。

JS 操作 CSS 变量

在 JS 代码中,我们可能需要读取 CSS 变量的值,其方法如下:

const root = document.querySelector(":root");
// 设置 CSS 变量
root.style.setProperty("--main-bg-color", "red");
// 读取 CSS 变量
const computedStyle = getComputedStyle(root);
const mainBgColor = computedStyle.getPropertyValue("--main-bg-color");
console.log(mainBgColor);
// 删除 CSS 变量
root.style.removeProperty("--main-bg-color");

总结

以上就是关于 CSS 变量的一些基本概念及使用方法,更多详情待后续!

灵活使用 CSS 变量,不仅可以提高生产力,也能够提高代码的可阅读性和维护性。

~

~

~ 本文完

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

大家好!我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!

知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!

HTML文本格式化通常使用一系列特定的标签来改变文本的外观或结构。这些标签可以控制文本的字体、大小、颜色、对齐方式等,也可以用来标记文本的逻辑结构(如段落、标题、列表等)。除了这些基本的格式化标签,HTML还支持通过CSS(级联样式表)来更精细和灵活地控制文本的格式和样式。


参考文档:https://www.cjavapy.com/article/3306/


1、标题


HTML中,文本格式化和结构化主要通过一系列标签来完成,其中标题(Headings)标签是最常用于定义文本格式的元素之一。HTML提供了六级标题标签,从 <h1> 到 <h6>,<h1> 表示最高级别的标题,而 <h6> 表示最低级别的标题。这些标题标签不仅帮助改善网页的结构和可读性,还对搜索引擎优化(SEO)至关重要,因为搜索引擎使用这些标签来识别网页上的不同部分和内容的层次结构。每个级别的标题都有默认的样式,通常是不同的大小和加粗,以显示它们的层次结构


<h1>这是一个 H1 标题</h1>
<h2>这是一个 H2 标题</h2>
<h3>这是一个 H3 标题</h3>
<h4>这是一个 H4 标题</h4>
<h5>这是一个 H5 标题</h5>
<h6>这是一个 H6 标题</h6>


2、段落与换行


HTML中,文本格式化通常涉及使用特定的标签来控制文本的显示方式。段落和换行是两个基本但非常重要的文本格式化概念。用<p>创建段落,<br>插入换行。


1)段落 (<p> 标签)


<p> 标签自带上下边距,用以区分不同的段落。
<p>这是一个段落。</p>
<p>这是另一个段落。</p>


2)换行 (<br> 标签)


<br> 标签只是简单地添加一个换行点,不添加任何额外的空间或边距,并且通常用于诗歌或地址等需要精确控制换行位置的文本。


这是文本行的开始。<br>这是新的一行,但在同一个段落内。


3、强调文本


使用<em>和<strong>强调文本。HTML中,强调文本通常使用 <em> 和 <strong> 标签来实现。这两个标签既有语义意义,也影响文本的表现形式。


<em> 标签用于表示强调文本,通常表现为斜体,用以表示文本的轻度强调。


<strong> 标签用于表示更强烈的强调,通常表现为加粗,表示文本的高度强调。


<p>This is <em>emphasized</em> text.</p>
<p>This is <strong>strongly emphasized</strong> text.</p>


4、列表


HTML 提供了两种主要的列表类型:有序列表(<ol>)和无序列表(<ul>)。两种类型都使用列表项(<li>)来定义列表中的实际项。


1)有序列表


有序列表以 <ol> 标签开始。每个列表项都放在 <li> 标签内。列表是有序的,也就是每个项目都是编号的。这适用于项目顺序很重要的列表,如食谱或待办事项列表。


<ol>
  <li>第一项</li>
  <li>第二项</li>
  <li>第三项</li>
</ol>


2)无序列表


无序列表以 <ul> 标签开始。像有序列表一样,每个项都放在 <li> 标签内。然而,无序列表中的项目不是编号的。使用圆点符号进行表示。这适用于项目顺序不重要的列表,如购物清单。


<ul>
  <li>苹果</li>
  <li>香蕉</li>
  <li>橙子</li>
</ul>


5、使用示例


<!DOCTYPE html>
<html>
<head>
<title>文本格式化示例</title>
</head>
<body>

<h1>HTML 文本格式化</h1>
<p>这是一个<em>斜体</em>和<strong>加粗</strong>的示例。</p>
<p><u>这段文本下划线</u>和<s>这段文本是删除线</s>。</p>
<p>化学水分子公式为H<sub>2</sub>O,E=mc<sup>2</sup>。</p>

<pre>
这是预格式化文本,
保留了空格和
换行符。
</pre>

<blockquote>这是一个长引用的示例,可能包含多个段落。</blockquote>
<p>这是一个<q>短引用</q>的示例。</p>

<p>使用<code>HTML</code>和<code>CSS</code>进行网页设计。</p>
<p>按<kbd>Ctrl</kbd> + <kbd>C</kbd>复制文本。</p>
<p><samp>这是计算机程序的输出。</samp></p>
<p>在JavaScript中,<var>x</var>可以作为变量。</p>

</body>
</html>


参考文档:https://www.cjavapy.com/article/3306/