爪哇咖啡館

          我為J狂

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            11 隨筆 :: 2 文章 :: 39 評論 :: 0 Trackbacks

          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 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之內任何項目置于當中,該項目將自動獲得相等的左右邊界值從而保證了居中顯示。不過,這在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;
            }

            則容器內的任何元素的定位都是相對于該容器的。如果想將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來指定左列的寬度,當用戶改變文字的大小導致內容的寬度擴張時,背景色的寬度不會隨之改變。

            到寫這篇文章為止這是對這類問題的唯一解決辦法,因此你只能為左列使用像素值來獲得能夠自動延伸的不同的背景色。

          posted on 2007-04-20 16:26 哲藤峰子 閱讀(599) 評論(1)  編輯  收藏

          評論

          # re: css樣式設計技術 2013-03-01 15:37 未來城市
          寫的很好  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 黄冈市| 天台县| 措勤县| 莎车县| 怀化市| 澎湖县| 广丰县| 子洲县| 寿阳县| 偏关县| 晋江市| 临清市| 清流县| 乌拉特中旗| 柘荣县| 朝阳市| 于田县| 昆明市| 上虞市| 扎赉特旗| 都江堰市| 缙云县| 双牌县| 花莲市| 张家港市| 芮城县| 玉山县| 永昌县| 广宁县| 鄂托克前旗| 海口市| 高碑店市| 彰化县| 武邑县| 台中市| 汤原县| 平潭县| 襄樊市| 鹤岗市| 天津市| 洪泽县|