V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
iyaozhen
V2EX  ›  问与答

Bootstrap 样式权重问题

  •  1
     
  •   iyaozhen · 2014-09-22 20:22:39 +08:00 · 4086 次点击
    这是一个创建于 3496 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一直在用Bootstrap前端框架,不过在使用中遇到一个问题:
    Bootstrap的样式一般都会有两个class和一个标签来定义样式(甚至更多),比如下面这个导航栏的文字颜色:


    如果改这个(字体颜色变成白色),我需要叠两个class(自定义或Bootstrap自己的)来覆盖样式,或者用“!important”来粗暴的覆盖。总觉得不是太合适,大家是怎么解决这个问题的。
    13 条回复    2015-01-02 08:50:19 +08:00
    explon
        1
    explon  
       2014-09-22 20:32:30 +08:00 via iPhone
    两个 class 是标准写法
    muzuiget
        2
    muzuiget  
       2014-09-22 20:39:06 +08:00
    这其实就是 CSS 的问题,选择器越具体权重越高,只能这样。

    要么你就修改 bootstrap 的 less 源码,自己编译一份。
    iyaozhen
        3
    iyaozhen  
    OP
       2014-09-22 20:40:44 +08:00
    @explon 可否详细说下,根据我以前的理解,不是应该采用尽量小的权重吗?
    iyaozhen
        4
    iyaozhen  
    OP
       2014-09-22 20:42:16 +08:00
    @muzuiget 嗯,这个我知道。额,就只能多写class覆盖嘛。。。
    guoxinwei
        5
    guoxinwei  
       2014-09-22 20:58:08 +08:00
    @muzuiget 我在汽车达人的做法是,在bootstrap上面叠加一份自己的less代码,专存自己修改了bootstrap样式的less代码,然后在bootstrap.less中按顺序import自己的less代码。最后编译bootstrap.less,就会生成自己的样式啦!而且还不容覆盖bootstrap的样式,可以不断升级bootstrap。
    arbipher
        6
    arbipher  
       2014-09-22 21:40:48 +08:00
    bootstrap可以自己customize的,自己编译sass或者less。

    另一种省事的途径就是在网站上costomize
    http://getbootstrap.com/customize
    各种尺寸和样式都能自定义,
    第一次compile之后会重定向到
    http://getbootstrap.com/customize/?id=YOUR_ID_HERE
    收藏这个页面,之后访问能保留之前的编译参数
    sm0king
        7
    sm0king  
       2014-09-23 09:13:31 +08:00
    用三个 或者 前面加一个ID
    不要用 !important 会造成很大的困扰~
    计算权重有一个算法,记不太清了,可以查一下。
    oott123
        8
    oott123  
       2014-09-23 09:34:47 +08:00 via Android
    我用的 dirty 方法是在 body 上加一个 ID
    然后剩下的样式全部以这个 id 打头…
    zioc
        9
    zioc  
       2014-09-23 09:53:03 +08:00
    其实 如果你的界面离bootstrap很远就不建议用bs,bs是快速建站用的。

    用之前先改一下bs整体的颜色、间距。。然后就不改它代码 另写一份 用ID去覆盖
    cismous
        10
    cismous  
       2014-09-23 12:12:53 +08:00
    bs = Bootstrap
    首先不建议用 !important
    原因一样,感觉不太好,之前也看过相关文章,其中有提到尽量不用,所以能不用就不要用了。

    至于你提到叠加2个类,如果用sass,less的话,写起来很顺手,所以没关系的吧
    实在不行了,自己写,弃用bs

    题外话,bs越来越臃肿了,平常编译自己所需的部分,因为有很多用不上,就像jquery一样,看了源码,才发现其实有很多没用上!
    yangzh
        11
    yangzh  
       2014-09-23 12:27:12 +08:00
    @oott123 不 dirty 啊,我觉得挺合理的。就是有时候可能多此一举什么的。
    iyaozhen
        12
    iyaozhen  
    OP
       2014-09-23 16:00:25 +08:00
    一般自己也会给重要的DIV一个id,改样式的带上id。而且用id的话jquery定位元素的时候也很快。
    pertersonvv
        13
    pertersonvv  
       2015-01-02 08:50:19 +08:00
    @arbipher 可以在本地自定义吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5420 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 01:35 · PVG 09:35 · LAX 18:35 · JFK 21:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.