如何通过 Javascript 修改 CSS 模块样式
Posted
技术标签:
【中文标题】如何通过 Javascript 修改 CSS 模块样式【英文标题】:How to Modify CSS Module Style via Javascript 【发布时间】:2022-01-21 05:37:59 【问题描述】:我对 javascript 和 react 还很陌生,但我正在潜心研究并创建我的第一个 react 应用程序。
我想通过一个变量来修改屏幕上显示的“gridTemplateRows”的数量,并根据列表中的结果用一个新的数字来修改它(我现在已经硬编码为 6) ,但是我正在使用 CSS 模块,但我似乎无法让网格更改其行数并正确显示。
组件代码
import classes from "./TimeSlot.module.scss";
import AvailabilityCalendarData from "../../../../../FakeDB/AvailabilityCalendarData";
function TimeSlot()
const addTimeSlot = () =>
document.getElementsByClassName(
`$classes.time_interval`
).styles.gridTemplateRows = "repeat(6, 1fr)";
;
const timeSlotRow = AvailabilityCalendarData.map((timeSlot) => (
<div key=timeSlot.id>timeSlot.startTime</div>
));
return (
<div className=classes.time_interval onLoad=addTimeSlot()>
timeSlotRow
</div>
);
export default TimeSlot;
CSS
.time_interval
grid-area: time;
display: grid;
grid-template-rows: repeat(17, 1fr);
font-size: 14px;
& > div
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
box-shadow: inset 0 1px 0 0 #eceff1;
【问题讨论】:
【参考方案1】:只需设置style
:
<div className=classes.time_interval
style= gridTemplateRows: `repeat($timeSlotRow.length, 1fr)`
>timeSlotRow</div>
或者你可以看看grid-auto-rows。
【讨论】:
以上是关于如何通过 Javascript 修改 CSS 模块样式的主要内容,如果未能解决你的问题,请参考以下文章
如何在 React.js 中使用 JavaScript 修改 CSS
如何用纯javascript修改html css dom? [关闭]
css/javascript 一个div包含两个样式class="div1 div2"用javascript修改其中一个样式的内容