我正在考虑创建一个脚本,该脚本允许我在样式标签中创建某种动态类。即:
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>
脚本:
这有意义吗?有用吗?它已经存在吗?
答案 0 :(得分:1)
这是一个粗略的演示,但是我认为这给了您一个想法,以及如何使用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>