1.css font的簡寫規則 當我們寫字體樣式的時候,我們也許會這樣子寫 font-size: 1em; line-height: 1.5em; font-weight: bold; font-style: italic; font-variant: small-caps; font-family
1.css font的簡寫規則
當我們寫字體樣式的時候,我們也許會這樣子寫
font-size: 1em; line-height: 1.5em; font-weight: bold; font-style: italic; font-variant: small-caps; font-family: verdana,serif
其實,這樣寫是完全多餘的,我可以只用font 來寫就OK了。
比如:
font: 1em/1.5em bold italic small-caps verdana,serif
2.把幾個class屬性寫在一起。
通常情況寫,屬性裡面的class只有一個值,但這並不是意外著你只能給它
賦一個class名,我們可以賦2個以上。比如
<p class="text side">...</p>
不過,需要註意的是,class裡面是用空格把他們分開來的,而不是“,”,這點需要註意一下。這樣運用了,那麼text和side的class 就會運用到p元素中。
3.CSS的 border的預設值 - TOP
border也就是邊框的值,我在做項目開發的時候,很習慣的做法是:
border:1px solid red;
第一個指的是框的大小,第二個是指樣式,第三個是指顏色。不過,這裡3個並非都是必須要的,必須要用的是border的樣式。其餘2個有預設值。
比如,你這樣寫:
border: solid
如果你這樣寫了,那麼預設值第一個大小的預設值是:medium(相對於3px或4px左右)以及顏色指的是文本裡面的顏色。
4.!important 在IE中會被忽視
因為瀏覽器之間的不相容性,我們在寫css的時候,為了保證網站能在各個
瀏覽器之間保持相容性,所以 我們需要使用!important這個屬性。
如果你在css使用了這個,那麼它的優先順序會比和它同名屬性的優先順序高。
這個是給除了給IE以外的瀏覽器用的。
比如
margin-top: 3.5em !important; margin-top: 2em
上面指的是,除IE之外的瀏覽器是3.5em,而IE是2em。這個很有用。
5.Image的alt屬性
我們在網站開發的時候,我們常常被建議使用HTML標簽來顯示文本,而不是圖像。這樣可以使得網站具有更快的載入速度以及可訪問性。舉個例子說,你開發了一個網站,你想在你網站的每一個頁面的頁面頂端放一個"購買物品"。現在加入你是一個賣家,那麼你很期望你的物品能被搜索引擎找到,也許你會這麼做:
<h1><img src="widget-image.gif" alt="購買物品" /></h1>
實現了,但是這裡需要註意的是,搜索引擎並不會關註img標簽alt里的關鍵字因為現在很多的賣家都是這樣子),所以白搭。所以,我們可以用css來代替
如下:
<h1><span>購買物品</span></h1>
然後定義css:
h1 { background: url(widget-image.gif) no-repeat; } h1 span { position: absolute; left:-2000px }
這樣子就OK了,迎合了搜索引擎的口味。所以呀,搜索引擎真的傷不起呀。
6.盒模型hack問題
這個問題比較難,不過說實在話的現在用的機會也比較少。因為它涉及到IE5問題,現在誰敢說還在用IE5?拉出去斃了。
不管如何,我們還瞭解一下 總沒有壞處。
IE5和其他瀏覽器(IE 6+ 以及chrome等等)對邊框的計算是不一樣的呢,怎麼說呢?
比如 代碼說明:
h1 { background: url(widget-image.gif) no-repeat; } h1 span { position: absolute; left:-2000px }
把寬度設定為200像素,但是側邊欄實際需要230像素的空間,除了IE5 for Windows以外. IE5 for Windows 里側邊欄總共會占用200像素,把內補丁和邊框都算在裡面.圖2 顯示的是當width屬性指定為200像素時,邊框和內補丁會占用內容空間,而不是內容空間之外.
對IE5 for Windows來說,則需要把寬度指定為230像素(加上兩側內補丁和邊框的寬度),接著再以200像素覆蓋回來,讓符合標準的瀏覽器得到正確的寬度.
#sidebar { padding: 10px; border: 5px solid black; width: 230px; /* for IE5/Win */ voice-family: "\"}\""; voice-family: inherit; width: 200px; /* actual value */ }
留意IE5 for Windows的值先出現,接著幾條讓IE5 for Windows認為聲明已經結束的規則,在此我們使用voice-family屬性,原因單純只是瀏覽器認得它的話也不會改變視覺效果,最後指定實際的寬度,覆蓋最初的width規則,第二個width規則會被IE5 for Windows忽略.
結果在IE5 for Windows以及其他所有相容CSS2的瀏覽器上看起來應該完全相同.沒有使用這個hack的話,IE5 for Windows的使用者就會看到比設計還瘦的欄寬。
7.塊級元素的居中效果
塊級元素?你不會這個都不懂了。不懂,我就羅嗦一下,就是指div、h1、table這類元素。相對應的就是inline元素了,比如label等等。
通俗點就是,一個會占一行(當然在沒有其他屬性的支持下),另一個不會。OK。
一般來說,對div居中,我都會寫下麵的寫法:
#content { width: 700px; margin: 0 auto; }
然後,我們很高興的 就能在正常的瀏覽器到效果,請註意,我說了正常2個子,那這也說明,有不正常的情況下?什麼情況呢?和上面的第六點一樣,也是IE5的問題,在IE5下麵,它根本就不懂這個,你說它能解決問題嘛?。
所以,我們只好按照下麵的來實現:
body { text-align: center; } #content { text-align: left; width: 700px; margin: 0 auto; }
OK,就樣就能很好的相容了。
8.垂直調整(vertical aligning)
當我們在使用table的時候,如果我們需要把一列的內容居中排列怎麼做?不用問,我們理所當然的是,用下麵的這行句話:
vertical-align: middle
很多時候,這樣可以工作,可總有例外。比方說,你現在有一個導航菜單,它的高度是2em,如果你插入這個命令的話,sorry,它不會進行執行,並且會把文字放到頂端。
那怎麼解決呢?很簡單。
你只需要把box模型的的高度的line-height指定成一樣就可以了。如下:
line-height: 2em
9.絕對定位和相對定位
這個應該是在css教程里比較難的部分吧,一下子也真的很難說清楚,有興趣的可以找找資料看。給個例子:
<style> #container { position: relative } </style> <div id="container"><div id="navigation">...</div></div>
接著我設定裡面navigation的樣式
#navigation { position: absolute; left: 30px; top: 5px }
這個說明瞭裡面的navigationo相對於外面的來說 進行CSS定位。
10.不需要給背景圖片路徑加引號
比如:
background:url("images/***.gif") #333;
你應該把CSS background屬性引號去掉
background:url(images/***.gif) #333;
如果你加了引號,反而會引起一些瀏覽器的錯誤。