javascript - 用javascript创建一个“临时css”值得吗?
问题描述
我正在考虑创建一个脚本,允许我在样式标签中创建某种动态类。IE:
HTML:
<p class="padding-top-24">test</p>
脚本:
- 创建
<style>
标签; - 检查
.padding-top-24
此标签中是否已存在,如果不存在,则创建类并在元素中使用她;
但值得吗?我的意思是,我知道我可以简单地使用style="padding-top: 24px"
,但是如果我想要更具体的东西,比如padding-top: 24px
当用户在小屏幕上时元素才具有的类呢?
同样,我可以使用,但每次我希望某些东西在特定时刻具有不同的属性时,@media (max-width: 600px) { .pading-top-24px { padding-top: 24px } }
我都需要创建一个。@media
如果我每次只使用一个类就创建一个脚本来为我做这件事不是更好吗?使用特定尺寸来创建媒体。就像是:
HTML:
<p class="s-font-size-20 m-font-size-24">Hello</p>
脚本:
- 检查类并使用/创建它应该属于的媒体(在这种情况下,“s”代表“小”或“<600px”,“m”代表“中”或“<992px”)。
- 如果屏幕尺寸对应,则向媒体添加一个侦听器并应用该类。
这有意义吗?会有用吗?它已经存在了吗?
解决方案
这是一个粗略的演示,但我认为这可以让您了解如何CSS Variables
使用它来创建更动态的体验。
document.addEventListener('click', (e) => {
if(e.target.matches('button')) {
let color = document.querySelector('#colorList').value;
document.documentElement.style.setProperty('--fontColor', color);
if(color === '#0f0') {
document.documentElement.style.setProperty('--fontSize', '40px');
}
}
});
:root {
--fontColor: #0069aa;
--fontSize: 20px;
}
.test {
color: var(--fontColor);
font-size: var(--fontSize);
}
h1 {
color: var(--fontColor);
}
<h1>Heading Test</h1>
<div class="test">Test</div>
<div class="test">Test</div>
<div class="test">Test</div>
<div class="test">Test</div>
<span class="test">Test</span>
<button>Click</button>
<select id="colorList">
<option value="#f00">Red</option>
<option value="#0f0">Green</option>
<option value="#00f">Blue</option>
</select>
推荐阅读
- sql-server - 特定组的 SQL Server 插入语句需要 9 分钟,但仅有时
- google-chrome - 如何在 chrome/electron 窗口未激活屏幕共享时强制渲染视频标签内容?
- node.js - 阻止 cookie 会导致会话停止工作吗?
- c# - 字段的封装问题
- java - 将 Java 应用程序部署到 Elastic Beanstalk 时出错 - 错误:打开 /var/pids/web.pid:没有这样的文件或目录
- c# - 授权中间件与过滤器的关系 Asp.net core
- node.js - 安装 react js 时如何在 npm 上解决这个问题?
- swagger - .NET 5.0 中的 nswag 错误,由于 StackOverflowException,进程正在终止
- java - Java自动装配问题
- android - Android Studio 与 Gradle Wrapper 通过终端生成的错误消息的差异