广告
返回顶部
首页 > 资讯 > 精选 >如何在css中自定义属性
  • 181
分享到

如何在css中自定义属性

2023-06-08 08:06:53 181人浏览 薄情痞子
摘要

本篇文章给大家分享的是有关如何在CSS中自定义属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1* css变量的语法<1> 什么是css变量?如果您使用过任何一种

本篇文章给大家分享的是有关如何在CSS中自定义属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1* css变量的语法

<1> 什么是css变量?

如果您使用过任何一种编程语言,那么您应该已经熟悉了变量的概念。 变量允许您存储和更新程序所需的值以便工作。

在CSS中使用变量的好处与在编程语言中使用变量的好处并没有太大的不同。

以下是规范对此的说法:

[Using CSS variables] makes it easier to read large files, as seemingly-arbitrary values now have infORMative names, and makes editing such files much easier and less error-prone, as one only has to change the value once, in the custom property, and the change will propagate to all uses of that variable automatically.

W3C Specification .

[使用CSS变量]可以更容易地读取大文件,因为看似任意的值现在具有信息性名称,并且使得编辑此类文件更容易且更不容易出错,因为只需要在自定义属性中更改一次值 ,这种更改将自动传播到所有使用该变量的地方。

<2>css自定义变量语法

要声明变量而不是常用的CSS属性(如颜色或填充),只需提供以 - - 开头的自定义命名属性:

.box{  --box-color: #4d4e53;  --box-padding: 0 10px;}

属性的值可以是任何有效的CSS值:颜色,字符串,布局值,甚至是表达式。

以下是一些有用的自定义属性:

:root{  --main-color: #4d4e53;  --main-bg: rgb(255, 255, 255);  --loGo-border-color: rebeccapurple;  --header-height: 68px;  --content-padding: 10px 20px;  --base-line-height: 1.428571429;  --transition-duration: .35s;  --external-link: "external link";  --margin-top: calc(2vh + 20px);    --foo: if(x > 5) this.width = 10;}

如果您不确定 :root,在html中它与html相同但具有更高的特异性,相当于全局变量。

<3> css变量的使用

var() 函数

您要通过 var() 这个 css 函数来使用 css 变量,将 css 变量名传入这个函数:

.box{  --box-color:#4d4e53;  --box-padding: 0 10px;  padding: var(--box-padding);}.box div{  color: var(--box-color);}

var() 函数的语法是:
 

var( <custom-property-name> [, <declaration-value> ]? )

方法的第一个参数是要替换的自定义属性的名称。函数的可选第二个参数用作回退值。如果第一个参数引用的自定义属性无效,则该函数将使用第二个值。

如果您不确定是否已定义自定义属性并且想要提供用作回退的值,则可以执行此操作。

例如:

color: var(--foo, red, blue); //将red, blue同时指定为回退值;即是说任何在第一个逗号之后到函数结尾前的值都会被考虑为回退值。

padding: var(--box-padding, var(--main-padding));

calc()函数

由于我们习惯使用预处理器和其他语言,我们希望在处理变量时能够使用基本运算符。 为此,CSS提供了一个calc()函数,它使浏览器在对自定义属性的值进行任何更改后重新计算表达式:

:root{  --indent-size: 10px;  --indent-xl: calc(2*var(--indent-size));  --indent-l: calc(var(--indent-size) + 2px);  --indent-s: calc(var(--indent-size) - 2px);  --indent-xs: calc(var(--indent-size)/2);}

如果您尝试使用无单位值,则使用calc()函数可以带来很大的方便:

:root{  --spacer: 10;}.box{  padding: var(--spacer)px 0;   padding: calc(var(--spacer)*1px) 0; }

css自定义属性的scop

自定义属性也遵守CSS层叠规则。
 

2* 利用js使用css自定义属性

假设您有一个名为 --left-pos 的 CSS 变量,其值为 100px,范围为 CSS 文档中的 .sidebar 类:

.sidebar {--left-pos: 100px;}

可以通过如下方式获取 --left-pos 的值:

const sidebarElement = document.querySelector('.sidebar');const cssStyles = getComputedStyle(sidebarElement);const cssVal = String(cssStyles.getPropertyValue('--left-pos')).trim();console.log(cssVal); //100px

设置css属性值:

sidebarElement.style.setProperty('--left-pos', '200px');

3* css 变量和预处理变量有什么不同?

在样式化网站时,您可能通过使用Sass和Less等预处理器来使得变量的更具有灵活性。

预处理器允许您设置变量,并在函数,循环,数学运算等中使用它们。这是否意味着CSS变量无关紧要?

不完全是,主要是因为CSS变量与预处理器变量不同。

差异源于CSS变量是在浏览器中运行的真正的CSS属性,而预处理器变量需要被编译成常规CSS代码,因此浏览器对它们一无所知。

这意味着您可以更新样式表文档中的CSS变量,内联样式属性和SVG表示属性,或者选择使用javascript 动态 操作它们。对于 CSS 自定义属性的修改,会立马传递到使用到他的地方,而预处理器则无法完成这种行为,因为他们是提前已经编译好了的!

这并不是说你需要在一个或另一个之间做出选择:没有什么能阻止你利用CSS和预处理器变量一起工作的超能力。

什么是css

css是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定义样式结构如字体、颜色、位置等的语言,并且css样式可以直接存储于HTML网页或者单独的样式单文件中,而样式规则的优先级由css根据这个层次结构决定,从而实现级联效果,发展至今,css不仅能装饰网页,也可以配合各种脚本对于网页进行格式化。

以上就是如何在css中自定义属性,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 如何在css中自定义属性

本文链接: https://www.lsjlt.com/news/252691.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在css中自定义属性
    本篇文章给大家分享的是有关如何在css中自定义属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1* css变量的语法<1> 什么是css变量?如果您使用过任何一种...
    99+
    2023-06-08
  • 怎么在css中自定义属性
    本篇文章为大家展示了怎么在css中自定义属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。css的全称是什么css的全称是Cascading Style Sheets(层叠样式表),它是一种用来表现...
    99+
    2023-06-14
  • 怎么在css中继承自定义属性
    今天就跟大家聊聊有关怎么在css中继承自定义属性,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。css的选择器有哪些css的选择器可以分为三大类,即id选择器、class选择器、标签选...
    99+
    2023-06-14
  • 如何在HTML5中自定义属性
    本篇文章为大家展示了如何在HTML5中自定义属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。HTML5 自定义属性网站中经常会看到以data-开头的属性定义,虽然W3C不认定,但最新HTML5规定...
    99+
    2023-06-09
  • 如何在css中定义zoom:1属性
    这期内容当中小编将会给大家带来有关如何在css中定义zoom:1属性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。css的全称是什么css的全称是Cascading Style Sheets(层叠样式表)...
    99+
    2023-06-08
  • 怎么在Html5中自定义属性
    这篇文章将为大家详细讲解有关怎么在Html5中自定义属性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。定义H5为我们提供了以 "data-" 为前缀定义需要的属性即可设置...
    99+
    2023-06-09
  • VB.NET如何自定义属性
    这篇文章主要介绍了VB.NET如何自定义属性,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类文件:(Class1)Imports System  &nbs...
    99+
    2023-06-17
  • Android自定义控件如何在XML文件中使用自定义属性
    目录前言一、为什么需要自定义控件二、具体步骤1.首先我们创建一个 layout xml文件:2.为自定义控件创建java类:3.在res/values下,新建一个attrs.xml文...
    99+
    2023-05-14
    Android XML自定义属性 Android 自定义控件
  • CSS自定义属性的示例分析
    这篇文章主要为大家展示了“CSS自定义属性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS自定义属性的示例分析”这篇文章吧。 兼容性 第一个问...
    99+
    2022-10-19
  • CSS如何定义和使用margin属性
    这篇文章主要介绍“CSS如何定义和使用margin属性”,在日常操作中,相信很多人在CSS如何定义和使用margin属性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS如何定义和使用margin属性”的疑...
    99+
    2023-07-04
  • wpf如何自定义控件属性
    在WPF中,可以通过创建自定义控件继承自现有的控件,并添加自定义属性来实现自定义控件属性。 以下是一个简单的示例,展示了如何创建一个...
    99+
    2023-10-24
    wpf
  • Android如何自定义视图属性
    本文实例为大家介绍了Android自定义视图属性的方法,供大家参考,具体内容如下 1. 自定义一个自己的视图类继承自View public class MyView exte...
    99+
    2022-06-06
    自定义 属性 视图 Android
  • vue如何获取自定义属性
    在vue中获取自定义属性的方法:1.新建vue.js项目;2.自定义button标签;3.执行代码获取标签属性;具体步骤如下:首先,在vue-cli中创建一个vue.js项目;vue create project-namevue.js项目创...
    99+
    2022-10-05
  • springboot如何读取自定义属性
    很多时候,我们开发当中,需要通过配置自己的属性信息来满足不同环境下的应用部署,因此需要springboot能够读取我们自定义的属性,常用的读取自定义属性有@Value和@Config...
    99+
    2022-11-13
  • CSS中padding属性定义了什么
    小编给大家分享一下CSS中padding属性定义了什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! CSS padding ...
    99+
    2022-10-19
  • 如何理解HTML5中的标准属性与自定义属性
    这篇文章将为大家详细讲解有关如何理解HTML5中的标准属性与自定义属性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。正如 HTML5 语法中所阐述的,元素可...
    99+
    2022-10-19
  • 如何自定义TopBar和属性封装
    这篇文章主要介绍“如何自定义TopBar和属性封装”,在日常操作中,相信很多人在如何自定义TopBar和属性封装问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何自定义TopBar和属性封装”的疑惑有所帮助!...
    99+
    2023-06-19
  • css中如何定位属性
    本篇内容介绍了“css中如何定位属性”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • html5中有哪些自定义属性
    今天就跟大家聊聊有关html5中有哪些自定义属性,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 定义H5为我们提供了以 "data-" 为前缀定义需要的...
    99+
    2023-06-09
  • 理解Android中的自定义属性
    本文实例讲解了Android中的自定义属性,具体内容如下 1、引言 对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现: 自定义一个CustomView(exten...
    99+
    2022-06-06
    自定义 属性 自定义属性 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作