首页 文章

在bootstrap 3中覆盖或添加样式到预定义的类

提问于
浏览
4

这是关于bootstrap 3.我想在重新调整浏览器大小时更改预定义的bootstrap 3列的颜色 .

这是 index.html 的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap Template</title>


<link href="css/bootstrap.css" rel="stylesheet" type="text/css" media="screen"/>
<link href="css/custom.css" rel="stylesheet" type="text/css" media="screen"/>
<!--<link href="css/bootstrap-theme.css" rel="stylesheet" type="text/css" media="screen"/>-->
</head>

<body>
    <div class="container">
        <div class="row">
           <div class="col-lg-9 col-md-4 col-sm-2 col-xs-12 border">one</div>
           <div class="col-lg-2 col-md-4 col-sm-8 col-xs-12 border">two</div>
           <div class="col-lg-1 col-md-4 col-sm-2 col-xs-12 border">three</div>
        </div>
   </div>



<script src="js/jquery.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>

custom.css 文件:

.border
{
border:2px solid;       
}

.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12{background-color:red;}

.col-md-1,
.col-md-2,
.col-md-3,
.col-md-4,
.col-md-5,
.col-md-6,
.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-md-12{background-color:yellow;}

.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12{background-color:green;}

.col-xs-1,
.col-xs-2,
.col-xs-3,
.col-xs-4,
.col-xs-5,
.col-xs-6,
.col-xs-7,
.col-xs-8,
.col-xs-9,
.col-xs-10,
.col-xs-11,
.col-xs-12{background-color:blue;}

当浏览器重新调整大小时,第一列应该是背景颜色红色,然后是背景颜色黄色,然后是背景颜色绿色,然后是背景颜色蓝色 . 但是,在浏览器中查看此网页并重新调整大小时,所有列背景颜色都保持蓝色 .

我想更改颜色(覆盖或添加样式到bootstrap 3中的预定义类) . 怎么能实现这一目标?

2 回答

  • 10

    你的问题是css不会在某些宽度上应用某些类的样式,它只能被告知使用媒体查询应用于不同宽度的某些类的样式规则 . Bootstrap通过使用媒体查询来工作 .

    仅仅因为你使用的是bootstrap,它在某些宽度上没有自己的类 . 请参阅http://getbootstrap.com/css/#grid-media-queries以查看媒体查询引导程序在内部使用以应用样式规则 . 媒体查询非常简单,但看起来有点令人生畏,你会习惯它们,当你更多的时候它们会有意义 .

    您的背景蓝色正在发生,因为它是最底层的样式规则,因此只有您可以只拥有要以不同宽度显示的样式规则时才应用它 . 这就是媒体查询的用途 . 它们仅在指定的宽度处应用样式,并在任何其他宽度处消失 .

    这是你想要覆盖css类的内容 .

    CSS

    /* Styles go here */
    .border
    {
      border:2px solid;       
    }
    /*screen-xs*/
    @media (max-width: 768px) { 
      .col-xs-1,
      .col-xs-2,
      .col-xs-3,
      .col-xs-4,
      .col-xs-5,
      .col-xs-6,
      .col-xs-7,
      .col-xs-8,
      .col-xs-9,
      .col-xs-10,
      .col-xs-11,
      .col-xs-12{background-color:blue;}
    }
    /*screen-sm*/
    @media (min-width: 768px) and (max-width: 992px) { 
      .col-sm-1,
      .col-sm-2,
      .col-sm-3,
      .col-sm-4,
      .col-sm-5,
      .col-sm-6,
      .col-sm-7,
      .col-sm-8,
      .col-sm-9,
      .col-sm-10,
      .col-sm-11,
      .col-sm-12{background-color:green;}
    }
    /*screen-md*/
    @media (min-width: 992px) and (max-width: 1200px) { 
      .col-md-1,
      .col-md-2,
      .col-md-3,
      .col-md-4,
      .col-md-5,
      .col-md-6,
      .col-md-7,
      .col-md-8,
      .col-md-9,
      .col-md-10,
      .col-md-11,
      .col-md-12{background-color:yellow;}
    }
    /*screen-lg corresponds with col-lg*/
    @media (min-width: 1200px) {  
      .col-lg-1,
      .col-lg-2,
      .col-lg-3,
      .col-lg-4,
      .col-lg-5,
      .col-lg-6,
      .col-lg-7,
      .col-lg-8,
      .col-lg-9,
      .col-lg-10,
      .col-lg-11,
      .col-lg-12{background-color:red;}
    }
    

    http://plnkr.co/edit/ZQ6QjRMLm07hkb7cBUPW?p=preview

    EDIT:

    这个问题是你要覆盖bootstrap类,这意味着你要覆盖将要显示的样式 . 从现在开始,如果你尝试使用bootstrap列,我会建议使用这些样式,而不是为元素添加一个类,并为该类添加一个样式规则来代替它 .

    HTML

    <div class="container">
      <div class="row">
        <div class="col-lg-9 col-md-4 col-sm-2 col-xs-12 border myColoredCol">one</div>
        <div class="col-lg-2 col-md-4 col-sm-8 col-xs-12 border myColoredCol">two</div>
        <div class="col-lg-1 col-md-4 col-sm-2 col-xs-12 border myColoredCol">three</div>
      </div>
    </div>
    

    CSS

    /* Styles go here */
    .border
    {
      border:2px solid;       
    }
    /*screen-xs*/
    @media (max-width: 768px) { 
      .myColoredCol{background-color:blue;}
    }
    /*screen-sm*/
    @media (min-width: 768px) and (max-width: 992px) { 
      .myColoredCol{background-color:green;}
    }
    /*screen-md*/
    @media (min-width: 992px) and (max-width: 1200px) { 
      .myColoredCol{background-color:yellow;}
    }
    /*screen-lg corresponds with col-lg*/
    @media (min-width: 1200px) {  
      .myColoredCol{background-color:red;}
    }
    
  • 3

    试试这个:

    HTML

    <!DOCTYPE html>
      <html lang="en">
      <head>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>Bootstrap Template</title>
    
    
      <link href="css/bootstrap.css" rel="stylesheet" type="text/css" media="screen"/>
      <link href="css/custom.css" rel="stylesheet" type="text/css" media="screen"/>
      <!--<link href="css/bootstrap-theme.css" rel="stylesheet" type="text/css"  media="screen"/>-->
      </head>
    
      <body>
      <div class="container">
        <div class="row">
           <div class="col-lg-9 col-md-4 col-sm-2 col-xs-12 border colbg">one</div>
           <div class="col-lg-2 col-md-4 col-sm-8 col-xs-12 border colbg">two</div>
           <div class="col-lg-1 col-md-4 col-sm-2 col-xs-12 border colbg">three</div>
        </div>
       </div>
    
    
    
      <script src="js/jquery.js"></script>
      <script src="js/bootstrap.js"></script>
      </body>
      </html>
    

    CSS

    @media (max-width: 767px) {
         .colbg {background-color:blue; }
     }
    
     @media (min-width: 768px) and (max-width: 991px) {
         .colbg {background-color:green; }
     }
    
     @media (min-width: 992px) and (max-width: 1199px) {
          .colbg {background-color:yellow; }
     }
    
     @media (min-width: 1200px) {
          .colbg {background-color:red; }
     }
    

    希望这可以帮助 .

相关问题