当前位置:
  1. 首页 »
  2. 笔记 »
  3. 正文

CSS中的变量VAR()函数,CSS中var()的使用

零分 1,624

var() 函数用于插入 CSS 变量的值。CSS 变量可以访问 DOM,这意味着您可以创建具有局部或全局范围的变量,使用 JavaScript 来修改变量,以及基于媒体查询来修改变量。使用 CSS 变量的一种好方法涉及设计的颜色。您可以将它们放在变量中,而不必一遍又一遍地复制和粘贴相同的颜色。

var() 函数的语法

var(name, value)

name:必需。变量名(以两条破折号开头)。
value:可选。回退值(在未找到变量时使用)。
注释:变量名称必须以两个破折号(–)开头,且区分大小写!

var() 如何工作

首先:CSS 变量可以有全局或局部作用域。

全局变量可以在整个文档中进行访问/使用,而局部变量只能在声明它的选择器内部使用。
如需创建具有全局作用域的变量,请在 :root 选择器中声明它。 :root 选择器匹配文档的根元素。
如需创建具有局部作用域的变量,请在将要使用它的选择器中声明它。
首先,我们声明两个全局变量(–blue 和 –white)。然后,我们使用 var() 函数稍后在样式表中插入变量的值:

:root {
  --blue: #1e90ff;
  --white: #ffffff;
}

body { background-color: var(--blue); }

h2 { border-bottom: 2px solid var(--blue); }

.container {
  color: var(--blue);
  background-color: var(--white);
  padding: 15px;
}

button {
  background-color: var(--white);
  color: var(--blue);
  border: 1px solid var(--blue);
  padding: 5px;
}

使用 JavaScript 更改变量

CSS 变量可以访问 DOM,这意味着您可以通过 JavaScript 更改它们。

这个例子说明了如何创建脚本来显示并更改上一页中使用的示例中的 –blue 变量。

<;script>
// 获取根元素
var r = document.querySelector(':root');

// 创建获取变量值的函数
function myFunction_get() {
  // Get the styles (properties and values) for the root
  var rs = getComputedStyle(r);
  // Alert the value of the --blue variable
  alert("The value of --blue is: " + rs.getPropertyValue('--blue'));
}

// 创建设置变量值的函数
function myFunction_set() {
  // Set the value of variable --blue to another value (in this case "lightblue")
  r.style.setProperty('--blue', 'lightblue');
}
<;/script>

在媒体查询中使用变量

我们希望在媒体查询中修改变量值。
在这里,我们首先为 .containe 类声明一个名为 –fontsize 的新局部变量。我们将其值设置为 25 像素。然后我们在 .container 类中进一步使用它。然后,我们创建一个 @media 规则,内容为“当浏览器的宽度为 450px 或更宽时,将 .container 类的 –fontsize 变量值更改为 50px。”

/* 变量声明 */
:root {
  --blue: #1e90ff;
  --white: #ffffff;
}

.container {
  --fontsize: 25px;
}

/* 样式 */
body {
  background-color: var(--blue);
}

h2 {
  border-bottom: 2px solid var(--blue);
}

.container {
  color: var(--blue);
  background-color: var(--white);
  padding: 15px;
  font-size: var(--fontsize);
}

@media screen and (min-width: 450px) {
  .container {
    --fontsize: 50px;
  }
}

接下来的例子,我们还更改了 @media 规则中 –blue 变量的值:

/* 变量声明 */
:root {
  --blue: #1e90ff;
  --white: #ffffff;
}

.container {
  --fontsize: 25px;
}

/* 样式 */
body {
  background-color: var(--blue);
}

h2 {
  border-bottom: 2px solid var(--blue);
}

.container {
  color: var(--blue);
  background-color: var(--white);
  padding: 15px;
  font-size: var(--fontsize);
}

@media screen and (min-width: 450px) {
  .container {
    --fontsize: 50px;
  }
   :root {
    --blue: lightblue;
  }
}
标签:

网站设置开灯(亮模式/白天)和关灯(暗模式/黑夜)效果

在很早之前,这个效果叫做开灯/关灯,现在叫做白天/黑夜,曾经有那么一段时间没有看到过这种效果,现在又很多网站/APP都喜欢这种切换白天/黑夜模式。 实现效果:设置2套或者多套色调模板,和之前的那种换皮肤大差不差。所以博客新主题也设置了这么一个效果,样式布局基本没怎么改变,后台设置页升级了一下,很多东西都不再“写死”,可以自由设置! 白天模式效果: 黑夜模式效果: 感觉黑夜的色调比较好看。 总体涉及到的原理: 1、设计2套或者多套CSS样式,可以在body里添加一个class,后面保留class/ID样式名称不变,在不同的样式里给设计一个区域,通过body里的class名调用不同的样式CSS。
笔记 2,224

Tab手风琴弹出菜单遇到的问题,diaplay:block与JQ slideToggle 冲突,显示多次效果

在设计手风琴Tab展开收起菜单时,遇到了一个问题,第一次点击时,总是出现多次效果。 display:block,元素可见 slideToggle,当display:block可见时,显示JQ动画效果slideup,当display:none,不可见时,显示效果slideDown, 因为还要设计右边显示展开收起的图标(“+”可以展开,“-”,可收起),默认需要显示第一个菜单展开的效果。所以需要给一个CSS active,当已经展开时添加active,收起时移除active。 因为初次加载时需要展开第一个,所以第一个的初始值有active。 第一次使用时,贪图方便,就把display:block的
笔记 1,677

CSS并排,左边不抢空间,右边固定大小

CSS并排布局: flex,position,float,最近很少用float,感觉总是控制不好它。 最好用的布局,flex,右边设置好一个固定宽度,左边使用grow:1,或者width:calc(100% - 固定宽度)。 另外一种就是position,父层设置 position:relative,padding-right:右边的固定宽度,左边设置width:100%,右边设置position:absolute,固定在右边。 现在习惯用flex,flex,并排的两个层会自动自适应高度
笔记 1,249

CSS控制段落首字突显

CSS控制每段第一个字的样式: *{margin:0;padding:0;} p{width:150px;color:#000;font-size:1em;} p:first-letter{font-size:2.5em;padding-right:5px; text-transform:uppercase;}/*段落第一个字母样式 :first-letter ,另外text-transform:uppercase; 是将英文字母转换成大写格式输出 */ /* :first-letter样式中还可以使用行内元素的vertical-align属性,以控制同行内容的对齐方式,字体比较小时能派上用
笔记 2,458

H1的CSS样式解决占用一行的问题

H1标签的作用-网站建设,H1标签是在网站制作过程中,经常用到的一个标签,他的作用仅次于Title,在seo方面,这个标签还有H2,H3,这些标签用好了,对网站的优化会有事半功倍的效果。 H标签都是占用一行的。有时候,我们又不像让H标签占用一行!可以用CSS来限制 CSS:display:inline; width:auto; 对应的效果:
笔记 2,420