我已经浏览了此链接,但没有回答我的问题。 Passing values from HTML to SCSS
我正在构建一个Web应用程序,管理员可以在其中运行并设置自定义属性,例如 1)更改全局字体大小 2)更改面板背景色 3)更改按钮颜色 4)更改按钮尺寸等 我看了PrimeNg设计器API,发现他们的scss文件中有大约500个变量的列表。 我想做的是创建一个表单,以便用户可以在UI上设置值。 方案1-> 示例->
print(i["Driver"]["familyName"])
一旦用户在此处输入一个值,我就希望使用上面用户输入的内容更新包含在scss文件中的以下变量的值。
<p-fieldset legend="Global Font Size">
<input type="text" pInputText placeholder="Enter the global font size">
</p-fieldset>
方案2-> 示例->
$fontSize:14px;
1)我如何按照方案1的要求在UI上接受一个值并更新scss变量的值?
2)我如何才能在UI上接受值,将其传递给Typescript函数,然后按照方案2的要求更新scss变量的值?
这是我要参考的文档-> https://www.primefaces.org/designer-ng/#/documentation
答案 0 :(得分:0)
答案 1 :(得分:0)
SCSS已编译为CSS,因此在浏览器运行时,您无法更改分配给SCSS变量的值。
但是,可以使用CSS自定义属性(也称为CSS变量)。 https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties
答案 2 :(得分:0)
我真的很感激那些花时间回答我的问题的人,但是不幸的是,这不是我想要的。 最简单的答案是-> 1.在styles.css文件中创建css变量。 示例:
:root {
--body-color: yellow;
--text-color: red;
--font-size: 50px;
}
input {
color: var(--text-color);
}
<div class="ui-fluid">
<div class="ui-g">
<div class="ui-g-12">
<div class="ui-g-3">
<p-fieldset legend="Global Font Size">
<input type="text" placeholder="Enter the global font size">
<button pButton label="Save"></button>
</p-fieldset>
</div>
</div>
</div>
</div>
import { Component, Input, OnInit } from '@angular/core';
import { TableBody } from 'primeng/table';
@Component({
templateUrl: './miscdemo.component.html'
})
export class MiscDemoComponent implements OnInit {
input = document.querySelector('input');
body = document.querySelector('body');
fontSize = document.querySelector('input');
button = document.querySelector('button');
constructor() {
}
ngOnInit() {
if (this.input) {
this.input.addEventListener('change', () => {
this.body.style.setProperty('--body-color', this.input.value);
this.fontSize.style.setProperty('--body-color', this.input.value);
} );
}
this.input = document.querySelector('input');
this.button = document.querySelector('button');
if (this.input) {
this.button.addEventListener('click', () => {
this.body.style.setProperty('--body-color', this.input.value);
this.body.style.setProperty('--font-size', this.input.value + 'px');
} );
}
}
}
一个很好的工作示例在这里-> https://jsfiddle.net/btg5679/9e22zasm/5/