- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Rails 6 应用程序设置为使用 Tailwind CSS使用 Webpacker 类似于 this GoRails tutorial 中的操作方式.
我希望能够根据 Controller 和操作动态更改 Tailwind 默认值,以便用户通过选择一些选项来“皮肤”网站的各个部分,然后动态调整一些 Tailwind 配置选项。 (如何使用此功能的一个示例是用户登录到网站的管理区域,更改他们的字体系列和背景颜色以匹配他们的品牌。)
我不能只根据条件将样式表添加到布局中,因为我必须覆盖我想要更改的 Tailwind css 变量的所有实例(例如“sans-serif”)。随着 Tailwind 的发展,这将是大量的工作和脆弱的维护。
如果有一种方法可以将用户选择的选项动态插入到 Tailwind 配置文件 (/javascript/stylesheets/tailwindcss-config.js) 中,那将是理想的,但我不确定如何执行此操作。
在使用 Tailwind 时,还有更好的方法在 Rails 中执行此操作吗?似乎应该有某种方法可以使用 Controller 中的 Javascript 来动态更改我的 tailwindcss-config.js 中的设置(Tailwind 配置文件是 explained here )。因此,该文件中的内容如下:
theme: {
fontFamily: {
display: ['Gilroy', 'sans-serif'],
body: ['Graphik', 'sans-serif'],
},
theme: {
fontFamily: {
display: DYNAMICALLY INSERTED FONT STACK,
body: ANOTHER DYNAMICALLY INSERTED FONT STACK,
},
最佳答案
我感觉我们会尝试使用“构建时间”工具进行“运行时”操作
将变量直接注入(inject)到 tailwindcss 配置文件中意味着重建提供给用户的实际 css,将 tailwind 配置文件中的说明应用到 app/javascript/css 中的实际内容(假设上述视频教程中使用的设置)。
该操作由 webpack 进行,通过 webpacker gem 集成。
恕我直言,webpack 和 tailwind 都不是为了在运行时重建 Assets 而设计的,而且,即使我很清楚通用机器可以做任何事情;)我想知道走这条路会走哪条路,主要是在以下方面可维护性。
来自 this link似乎在配置更改时触发 webpack 的重建并不简单。
这是一条稍微不同的尝试路径:
在应用程序的 部分中,为您希望用户访问的设置定义 css 变量(更准确地说是 'css custom properties'),可以动态设置和更改(也可以从 js 中)
<style>
:root{
--display-font: "<%= display_font_families %>";
--body-font: "<%= body_font_families %>";
--link-color: "<%= link_color %>";
}
</style>
或者,您可以创建 app/assets/stylesheets/root.css.erb (扩展名很重要)并在顺风之前将其包含在您的模板中
theme: {
fontFamily: {
display: "var(--display-font)",
body: "var(--body-font)",
},
extend: {
colors: {
link: "var(--link-color)",
},
}
这样我们定义了一个动态的css布局来响应
css variables的值。 .它们作用的变量和结构位于相同的逻辑级别,对应于提供给用户的实际网页。
// userSelectedColor is the result of a user's choice,
// say it's "#00FF00"
document.documentElement.style
.setProperty('--link-color', userSelectedColor);
一旦更改此值,tailwind 之前创建的所有类以及使用该变量的任何规则都将反射(reflect)更改,根本不需要重建 css。
/* GENERATED BY TAILWIND - well, this or something very similar :) */
.text-link {
color: var(--link-color);
}
.bg-link{
background-color: var(--link-color);
}
/* .border-link { ... */
很明显,浏览器需要知道 --link-color 的值(我们在 :root 部分中定义了它)并且值本身可以是任何有效的 css,但我们感兴趣的是它可以随时更改,自动传播使用它的每条规则的更改,它是
css variable ...
关于css - 如何根据rails中的用户设置动态更改tailwind-config.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61508409/
我想将颜色变量(默认或扩展)用于我的扩展主题,例如: module.exports = { content: ['./index.html', './src/**/*.{js,ts,jsx,t
我们如何在 Tailwind 中设置单个列的宽度? 例如在 Vanilla CSS 我会 .grid-container { display: grid; grid-template-colu
我是 Tailwind CSS 的新手。我在构建 React 项目时遇到了这个错误: The hover: class does not exist. If hover: is a custom cl
为什么 tailwind 中没有太多的百分比单位,例如我想要 50% 的宽度。我知道我可以向它添加自定义配置,但我只是想知道是否有任何特定原因。 最佳答案 我会说这更像是一种个人偏好的编码风格。使用后
我正在尝试将项目对齐到屏幕右侧并使其粘滞。 但正如你在这个 sandbox 中看到的那样它不起作用。 未应用正确的属性。 我该怎么办? 最佳答案 这也行 hossein 关于tailwind-
是否可以在 tailwind 配置中使颜色动态化。 我想从后端通过 api 接收所需的(primary,accent)颜色。 因此用户可以从管理面板更改颜色。 我想从 api 获取这个十六进制值 最佳
我正在尝试使用顺风基于系统默认值启用暗模式。 为此,我使用了插件: Tailwind dark mode 。 我的顺风配置失败如下: defaultTheme = require('tailwindc
我有几个消息框,每个框都有一个数据作者属性。 如果我想在 CSS 中对这些消息框应用样式,我可以这样做: [data-author="Ben"] { background-color: blue;
没有错误,但 Tailwind 没有应用任何样式: 包.json "dependencies": { "tailwindcss": "npm:@tailwindcss/postcss7-com
我想要transition-transform 和transition-shadow,既不是transition-all 也不是只有一个。把这两个不影响,我找不到它的文档,我尝试像这样玩:transi
我正在尝试使用 webpack 5 和 tailwind 2。日志表明大多数事情都设置正确,但没有进行清除。 我跑 NODE_ENV=production webpack --config webpa
我正在尝试 extend使用他们的 tailwind.config.js 的 tailwind css 调色板文件。我的目标是创建一组主要和次要颜色,我可以在设计我的网站时使用它们。我想通过从默认的顺
我一直在使用带有“清除”选项的 Tailwind 来使最终的 css 文件更小且成功。但是,我一直想知道我的方法的效率。我正在处理有很多子文件夹的项目,我都指定如下: purge: {
你如何在 Tailwind 中设置整页背景? 我可以看到使用的唯一属性是 h-screen ,但是当我调整浏览器大小时这不起作用。 这是我的代码: 完整的 html 示例:
将顺风 CSS 包含在我不希望它全局应用的系统中时,我找不到一个很好的方法来确定适用于自定义构建选项的范围。 基本上我想这样做: .tailwind{ @import "tailwindcss
我正在学习 Tailwind CSS。据我了解,如果您想设置元素的样式,请向其添加 Tailwind 实用程序 css 类。想给多个相似元素设置样式怎么办?例如,我有以下 HTML 片段:
我正在学习 Tailwind CSS。据我了解,如果您想设置元素的样式,请向其添加 Tailwind 实用程序 css 类。想给多个相似元素设置样式怎么办?例如,我有以下 HTML 片段:
我需要将所有具有相应响应尺寸的边距值列入白名单。 例子: 'mb-10' 'md:mb-10' 'xl:mb-10' 等等。 这是我现在在我的 tailwind.config.js 中的内容,但它似乎
我一直在尝试使用 Tailwind 来自定义 Quasar 组件,但 Quasar CSS 已经覆盖了大部分 Tailwind CSS。 我在我的 tailwind.config.js 中添加了一个前
我必须并排放置两列。这些列之一具有固定宽度。我真的很想理解为什么一列中的固定宽度在 Tailwind CSS flexbox 上不起作用。 我有以下代码: This title pushed
我是一名优秀的程序员,十分优秀!