一些css書寫的小技巧

1、css順序

  首先聲明,瀏覽器讀取css的方式是從上到下的。咱們通常書寫css只要元素具有這些屬性就會達到咱們預期的效果,可是這會給之後的維護和瀏覽器的渲染效率帶來必定的影響,那麼該怎麼書寫css的順序呢?有沒有必定的規範呢?css

  首先咱們知道css的屬性按特性分爲幾類;html

  1.規定元素特性,如display、position、float,這些屬性會決定他的排版方式jquery

  2.規定元素的空間佔據,如line-height、margin、padding、width、height等,這些屬性會決定元素的大小和位置瀏覽器

  3.規定元素的自身效果,如font-size、color、background等,這些屬性會決定元素的效果字體

  其實當咱們把css的屬性分類結束後,咱們會獲得一個很明顯的答案,咱們能夠想象一下本身用css按照本身的書寫順序畫出來該元素,舉例說明spa

 

p.detail {
  font-size: 10px;
  line-height: 12px;
  width: 30px;
  height: 30px;
  display: inline;        
}

 

  描述:這是一個元素  字體大小10px 行高12px 寬度30px 高度30px  陳列方式爲內聯樣式htm

  當咱們開始讀取屬性的時候,咱們會很難對元素進行定位,由於咱們不知道元素的特性,陳列方式。讀到最後一行的時候才發現,原來這是一個內聯元素,寬度和高度的定義就會失效,因此這種css書寫順序是不被推薦的blog

p.detail {
  display: inline-block;
  margin-top: 20px;
  width: 100%;
  height: 20px;
  color: #fff;
  font-size: 10px;
}

  描述: 這是一個元素,陳列方式爲內聯-塊方式,距上有20px 寬度與父元素等寬 高度爲20px 顏色爲白色 字體大小爲10pxip

  這樣的書寫方式就能按照一個咱們很容易理解的方式進行渲染it

 

  總結: 咱們書寫css的時候推薦的規範是,先書寫影響元素陳列特性的屬性,再書寫影響元素位置的屬性,最後書寫元素的內部屬性

 

2、點擊或hover等觸發高亮狀況的css書寫

  當鼠標hover的時候,咱們每每給須要改變的元素添加一個active類名,而後在active裏面書寫咱們須要改變的屬性

  如:

.content {
  background: black;  
}
.active {
  background: white;
}

  當咱們點擊某元素的時候,須要.content的背景色從黑色變成白色,那麼給.content添加active類名就會達到咱們的預期效果,然而咱們有的時候點擊的時候不止要改變一個元素的屬性,咱們有可能會有這種狀況

  咱們須要在點擊一個類名爲.click的元素的時候,元素icon字體 和 span元素一個字體變大 一個變爲紅色怎麼辦,咱們能夠這樣

<div class="parent">
	<div class="icon-font"></div>
	<span class="text"></span>
</div>
<div class="click"></div>
<style>
  .icon-active{
    font-size: 40px;
  }
  .text-active{
    color: red;
  }
</style>
<script src="jquery.js"></script>
<script>
  $(‘.click’).click(function() {
    $('.icon-font').addClass('icon-active');
    $('.text').addClass('text-active')
  })
</script>

  這樣能夠達到咱們的預期效果,可是這是兩個元素的關聯反應,假若有三個元素或更多,咱們會須要更多的代碼,

  其實細心的朋友可能發現了我這裏有一個.parent 標籤,咱們能夠經過給.parent標籤添加active類名代碼以下:

<div class="parent">
	<div class="icon-font"></div>
	<span class="text"></span>
</div>
<div class="click"></div>
<style>
  .active .icon-font{
    font-size: 40px;
  }
  .active .text{
    color: red;
  }
</style>
<script src="jquery.js"></script>
<script>
  $(‘.click’).click(function() {
    $('.parent').addClass('active');
  })
</script>

  

  這樣的話 咱們只須要將會改變css元素的最相近的最外層添加active類名,而後設置該類名下後代元素的樣式,這樣咱們只須要添加一個active類名就達到了咱們預期的效果

相關文章
相關標籤/搜索