十條鮮為人知的CSS使用技巧

來源:互聯網
上載者:User
關鍵字 網頁製作 CSS教程

十條鮮為人知的CSS使用技巧

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

h1
{
background: url(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之內任何專案置於<div id="content"></div>中,該專案將自動獲得相等的左右邊界值從而保證了居中顯示。 不過,這在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;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.