Bootstrap components with alternate colors

☆樱花仙子☆ 提交于 2020-01-06 15:31:42

问题


Is there a recommended way to have 2 Bootstrap components with different color sets?

For example, two nav-tabs, one in a dark theme, and another in a light theme.

Preferably something like:

<div class="dark"><ul class="nav nav-tabs"> ... </ul></div>
<header>...</header>
<div class="light"><ul class="nav nav-tabs"> ... </ul></div>

But something like this might be fine:

<ul class="dark-nav dark-nav-tabs"> ... </ul>
<header>...</header>
<ul class="dark-nav light-nav-tabs"> ... </ul>

I would rather include 2 Bootstrap CSS files, one with dark variables.less and one with light colors, but have the styles prefixed in some kind of namespace. Ideally I would want to minimize the risk of accidentally typing or something. Having a around the dark areas would be easier.


回答1:


In LESS, you can import other .less/.css files wherever you want, also inside rulesets:

#dark {
   @import "style-dark.less";
}

#light {
   @import "style-light.less";
}

Combining this with Bootstrap options that let you customize colors, you should be able to achieve the desired results, simply importing two generated files into appriopriate rulesets.




回答2:


It seems strange for me to @import "bootstrap.less" under a class cause bootstrap.less contains the import for every file of Booststrap's css. See also: Is it possible to apply bootstrap for a div only, using CDN?

Try to take a look how Bootstrap do this: https://github.com/twbs/bootstrap/issues/10332

The thinking behind this is that the pure .navbar class only provides layout styles etc, and >all colors are applied by the modifier classes.

For example a button has two classes always .btn for layout styles and .btn-* b.e. btn-error for colors. I think you could use the same strategy.

You should use something like:

<ul class="nav nav-dark nav-tabs nav-tab-dark"> ... </ul>

Where you define in for example custom-nav.less (imported in bootstrap.less):

.nav-tabs-dark > li.active > a, 
.nav-tabs-dark > li.active > a:hover, 
.nav-tabs-dark > li.active > a:focus
{
   background-color: #000;
   color: #fff;
}

etc.



来源:https://stackoverflow.com/questions/19959472/bootstrap-components-with-alternate-colors

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!