CSS自定义属性改变网站布局和颜色

编写更好CSS的指南

许多开发人员已经使用具有诸如Sass或Less之类的预处理器的变量作为减少代码重复的手段。本机CSS变量的工作方式大致相同,但不需要任何额外的构建步骤,像常规CSS属性一样级联,最重要的是在运行时可用。

这些优点使本机CSS变量成为其预处理器兄弟姐妹的一个优势,为开发人员打开了大量有趣的事情,而且代码少得多。

在本教程中,我们将探索如何使用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

现在我们将所有颜色变量保存在“ coloursToSave ”中,我们将它发送到名为localStorage的Web Storage API的组件。这本质上是一个在会话中持续存在的对象。我们可以使用其’ setItem() ‘方法在其中存储其他对象。我们把它发送给我们的’ coloursToSave '对象。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

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

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 27
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用CSS中的position属性和z-index属性来实现在图片上方插入文字的布局。 首先,需要将图片和文字都包裹在一个容器中,例如: ``` <div class="image-container"> <img src="your-image-url" alt="your-image-description"> <div class="text-overlay">Your Text Here</div> </div> ``` 然后,使用CSS设置容器的position属性为relative,图片的position属性为absolute,并且将z-index属性设置为-1,这样图片就可以在文字之后显示。同时,设置文字的position属性为absolute,并且将z-index属性设置为1,这样文字就可以在图片上方显示。 具体代码如下: ``` .image-container { position: relative; } .image-container img { position: absolute; z-index: -1; } .text-overlay { position: absolute; z-index: 1; top: 50%; left: 50%; transform: translate(-50%, -50%); /* 其他样式 */ } ``` 在上述代码中,text-overlay类是用来显示文字的。通过设置top、left和transform属性,可以将文字定位在图片的中心位置。其他样式可以根据需要进行修改。 ### 回答2: 利用CSS布局在图片插入文字是一种常见的网页设计技术,它可以使文字与图片进行组合,增加网页的美观度和信息传达。以下是一种实现方法: 1. 首先,在HTML文件中插入图片和文字。可以使用`<img>`标签添加图片,使用`<div>`或者`<span>`标签包含文字。例如: ``` <div class="image-container"> <img src="example.jpg" alt="示例图片"> <div class="text-overlay">这里是文字</div> </div> ``` 这里使用了`image-container`类来包含图片和文字。 2. 在CSS文件中为图片容器添加一些基本样式,使其能够正常显示图片。 ``` .image-container { position: relative; overflow: hidden; display: inline-block; width: 300px; // 根据需要设置图片容器的宽度 } ``` 3. 使用绝对定位和居中对齐,将文字放置在图片上。同时对文字样式进行自定义。在CSS文件中添加以下样式: ``` .text-overlay { position: absolute; top: 50%; // 将文字垂直居中 left: 50%; // 将文字水平居中 transform: translate(-50%, -50%); // 使用transform属性进行偏移 font-size: 20px; // 根据需要设置文字大小 color: white; // 根据需要设置文字颜色 background-color: rgba(0, 0, 0, 0.5); // 根据需要设置文字背景色及透明度 padding: 10px; // 根据需要设置文字填充 } ``` 通过以上步骤,就可以利用CSS布局在图片中插入文字。调整图片容器的宽高、文字样式等属性,可以实现各种不同的效果。这种布局方式可以应用于首页轮播图、图片展示等场景,提高网页的视觉吸引力。 ### 回答3: 要在图片中插入文字,可以利用CSS布局来实现。首先,通过HTML代码将图片和文字组合起来,可以使用以下代码: ``` <div class="container"> <img src="image.jpg" alt="图片"> <div class="text">这是图片的文字描述</div> </div> ``` 接下来,利用CSS样式将文字定位到图片上。可以使用绝对定位将文字添加到图片的指定位置。首先,给容器类添加相对定位: ```css .container { position: relative; } ``` 然后,给文字类添加绝对定位以及指定位置的坐标: ```css .text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } ``` 这样,文字会被定位到图片的中心位置。也可以根据需要调整文字的位置,改变top和left的值来实现。 另外,可以利用CSS样式来美化文字,比如设置文字的颜色、大小、字体等。例如,将文字颜色设置为白色,字体大小为16像素,字体加粗,可以使用以下CSS样式: ```css .text { color: white; font-size: 16px; font-weight: bold; } ``` 这样,就可以利用CSS布局在图片上插入文字,并通过CSS样式来进行美化。根据需求,可以进一步调整布局和样式以满足设计要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值