首頁  >  文章  >  web前端  >  css技巧十條_CSS/HTML

css技巧十條_CSS/HTML

WBOY
WBOY原創
2016-05-16 12:11:061435瀏覽

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,但這並不等於你只能指定一個,實際上,你想指定多少就可以指定多少,例如:

...


透過同時使用兩個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」的標題,但你同時又希望這是能被搜尋引擎發現的,為了美觀你使用了少見的字體那麼你就得用圖片來顯示了:

Buy widgets


這樣當然沒錯,但是有證據顯示搜尋引擎對真實文本的重視遠超過alt文本(因為已經有太多網站使用alt文本充當關鍵字),因此,我們得用另一種方​​法:

Buy widgets

,那你的漂亮字體怎麼辦呢?下面的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中應用:
...

盒的總寬度在幾乎所有瀏覽器中為150像素(100像素寬度+兩條5像素的邊框+兩個20像素的填充),唯獨在IE6之前版本的瀏覽器中仍然為100像素(邊框值和填充值包含在寬度值中),盒模型的hack正是為了解決這一問題,但是也會帶來麻煩。更簡單的方法如下:
css:
#box
{
width: 150px;
}

#box div
border: 5px;
#box div
border: 5px;padding: 20px;
}
html:
...


這樣一來在任何瀏覽器中盒的總寬度都將是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;
}
本文を設定すると、本文のコンテンツが中央に配置されますただし、すべてのテキストが中央揃えであっても、これはおそらく希望する効果ではありません。このため、#content の div にも値を指定する必要があります: text-align: left

8。垂直方向のセンタリングを実現します
垂直方向のセンタリングはテーブルにとって簡単で、セルをvertical-align: middleとして指定するだけですが、これはCSSレイアウトでは機能しません。ナビゲーション メニューの高さを 2em に設定し、CSS で垂直方向の配置規則を指定したとします。テキストは依然としてボックスの上部に配置され、まったく違いはありません。
この問題を解決するには、ボックスの行の高さをボックスの高さと同じに設定します。この例では、ボックスの高さは 2em で、CSS に別の line-height: 2em を追加するだけです。垂直方向のセンタリングが可能!

9. コンテナ内での CSS の配置
CSS の最大の利点の 1 つは、ドキュメント内の任意の場所にオブジェクトを配置できることです。オブジェクトはコンテナ内にも配置できます。 CSS ルールをコンテナに追加するだけです:
#container
{
position:relative;
}
これにより、コンテナ内の要素の位置はコンテナを基準にしたものになります。次の HTML 構造を使用するとします。

コンテナ内にナビゲーションを配置する場合は、左の境界線から 30 ピクセル、境界線から 5 ピクセルの位置に配置します。 top では、次の CSS ステートメントを使用できます:
#navigation
{
position:Absolute;
left: 30px;
top: 5px;
}

10. 画面の下部まで拡張します 背景色
CSS の欠点の 1 つは、垂直方向の制御が欠如していることであり、テーブル レイアウトでは発生しない問題が発生します。 Web サイトのナビゲーションを配置する列をページの左側に設定するとします。ページの背景は白ですが、ナビゲーション列の背景を青にしたい場合は、次の CSS を使用します:
#navigation
{
background: blue;
width: 150px;
}
問題は、ナビゲーション項目がページの下部まで拡張されておらず、当然のことながら、その背景色も下部まで拡張されていないことです。そのため、左の列の青い背景がページの途中で切り取られ、デザインが無駄になってしまいます。何をするか?残念ながら、本文の背景を左の列と同じ色と幅の画像として指定することしかできません。CSS は次のとおりです:
body
{
background: url(blue-image.gif ) 0 0repeat-y;
}
背景画像は幅 150 ピクセルの青色の画像である必要があります。この方法の欠点は、em を使用して左列の幅を指定できないことです。ユーザーがテキストのサイズを変更してコンテンツの幅が拡大しても、背景色の幅はそれに応じて変更されません。
この記事を書いている時点では、これがこの種の問題に対する唯一の解決策であるため、自動的に引き伸ばされる別の背景色を取得するには、左の列のピクセル値のみを使用できます。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn