CSS自定义属性改变网站布局和颜色(2),关于前端开发你必须要懂的APK瘦身知识

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

在本教程中,我们将探索如何使用CSS变量实现网站建立到名为NoteApp的模拟Web应用程序。这将涉及编写CSS和JavaScript以允许用户更改颜色方案并切换显示的列数。然后,我们将利用Web Storage API来确保为将来的会话保存任何更改。

获取教程文件

首先,从Web Designer的FileSilo下载项目文件。要做到这一点,去吧FileSilo在本教程旁边选择免费资料和免费内容。注意:首次用户必须注册才能使用FileSilo。

01.设置工作区

在“ / website-template ”目录中,您将找到静态NoteApp网页,我们将使用CSS变量和Web Storage API实现网站建设。打开您首选文本编辑器中的目录。

02.设置我们的CSS变量

在’ main.css '中,您会发现很多项目的CSS。在顶部,创建一个针对“ root ”伪类的块。在其中定义变量,如下面的代码段。该根块包含全局变量,它将像任何常规的CSS属性一样级联到我们的样式表中。

:root {

–primary: #2F353E;

–secondary: #2B9BCA;

–tertiary: #F3583F;

–quaternary: #E0E1E2;

–quinary: #FFFFFF;

}

03.用变量替换颜色

通过手动或使用find / replace进行样式表,并从根块中与其对应的变量交换任何静态颜色十六进制代码。为此,请使用var函数并传递变量的名称。这告诉浏览器引用该变量的值。例如:

.c-header {

background-color:var(–primary);

color:var(–quinary);

}

找到图标的内联SVG

打开’ index.html ‘,你注意到的第一件事就是一个大的SVG元素。它包含所有页面的图标的路径,每个图标都包含在符号元素中,并赋予唯一的ID。这些符号在需要时使用’ use '元素进行引用,允许重复使用图标而不会重复SVG代码。

添加CSS变量到SVG

使用内联SVG而不是.SVG文件的一个好处是CSS可以访问其内部结构。这意味着我们的CSS变量(除了Edge,在写作时)。在“ index.html ”中,将SVG的样式块替换为下面的代码段。现在,每个SVG的颜色都链接到我们的CSS变量的值。

创建一个列变量

我们也可以为颜色以外的属性使用CSS变量。在根块中创建一个新变量,将其称为“ 列 ”,并赋值为3.这应该与页面上“ 列 ”UI组件的默认值相匹配。功能完成后,此组件将切换列数。

:root {

–primary: #2F353E;

–secondary: #2B9BCA;

–tertiary: #F3583F;

–quaternary: #E0E1E2;

–quinary: #FFFFFF;

–columns: 3;

}

实施列切换

使用我们的新列变量和calc()函数,我们现在将计算每个音符组件应该多大,以创建正确数量的列。例如,如果列设置为4,则每个音符的宽度应为25%。

.c-note {

width:calc(100% / var(–columns));

}

添加JS类和数据属性

当将JS行为应用于DOM元素时,通过具有JS前缀的类来挂接它。这将元素的功能方面与CSS脱钩。我们为所有的颜色和无线电输入添加一个’ js-update-variable ‘类,并引用一个’ data-attribute '来引用要更新的对应变量。

class=“js-update-variable u-hidden-visually”

data-variable=“primary”>

添加JS来更新CSS变量

打开’ main.js ‘并添加下面的代码段。这循环了我们所有的’ js-update-variable '输入,并添加了逻辑,所以在更改时,其数据变量属性中引用的变量将更新为输入值。颜色色板和列切换应该现在正在工作!

var varTrig = document

.querySelectorAll(“.js-update-variable”);

for(var i = 0; i < varTrig.length; i++){

varTrig[i]

.addEventListener(“change”, function(){

document.documentElement.style

.setProperty(“–” + this.dataset.variable,

this.value);

});

}

10.将JS类附加到保存按钮

只有当用户点击保存按钮时,才能保存用户的配色方案,这样可以让他们尽可能多地尝试主题,而不会自动覆盖当前的配置。要开始,将’ .js-save-colors '添加到“ 保存 ”按钮以作为我们的JS钩子。

data-modal=“js-modal” data-modal

-content=“js-colours-modal-content”>

Save

11.创建颜色数组

返回’ main.js ‘,声明一个名为’ colors ’ 的新变量,并分配一个包含所有要保存的所有颜色变量的新数组,一旦保存按钮被点击。

var colours = [

“primary”,

“secondary”,

“tertiary”,

“quaternary”,

“quinary”

];

12.构建保存按钮事件侦听器

在colors数组下方,为“ js-save-colors ”类创建一个点击事件侦听器,我们以前添加到“保存”按钮。在其中创建一个名为’ htmlStyles ’ 的新变量,并为其分配根HTML元素的计算属性。我们将使用它来访问我们的CSS变量。

document.querySelector(“.js-save-colours”)

.addEventListener(“click”, function() {

var htmlStyles = window

.getComputedStyle(document

.querySelector(“html”)),

}),

记录CSS颜色变量

接下来,在事件侦听器中,创建一个名为“ coloursToSave ” 的新变量,并为其分配一个空对象。接下来,使用第11步中的’ colors ‘数组创建一个FOR循环。在其中,我们将把’ colors ‘数组中提到的变量的完整键/值记录添加到’ coloursToSave '对象。

array to the ‘coloursToSave’ object.

coloursToSave = new Object;

for(var i = 0; i < colours.length; i++) {

coloursToSave[colours[i]] = htmlStyles

.getPropertyValue(“–” + colours[i]);

}

14.将coloursToSave发送到localStorage

紧跟潮流

大前端和全栈是以后前端的一个趋势,懂后端的前端,懂各端的前端更加具有竞争力,以后可以往这个方向靠拢。

这边整理了一个对标“阿里 50W”年薪企业高级前端工程师成长路线,由于图片太大仅展示一小部分

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
c9d62e0e9eff.png)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-HlCsauMn-1713291087945)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值