You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CSS自定义BulmaCSS主色失效的技术咨询

Bulma 自定义主色不生效问题解决

你在使用Bulma 1.0.0时遇到的问题是:通过:root定义--bulma-primary变量修改主色没生效,但修改--bulma-size-medium能正常改变按钮尺寸。

问题原因

当你给<html>标签添加data-theme="light"属性强制指定主题时,Bulma会把主题相关的颜色变量(比如--bulma-primary)挂载在html[data-theme="light"]选择器下,这个选择器的优先级比:root高,所以你在:root里定义的--bulma-primary会被默认的主题变量覆盖。而尺寸类变量(比如--bulma-size-medium)不属于主题特定变量,默认就在:root下定义,所以你的自定义能生效。

解决方法

有两种方式可以解决这个问题:

方法一:针对指定主题定义变量

把变量定义从:root改成对应主题的选择器:

<!DOCTYPE html>
<!-- Force the light theme: -->
<html data-theme="light">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Hello Bulma!</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css">

    <style>
        html[data-theme="light"] {
            --bulma-primary: red;
            --bulma-size-medium: 0.5rem;
        }
    </style>
</head>
<body>
    <button class="button is-primary is-medium">Button</button>
</body>
</html>

方法二:移除强制主题属性

如果不需要固定使用light主题,可以删掉<html>标签上的data-theme="light",这样:root下定义的--bulma-primary就能正常覆盖默认值:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Hello Bulma!</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css">

    <style>
        :root {
            --bulma-primary: red;
            --bulma-size-medium: 0.5rem;
        }
    </style>
</head>
<body>
    <button class="button is-primary is-medium">Button</button>
</body>
</html>

内容的提问来源于stack exchange,提问作者Desmes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 20:02:45