推薦:常用CSS樣式表縮寫文法總結

來源:互聯網
上載者:User
css|樣式表|文法

  常用CSS縮寫文法總結

  使用縮寫可以協助減少你CSS檔案的大小,更加容易閱讀。css縮寫的主要規則如下:

  顏色

  16進位的色彩值,如果每兩位的值相同,可以縮寫一半,例如:

  #000000可以縮寫為#000;#336699可以縮寫為#369;

  盒尺寸

  通常有下面四種書寫方法:

  •   property:value1; 表示所有邊都是一個值value1;
  •   property:value1 value2; 表示top和bottom的值是value1,right和left的值是value2
  •   property:value1 value2 value3; 表示top的值是value1,right和left的值是value2,bottom的值是value3
  •   property:value1 value2 value3 value4; 四個值依次表示top,right,bottom,left

  方便的記憶方法是順時針,上右下左。具體應用在margin和padding的例子如下:

  margin:1em 0 2em 0.5em;

  邊框(border)

  邊框的屬性如下:

  •   border-width:1px;
  •   border-style:solid;
  •   border-color:#000;

  可以縮寫為一句:border:1px solid #000;

  文法是border:width style color;

  背景(Backgrounds)

  背景的屬性如下:

  •   background-color:#f00;
  •   background-image:url(background.gif);
  •   background-repeat:no-repeat;
  •   background-attachment:fixed;
  •   background-position:0 0;

  可以縮寫為一句:background:#f00 url(background.gif) no-repeat fixed 0 0;

  文法是background:color image repeat attachment position;

  你可以省略其中一個或多個屬性值,如果省略,該屬性值將用瀏覽器預設值,預設值為:

  •   color: transparent
  •   image: none
  •   repeat: repeat
  •   attachment: scroll
  •   position: 0% 0%

  字型(fonts)

  字型的屬性如下:

  •   font-style:italic;
  •   font-variant:small-caps;
  •   font-weight:bold;
  •   font-size:1em;
  •   line-height:140%;
  •   font-family:"Lucida Grande",sans-serif;

  可以縮寫為一句:font:italic small-caps bold 1em/140% "Lucida Grande",sans-serif;

  注意,如果你縮寫字型定義,至少要定義font-size和font-family兩個值。

  列表(lists)

  取消預設的圓點和序號可以這樣寫list-style:none;,

  list的屬性如下:

  •   list-style-type:square;
  •   list-style-position:inside;
  •   list-style-image:url(image.gif);

  可以縮寫為一句:list-style:square inside url(image.gif);

  1. css 字型簡寫規則

  當使用css定義字型時你可能會這樣做:

  font-size: 1em;
  line-height: 1.5em;
  font-weight: bold;
  font-style: italic;
  font-variant: small-caps;
  font-family: verdana,serif;

  事實上你可以簡寫這些屬性:

  font: 1em/1.5em bold italic small-caps verdana,serif

  現在好多了吧,不過有一點要注意:使用這一簡寫方式你至少要指定 font-size 和 font-family 屬性,其他的屬性(如 font-weight,font-style,font-varient)如未指定將自動使用預設值。

  2. 同時使用兩個class

  通常我們只為屬性指定一個class,但這並不等於你只能指定一個,實際上,你想指定多少就可以指定多少,例如:

<p class="text side">...</p>

  通過同時使用兩個 class(使用空格而不是逗號分割),這個段落將同時應用兩個 class 中制定的規則。如果兩者中有任何規則重疊,那麼後一個將獲得實際的優先應用。

  3. css中邊框(border)的預設值

  當編寫一條邊框的規則時,你通常會指定顏色、寬度以及樣式(任何順序均可)。例如:border: 3px solid #000(3像素寬的黑色實線邊框),其實這個例子中唯一需要指定的值只是樣式。假如你指定樣式為實線(solid),那麼其餘的值將使用預設值:預設的寬度為中等(相當於3到4像素);預設的顏色為邊框裡的文字顏色。如果這正是你想要的效果,你完全可以不在css裡指定。

  4. !important會被IE忽略

  在 css 中,通常最後指定的規則會獲得優先權。然而對除了IE以外的瀏覽器來說,任何後面標有 !important 的語句將獲得絕對的優先權,例如:margin-top: 3.5em !important; margin-top: 2em。

  除IE以外所有瀏覽器中的頂部邊界都是3.5em,而IE為2em,有時候這一點很有用,尤其在使用相對邊界值時(就像這個例子),可以顯示出IE與其他瀏覽器的細微差別。(很多人可能還注意到了css的子選取器也是會被IE忽略的)

  5. 圖片替換的技巧

  使用標準的html而不是圖片來顯示文字通常更為明智,除了加快下載還可以獲得更好的可用性。但是如果你決心使用訪問者的機器中可能沒有的字型時,你只能選擇圖片。

  舉例來說,你想在每一頁的頂部使用“Buy widgets”的標題,但你同時又希望這是能被搜尋引擎發現的,為了美觀你使用了少見的字型那麼你就得用圖片來顯示了:

<h1><img src="http://www.webjx.com/htmldata/2007-04-01/widget-image.gif" alt="Buy widgets" /></h1>

  這樣當然沒錯,但是有證據顯示搜尋引擎對真實文本的重視遠超過alt文本(因為已經有太多網站使用alt文本充當關鍵字),因此,我們得用另一種方法:<h1><span>Buy widgets</span></h1> 那你的漂亮字型怎麼辦呢?下面的css可以幫上忙:

  h1 {
  background: url(http://www.webjx.com/htmldata/2007-04-01/widget-image.gif) no-repeat;
  }
  h1 span {
  position: absolute;
  left:-2000px;
  }

  現在你既用上了漂亮的圖片又很好的隱藏了真實文本——藉助css,文本被定位於螢幕左側-2000像素處。

  6. css盒模型hack的另一選擇

  css盒模型hack被用來解決IE6之前的瀏覽器顯示問題,IE6.0之前的版本會把某元素的邊框值和填儲值包含在寬度之內(而不是加在寬度值上)。例如,你可能會使用以下css來指定某個容器的尺寸:

  #box {
  width: 100px;
  border: 5px;
  padding: 20px;
  }

  然後在html中應用:<div id="box">...</div>,盒的總寬度在幾乎所有瀏覽器中為150像素(100像素寬度+兩條5像素的邊框+兩個20像素的填充),唯獨在IE6之前版本的瀏覽器中仍然為100像素(邊框值和填儲值包含在寬度值中),盒模型的hack正是為瞭解決這一問題,但是也會帶來麻煩。更簡單的辦法如下:

  css:

  #box {
  width: 150px;
  }
  #box div {
  border: 5px;
  padding: 20px;
  }

  html:

<div id="box"><div>...</div></div>

  這樣一來在任何瀏覽器中盒的總寬度都將是150像素。

  7. 將塊元素置中

  假設你的網站使用了固定寬度的布局,所有的內容置於螢幕中央,可以使用以下的css:

  #content {
  width: 700px;
  margin: 0 auto;
  }

  你可以把html的body之內任何項目置於

中,該項目將自動獲得相等的左右邊界值從而保證了置中顯示。不過,這在IE6之前版本的瀏覽器中仍然有問題,將不會置中,因此必須修改如下:

  body {
  text-align: center;
  }
  #content {
  text-align: left;
  width: 700px;
  margin: 0 auto;
  }

  對body的設定將導致主體內容置中,但是連所有的文字也置中了,這恐怕不是你想要的效果,為此#content 的div還要指定一個值:text-align: left。

  8. 使用css實現垂直置中

  垂直置中對錶格來說是小菜一碟,只需指定儲存格為 vertical-align: middle 即可,但這在css布局中不管用。假設你將一個導覽功能表的高度設為2em,然後在css中指定垂直對齊的規則,文字還是會被排到盒的頂部,根本沒有什麼區別。

  要解決這一問題,只需將盒的行高設為與盒的高度相同即可,以這個例子來說,盒高2em,那麼只需在css中再加入一條:line-height: 2em 就可實現垂直置中了!

  9. 容器內的css定位

  css的最大優點之一就是可以將對象定位在文檔的任何位置,同樣的也可以將對象在某容器內進行定位。只需要為該容器添加一條css規則:

  #container {
  position: relative;
  }

  則容器內的任何元素的定位都是相對於該容器的。假定你使用以下html結構:

  <div id="container"><div id="navigation">...</div></div>

  如果想將navigation定位在容器內離左邊界30像素,離頂部5像素,可以使用以下css語句:

  #navigation {
  position: absolute;
  left: 30px;
  top: 5px;
  }

  10. 延伸至螢幕底部的背景色

  css的缺點之一是缺乏垂直方向的控制,從而導致了一個表格版面配置不會遇到的問題。假設你在頁面的左側設定了一列用於放置網站的導航。頁面為白色背景,但你希望導航所在的列為藍色背景,使用以下css即可:

  #navigation {
  background: blue;
  width: 150px;
  }

  問題在於導航項不會一直延伸到頁面的底部,自然它的背景色也不會延伸到底部。於是左列的藍色背景在頁面上被半路截斷,浪費了你的一番設計。怎麼辦呢?很不幸我們現在只能用欺騙的辦法,即將body的背景指定為與左列同顏色同寬度的圖片,css如下:

  body {
  background: url(blue-image.gif) 0 0 repeat-y;
  }

  背景圖應為寬150像素的藍色圖片。這一辦法的缺點是沒法使用em來指定左列的寬度,當使用者改變文字的大小導致內容的寬度擴張時,背景色的寬度不會隨之改變。到寫這篇文章為止這是對這類問題的唯一解決辦法,因此你只能為左列使用像素值來獲得能夠自動延伸的不同的背景色。



相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.