2017-08-31 12 views
-2

使用Bootstrap的設計含義是什麼?使用Bootstrap的設計含義是什麼?

我暫時對字體家族和權重的含義有一個特別的興趣,但我通常也對更廣泛的問題感到好奇。

例如:在構建下面的網站時,我發現當引導代碼被包含時,否則將使得我在期望樣式上對<p>元素的「問題」和「答案」類別的樣式無效由bootstrap代碼。 (當我註釋掉在index.html文件自引導,我想樣式回來。)

那麼,這是否意味着我將不得不使用類似!important我想申請一些自定義的每一次,非Bootstrap風格?

WebFontConfig = { 
 
    google: { 
 
    families: ['Open+Sans:300,400,700:latin'] 
 
    } 
 
}; 
 
(function() { 
 
    var wf = document.createElement('script'); 
 
    wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + 
 
    '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js'; 
 
    wf.type = 'text/javascript'; 
 
    wf.async = 'true'; 
 
    var s = document.getElementsByTagName('script')[0]; 
 
    s.parentNode.insertBefore(wf, s); 
 
})();
body { 
 
    overflow: hidden; 
 
} 
 

 
p { 
 
    font-family: "Open Sans", sans-serif; 
 
    font-size: 20px; 
 
} 
 

 
.question { 
 
    font-weight: bold; 
 
} 
 

 
.answer { 
 
    font-weight: normal; 
 
} 
 

 
#header { 
 
    margin: 0px; 
 
} 
 

 
.navbar-brand { 
 
    font-family: "Open Sans", sans-serif; 
 
} 
 

 
.nav { 
 
    font-family: "Open Sans", sans-serif; 
 
} 
 

 
#mainPane { 
 
    margin: 0px; 
 
    padding: 20px; 
 
    height: 100vw; 
 
    background-color: white; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,700' rel='stylesheet' type='text/css'> 
 

 

 

 
<nav id="header" class="navbar navbar-default"> 
 
    <div class="container-fluid"> 
 
    <!-- Brand and toggle get grouped for better mobile display --> 
 
    <div class="navbar-header"> 
 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> 
 
       <span class="sr-only">Toggle navigation</span> 
 
       <span class="icon-bar"></span> 
 
       <span class="icon-bar"></span> 
 
       <span class="icon-bar"></span> 
 
       </button> 
 
     <a class="navbar-brand" href="# ">Brand</a> 
 
    </div> 
 

 
    <!-- Collect the nav links, forms, and other content for toggling --> 
 
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
 
     <ul class="nav navbar-nav"> 
 
     <li class="active"><a href="#">Home<span class="sr-only">(current)</span > </a></li> 
 
     <!-- <li><a href="#"> anotherListItem </a></li> --> 
 
     <!-- <li><a href="#"> aThirdListItem </a></li> --> 
 
     </ul> 
 
    </div> 
 
    <!-- /.navbar-collapse --> 
 
    </div> 
 
    <!-- /.container-fluid --> 
 
</nav> 
 

 
<div id="mainPane" class="jumbotron"> 
 
    <p class="question">Q: Question 1</p> 
 
    <p class="answer">A: Answer 1</p> 
 

 
</div>

+1

你在這裏有什麼問題,你不能修復? –

+1

如果Bootstrap CSS覆蓋您的規則,請確保最後加載您的規則,更重要的是讓您的選擇器比Bootstrap更具體,以便它們不會被覆蓋。避免使用'!important'。 – j08691

+0

我的樣式表是在bootstrap之後加載的(除非它們並行解析?),但是我仍然不得不求助於!important來獲取我的規則。 – DJG

回答

1

你似乎運行到與你的選擇特異性的問題。當你最後導入自己的自定義CSS時,當另一個選擇器在不同的樣式表中更具體時,這些樣式將勝出並在頁面上呈現。關於特異性如何工作,CSS-Tricks提供了一個seminal article,這將有助於理解您的代碼正在發生什麼。

我把你的代碼變成了一個codeply project,你可以試驗一下,當你改變選擇器的特異性時,你會更加實際地理解會發生什麼。

另外,不要害怕打開瀏覽器上的開發者工具,看看發生了什麼。這是來自Chrome工具的圖片。您可以查看樣式以及渲染視圖時最終使用的樣式。在這種情況下劃掉的屬性可能意味着另一個規則佔上風。

enter image description here