posts - 22,comments - 35,trackbacks - 0
          當(dāng)使用css定義字體時你可能會這樣做:
          font-size: 1em;
          line-height: 1.5em;
          font-weight: bold;
          font-style: italic;
          font-variant: small-caps;
          font-family: verdana,serif;
          事實(shí)上你可以簡寫這些屬性:
          font: 1em/1.5em bold italic small-caps verdana,serif
          現(xiàn)在好多了吧,不過有一點(diǎn)要注意:使用這一簡寫方式你至少要指定font-size和font-family屬性,其他的屬性(如font-weight, font-style,font-varient)如未指定將自動使用默認(rèn)值。


          2.同時使用兩個class
          通常我們只為屬性指定一個class,但這并不等于你只能指定一個,實(shí)際上,你想指定多少就可以指定多少,例如:
          <p class="text side">...</p>
          通過同時使用兩個class(使用空格而不是逗號分割),這個段落將同時應(yīng)用兩個class中制定的規(guī)則。如果兩者中有任何規(guī)則重疊,那么后一個將獲得實(shí)際的優(yōu)先應(yīng)用。


          3.css中邊框(border)的默認(rèn)值
          當(dāng)編寫一條邊框的規(guī)則時,你通常會指定顏色、寬度以及樣式(任何順序均可)。例如:border: 3px solid #000(3像素寬的黑色實(shí)線邊框),其實(shí)這個例子中唯一需要指定的值只是樣式。假如你指定樣式為實(shí)線(solid),那么其余的值將使用默認(rèn)值:默認(rèn)的寬度為中等(相當(dāng)于3到4像素);默認(rèn)的顏色為邊框里的文字顏色。如果這正是你想要的效果,你完全可以不在css里指定。


          4.!important會被IE忽略
          在css中,通常最后指定的規(guī)則會獲得優(yōu)先權(quán)。然而對除了IE以外的瀏覽器來說,任何后面標(biāo)有!important的語句將獲得絕對的優(yōu)先權(quán),例如:
          margin-top: 3.5em !important; margin-top: 2em
          除IE以外所有瀏覽器中的頂部邊界都是3.5em,而IE為2em,有時候這一點(diǎn)很有用,尤其在使用相對邊界值時(就像這個例子),可以顯示出IE與其他瀏覽器的細(xì)微差別。
          (很多人可能還注意到了css的子選擇器也是會被IE忽略的)


          5.圖片替換的技巧
          使用標(biāo)準(zhǔn)的html而不是圖片來顯示文字通常更為明智,除了加快下載還可以獲得更好的可用性。但是如果你決心使用訪問者的機(jī)器中可能沒有的字體時,你只能選擇圖片。
          舉例來說,你想在每一頁的頂部使用“Buy widgets”的標(biāo)題,但你同時又希望這是能被搜索引擎發(fā)現(xiàn)的,為了美觀你使用了少見的字體那么你就得用圖片來顯示了:
          <h1><img src="widget-image.gif" alt="Buy widgets" /></h1>
          這樣當(dāng)然沒錯,但是有證據(jù)顯示搜索引擎對真實(shí)文本的重視遠(yuǎn)超過alt文本(因?yàn)橐呀?jīng)有太多網(wǎng)站使用alt文本充當(dāng)關(guān)鍵字),因此,我們得用另一種方法: <h1><span>Buy widgets</span></h1> ,那你的漂亮字體怎么辦呢?下面的css可以幫上忙:
          h1
          {
          background: url(widget-image.gif) no-repeat;
          }

          h1 span
          {
          position: absolute;
          left:-2000px;
          }
          現(xiàn)在你既用上了漂亮的圖片又很好的隱藏了真實(shí)文本——借助css,文本被定位于屏幕左側(cè)-2000像素處。


          6.css盒模型hack的另一選擇
          css盒模型hack被用來解決IE6之前的瀏覽器顯示問題,IE6.0之前的版本會把某元素的邊框值和填充值包含在寬度之內(nèi)(而不是加在寬度值上)。例如,你可能會使用以下css來指定某個容器的尺寸:
          #box
          {
          width: 100px;
          border: 5px;
          padding: 20px;
          }
          然后在html中應(yīng)用:<div id="box">...</div>
          盒的總寬度在幾乎所有瀏覽器中為150像素(100像素寬度+兩條5像素的邊框+兩個20像素的填充),唯獨(dú)在IE6之前版本的瀏覽器中仍然為100像素(邊框值和填充值包含在寬度值中),盒模型的hack正是為了解決這一問題,但是也會帶來麻煩。更簡單的辦法如下:
          css:
          #box
          {
          width: 150px;
          }

          #box div {
          border: 5px;
          padding: 20px;
          }
          html:
          <div id="box"><div>...</div></div>
          這樣一來在任何瀏覽器中盒的總寬度都將是150像素。


          7.將塊元素居中
          假設(shè)你的網(wǎng)站使用了固定寬度的布局,所有的內(nèi)容置于屏幕中央,可以使用以下的css:
          #content
          {
          width: 700px;
          margin: 0 auto;
          }
          你可以把html的body之內(nèi)任何項(xiàng)目置于<div id="content"></div>中,該項(xiàng)目將自動獲得相等的左右邊界值從而保證了居中顯示。不過,這在IE6之前版本的瀏覽器中仍然有問題,將不會居中,因此必須修改如下:
          body
          {
          text-align: center;
          }

          #content
          {
          text-align: left;
          width: 700px;
          margin: 0 auto;
          }
          對body的設(shè)定將導(dǎo)致主體內(nèi)容居中,但是連所有的文字也居中了,這恐怕不是你想要的效果,為此#content 的div還要指定一個值:text-align: left

          8.使用css實(shí)現(xiàn)垂直居中
          垂直居中對表格來說是小菜一碟,只需指定單元格為vertical-align: middle即可,但這在css布局中不管用。假設(shè)你將一個導(dǎo)航菜單的高度設(shè)為2em,然后在css中指定垂直對齊的規(guī)則,文字還是會被排到盒的頂部,根本沒有什么區(qū)別。
          要解決這一問題,只需將盒的行高設(shè)為與盒的高度相同即可,以這個例子來說,盒高2em,那么只需在css中再加入一條:line-height: 2em 就可實(shí)現(xiàn)垂直居中了!

          9. 容器內(nèi)的css定位
          css的最大優(yōu)點(diǎn)之一就是可以將對象定位在文檔的任何位置,同樣的也可以將對象在某容器內(nèi)進(jìn)行定位。只需要為該容器添加一條css規(guī)則:
          #container
          {
          position: relative;
          }
          則容器內(nèi)的任何元素的定位都是相對于該容器的。假定你使用以下html結(jié)構(gòu):
          <div id="container"><div id="navigation">...</div></div>
          如果想將navigation定位在容器內(nèi)離左邊界30像素,離頂部5像素,可以使用以下css語句:
          #navigation
          {
          position: absolute;
          left: 30px;
          top: 5px;
          }

          10.延伸至屏幕底部的背景色
          css的缺點(diǎn)之一是缺乏垂直方向的控制,從而導(dǎo)致了一個表格布局不會遇到的問題。假設(shè)你在頁面的左側(cè)設(shè)定了一列用于放置網(wǎng)站的導(dǎo)航。頁面為白色背景,但你希望導(dǎo)航所在的列為藍(lán)色背景,使用以下css即可:
          #navigation
          {
          background: blue;
          width: 150px;
          }
          問題在于導(dǎo)航項(xiàng)不會一直延伸到頁面的底部,自然它的背景色也不會延伸到底部。于是左列的藍(lán)色背景在頁面上被半路截斷,浪費(fèi)了你的一番設(shè)計。怎么辦呢?很不幸我們現(xiàn)在只能用欺騙的辦法,即將body的背景指定為與左列同顏色同寬度的圖片,css如下:
          body
          {
          background: url(blue-image.gif) 0 0 repeat-y;
          }
          背景圖應(yīng)為寬150像素的藍(lán)色圖片。這一辦法的缺點(diǎn)是沒法使用em來指定左列的寬度,當(dāng)用戶改變文字的大小導(dǎo)致內(nèi)容的寬度擴(kuò)張時,背景色的寬度不會隨之改變。
          到寫這篇文章為止這是對這類問題的唯一解決辦法,因此你只能為左列使用像素值來獲得能夠自動延伸的不同的背景色。
          posted on 2006-08-07 14:09 kelven 閱讀(166) 評論(0)  編輯  收藏 所屬分類: Hibernate
          主站蜘蛛池模板: 深水埗区| 海原县| 中卫市| 新乡县| 司法| 台中县| 九江县| 无棣县| 城固县| 格尔木市| 遵义市| 渝中区| 湖南省| 涟源市| 烟台市| 永康市| 启东市| 星子县| 崇礼县| 黄陵县| 威海市| 北票市| 丰宁| 怀化市| 延庆县| 天门市| 柯坪县| 崇仁县| 体育| 罗定市| 宣武区| 涡阳县| 达州市| 五家渠市| 龙江县| 永安市| 瑞昌市| 天台县| 安远县| 太和县| 仪征市|