css常用功能
title: css常用功能 id: c14420b9a4256a01e07704d91c9b9129 tags: [] date: 2000/01/01 00:00:00 updated: 2023/03/04 19:29:12 isPublic: true --#|[分隔]|#--
css常用功能
js 读写 css
获取实时位置信息:getBoundingClientRect() 方法
getBoundingClientRect 方法返回元素的大小及其相对于视口的位置,返回的是 DOMRect 对象,此方式获取的元素尺寸和位置信息更方便。
语法:Element.getBoundingClientRect()
let htmlPositionInfo = document.querySelector('.p').getBoundingClientRect()
console.log(JSON.stringify(htmlPositionInfo))打印以下对象,能清楚的看到某个元素的尺寸和位置信息:
{
"x": 8,
"y": 92,
"width": 1973,
"height": 44,
"top": 92,
"right": 1981,
"bottom": 136,
"left": 8
}获取Dom设置的值:CSSStyleDeclaration 对象
CSSStyleDeclaration 对象是一个 CSS 声明块,CSS 属性键值对的集合,它暴露了样式信息和各种与样式相关的方法和属性。
CSSStyleDeclaration 对象中的 css 规则的键名是驼峰命名的写法。
以下三种方式,拿去到的都是 CSSStyleDeclaration 对象:
Element.style:只能读取到该 dom 节点的的行内样式声明的属性,可读可写,但写完后,也是写在了行内的样式中。getComputedStyle(Element):获取该 dom 节点的所有 css 样式属性计算后生成的 CSSStyleDeclaration,但是一个只读的对象。CSSStyleSheet API:不常用,比如,document.styleSheets[0].cssRules[0].style 会返回文档中第一个样式表中的第一条 CSS 规则
所以一般情况:
需要写时,使用第一种方法(
HTMLElement.style),只有这个才有写的功能。需要读时:使用上面第二种中方法(
getComputedStyle(Element))获取,可以读取到该 Dom 的全部的 css 样式值。
使用css变量功能
css的变量功能,主流浏览器均已经支持。
直接使用
下面这段代码的功能,能够实现和scss变量类似的功能。
而且,使用js是可以读取和设置css变量的。
使用 CSSStyleDeclaration 交互
css 中:
js 中:
css\less\scss的样式穿透写法
使用vue或react时,大多都会使用 scope来限制样式的生效范围,保证不影响全局或子组件的样式,但有时偏偏就需要样式穿透,修改子组件的样式。
而使用 css\less\scss 时,样式穿透的写法是不同的:
使用css:没有使用css预处理器,可以使用 >>>,/deep/,::v-deep 来样式穿透。
使用less或者node-sass:使用/deep/,::v-deep都可以。
使用dart-sass:使用::v-deep来样式穿透。
贝塞尔曲线生成
贝斯尔曲线是使用 js 或 css 制作动画时,很有用的一个工具,但它的使用还是有一定门槛的,看不懂公式和配置。
下面这个网站,可以所见即所得的,拖拽小球配置曲线,然后自动生成贝斯而曲线的配置,复制使用,很有用的工具:https://cubic-bezier.com/

以下是贝塞尔曲线的js实现,把上面网站的参数传入此函数,即可得到一个方法,一个传入进程值就能得到位置的方法
使用实例
设置滚动条样式
reset.css 去除浏览器默认样式
Last updated
Was this helpful?