隨筆 - 28, 文章 - 0, 評(píng)論 - 3, 引用 - 0
          數(shù)據(jù)加載中……

          2010年1月22日

          網(wǎng)頁(yè)寬度多少最適合?(轉(zhuǎn))

          公司網(wǎng)站最近一個(gè)月統(tǒng)計(jì)出來(lái)的訪客分辨率報(bào)表圖:
          2009-04-21_133507

          可見(jiàn),目前使用800*600的幾乎是微乎其微了,1024還是居于上風(fēng),目前19,21寸甚至更大的顯示正在逐步被廣泛使用,所以N年前流行的778,780等等都好像是幾個(gè)世紀(jì)以前的事情了。

          再看一組數(shù)據(jù)

          網(wǎng)站 首頁(yè)頁(yè)面寬度 px
          Yahoo! 950
          淘寶 950
          MySpace 960
          新浪 950
          網(wǎng)易 960
          Live Search 958
          搜狐 950
          優(yōu)酷 960
          AOL 960

          上面都是Alexa全球排名前100的站點(diǎn),而且WordPress的皮膚,百分之90以上都是960px寬。為什么設(shè)計(jì)師們都喜歡這個(gè)數(shù)據(jù)(950px/960px)呢?以下部分轉(zhuǎn)自網(wǎng)頁(yè)柵格系統(tǒng)研究(1):960的秘密,作者:玉伯

          設(shè)計(jì)師們對(duì)蘋(píng)果情有獨(dú)衷。在 1024 x 768 的分辨率下,打開(kāi)Firefox:

          自然狀態(tài)下,F(xiàn)irefox窗體的大小約為 974 x 650. 減掉左右兩邊7px的邊框,網(wǎng)頁(yè)的實(shí)際大小為上圖中的紅色部分,高寬為 960 x 650.

          數(shù)字背后的奧妙

          上面的“自然”出現(xiàn),細(xì)究自然是不讓人信服的。蘋(píng)果系統(tǒng)的設(shè)計(jì)者們?cè)跊](méi)有喝醉酒的情況下選擇了960,而不是其它什么1000之類(lèi)的整數(shù),自然另有奧妙。

          科學(xué)界有很多問(wèn)題都可以歸結(jié)到數(shù)學(xué)問(wèn)題上,我們也從數(shù)學(xué)著手:

          960可以分解為2的6次方乘以3和5, 這使得960可以分割成以下寬度的整數(shù)倍:

          2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 20, 24, 30, 32, 40,
          48, 60, 64, 80, 96, 120, 160, 192, 240, 320, 480

          共26種(26 = 7 * 2 * 2 – 2, 減去2是去掉1和960自身),我們標(biāo)記為:

          N(960) = N(2^6 * 3 * 5) = 26

          根據(jù)上面的算法,可以得到:

          N(360) = N(2^3 * 3^2 * 5) = 22
          N(480) = N(2^5 * 3 * 5) = 22
          N(720) = N(2^4 * 3^2 * 5) = 28
          N(750) = N(2 * 3 * 5^3) = 14
          N(800) = N(2^5 * 5^2) = 16
          N(960) = N(2^6 * 3 * 5) = 26
          N(1000) = N(2^3 * 5^3) = 14
          N(1024) = N(2^10) = 9
          N(1440) = N(2^6 * 3^2 * 5) = 34
          N(1920) = N(2^7 * 3 * 5) = 30

          根據(jù)直覺(jué)(嚴(yán)格證明也不難,不過(guò)還是留給數(shù)學(xué)系的學(xué)生去證明吧),我們得到一個(gè)有趣的結(jié)論:

          要使得N(width)最大,width的取值有兩個(gè)系列:

          A系列: …, 320, 720, 1440, …

          B系列: …, 480, 960, 1920, …

          N越大,可組合的寬度值就越多。對(duì)柵格系統(tǒng)來(lái)說(shuō),這意味著越靈活!

          目前絕大多數(shù)顯示器都支持 1024 x 768 及其以上分辨率。為了有效的利用屏幕寬度同時(shí)保證柵格的靈活度,可以看出960是非常合適的。這樣,在目前主流顯示器下,960就成為網(wǎng)頁(yè)柵格系統(tǒng)中的最佳寬度了。(也許不久的將來(lái),將會(huì)流行1440)

          以上內(nèi)容轉(zhuǎn)自http://lifesinger.org/blog/?p=375

          posted @ 2010-03-23 14:01 Angle Wang 閱讀(1039) | 評(píng)論 (0)編輯 收藏

          悟透JavaScript【轉(zhuǎn)】

               摘要: 非常好的一篇文章,作者李戰(zhàn),阿里軟件的老頑童,混跡IT江湖多年。在數(shù)據(jù)庫(kù)、Web架構(gòu)、前端技術(shù),及數(shù)據(jù)庫(kù)全文檢索方面有深厚內(nèi)力.相信你讀完此文,必定功力大增。 引子 編程世界里只存在兩種基本元素,一個(gè)是數(shù)據(jù),一個(gè)是代碼。編程世界就是在數(shù)據(jù)和代碼千絲萬(wàn)縷的糾纏中呈現(xiàn)出無(wú)限的生機(jī)和活力。 數(shù)據(jù)天生就是文靜的,總想保持自己固有的本色;而代碼卻天生活潑,總想改變這個(gè)世界。 你看,數(shù)據(jù)代碼間的關(guān)系與...  閱讀全文

          posted @ 2010-03-23 13:44 Angle Wang 閱讀(319) | 評(píng)論 (0)編輯 收藏

          從零開(kāi)始學(xué)習(xí)jQuery(轉(zhuǎn))

          從零開(kāi)始學(xué)習(xí)jQuery (一) 開(kāi)天辟地入門(mén)篇

          從零開(kāi)始學(xué)習(xí)jQuery (二) 萬(wàn)能的選擇器

          從零開(kāi)始學(xué)習(xí)jQuery (三) 管理jQuery包裝集

          從零開(kāi)始學(xué)習(xí)jQuery (四) 使用jQuery操作元素的屬性與樣式

          從零開(kāi)始學(xué)習(xí)jQuery (五) 事件與事件對(duì)象

          從零開(kāi)始學(xué)習(xí)jQuery (六) jQuery中的Ajax

          從零開(kāi)始學(xué)習(xí)jQuery (七) jQuery動(dòng)畫(huà)-讓頁(yè)面動(dòng)起來(lái)!

          從零開(kāi)始學(xué)習(xí)jQuery (八) 插播:jQuery實(shí)施方案

          從零開(kāi)始學(xué)習(xí)jQuery (九) jQuery工具函數(shù)

          從零開(kāi)始學(xué)習(xí)jQuery (十) jQueryUI常用功能實(shí)戰(zhàn)

          從零開(kāi)始學(xué)習(xí)jQuery (十一) 實(shí)戰(zhàn)表單驗(yàn)證與自動(dòng)完成提示插件

          posted @ 2010-03-23 13:41 Angle Wang 閱讀(233) | 評(píng)論 (0)編輯 收藏

          一些專(zhuān)業(yè)博客和技術(shù)網(wǎng)站收錄

          藍(lán)色理想:http://www.blueidea.com/ 網(wǎng)站設(shè)計(jì)人員之家,主要關(guān)于網(wǎng)站前端設(shè)計(jì)內(nèi)容,通常搜CSS內(nèi)容會(huì)搜到這里。

          http://blog.bingo929.com/注前端開(kāi)發(fā)/網(wǎng)頁(yè)設(shè)計(jì)/網(wǎng)站可用性/用戶(hù)體驗(yàn),暴風(fēng)彬彬的趣味互聯(lián)網(wǎng)生活…

          淘寶網(wǎng)用戶(hù)體驗(yàn)設(shè)計(jì)UED: http://ued.taobao.com/blog/
          口碑網(wǎng)用戶(hù)體驗(yàn)設(shè)計(jì)UED: http://ued.koubei.com/
          阿里媽媽用戶(hù)體驗(yàn)設(shè)計(jì)UED: http://ued.alimama.com/
          阿里巴巴(中國(guó)站) 用戶(hù)體驗(yàn)部: http://www.aliued.cn/
          阿里軟件UED團(tuán)隊(duì): http://www.alisoftued.com
          19樓UED團(tuán)隊(duì): http://ued.dukuai.com/blog/
          用戶(hù)為中心的設(shè)計(jì)(UCD),UCD大社區(qū),http://ucdchina.com/

          個(gè)人技術(shù)博客:
          李會(huì)軍:http://www.dotneteye.cnorg 去過(guò)博客園的應(yīng)該都知道吧,神仙級(jí)專(zhuān)家。
          趙劼:http://www.cnblogs.com/JeffreyZhao/ 同上,為博客員知名專(zhuān)家,特佩服他!
          淘寶玉伯:http://lifesinger.org/blog/ 淘寶前端,對(duì)前端細(xì)節(jié)研究很深入!博客更新也算頻繁。
          淘寶懌飛:http://www.planabc.net/ 淘寶前端,花名圓心,博客內(nèi)容也很值得看。
          cssrain:http://www.cssrain.cn/ 懶人開(kāi)發(fā)人員一定要去看看哦,資源超多,很多效果例子。特別是jquery。

          源碼站:
          http://www.codeplex.com 微軟的.NET源碼發(fā)布站,很多很好的.NET源代碼

          posted @ 2010-03-23 13:37 Angle Wang 閱讀(238) | 評(píng)論 (0)編輯 收藏

          良好的用戶(hù)體驗(yàn),必須是全方位的【轉(zhuǎn)】

          用戶(hù)體驗(yàn)(User Experience,簡(jiǎn)稱(chēng)UX 或 UE)是一種純主觀的在用戶(hù)使用一個(gè)產(chǎn)品(服務(wù))的過(guò)程中建立起來(lái)的心理感受。因?yàn)樗羌冎饔^的,就帶有一定的不確定因素。個(gè)體差異也決定了每個(gè)用戶(hù)的真實(shí)體驗(yàn)是無(wú)法通過(guò)其他途徑來(lái)完全模擬或再現(xiàn)的。但是對(duì)于一個(gè)界定明確的用戶(hù)群體來(lái)講,其用戶(hù)體驗(yàn)的共性是能夠經(jīng)由良好設(shè)計(jì)的實(shí)驗(yàn)來(lái)認(rèn)識(shí)到。計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)的發(fā)展,使技術(shù)創(chuàng)新形態(tài)正在發(fā)生轉(zhuǎn)變,以用戶(hù)為中心、以人為本越來(lái)越得到重視,用戶(hù)體驗(yàn)也因此被稱(chēng)做創(chuàng)新2.0模式的精髓。”—–百度百科

          現(xiàn)在,幾乎人人都在談、在做用戶(hù)體驗(yàn),有為了用戶(hù)體驗(yàn)而用戶(hù)體驗(yàn)的;有不知何為用戶(hù)體驗(yàn),就亂指揮一通的;有做了幾天可用性改進(jìn)就宣稱(chēng)飛躍的…..當(dāng)然,也有很多是踏踏實(shí)實(shí)為廣大人民做實(shí)事,做好產(chǎn)品設(shè)計(jì)的。
          不管怎樣,以下的思考文字中希望有那么一點(diǎn)點(diǎn)是閃光的。
           
          看了百度百科的詞條,結(jié)合自己的經(jīng)驗(yàn),可以這么理解:用戶(hù)體驗(yàn),是通過(guò)接觸某樣有形或者無(wú)形的事物后,建立在用戶(hù)身上的一個(gè)范圍比較廣的情感疊加,跟樂(lè)高積木是一樣一樣的,堆得好,可以很高,某一塊不穩(wěn),就會(huì)全倒下。那,到底有多廣呢?

          1.一個(gè)購(gòu)書(shū)體驗(yàn):流程流暢度

          給自己買(mǎi)一本書(shū),我想到的是淘寶和當(dāng)當(dāng),有人會(huì)說(shuō):買(mǎi)書(shū)當(dāng)然去當(dāng)當(dāng)或者卓越了。我不是這么認(rèn)為的,首先,都是網(wǎng)購(gòu),淘寶也賣(mài)書(shū),并且能討價(jià)還價(jià),能了解更多細(xì)節(jié),而當(dāng)當(dāng)不能,但如果在淘寶上價(jià)格太高,沒(méi)有當(dāng)當(dāng)劃算,且不是很急著買(mǎi),那我會(huì)選擇當(dāng)當(dāng)。
          —–這里面有兩個(gè)點(diǎn):網(wǎng)絡(luò)購(gòu)物習(xí)慣養(yǎng)成的條件反射 和  買(mǎi)賣(mài)家之間的交流 ,這兩個(gè)是體驗(yàn)的一部分。
          決定上當(dāng)當(dāng)后,打開(kāi)首頁(yè),logo旁的“十年品質(zhì) 放心低價(jià)”,有點(diǎn)暖,而導(dǎo)航下左邊的這個(gè)綠色突出的區(qū)域也表明,當(dāng)當(dāng)主要核心業(yè)務(wù)就是書(shū)!整個(gè)配色在視覺(jué)上挺舒服,而導(dǎo)航和搜索也讓我很快找到我要買(mǎi)的書(shū)—《教父》。

          15

          ——站點(diǎn)的載入速度是個(gè)大問(wèn)題,當(dāng)當(dāng)基本能在3秒內(nèi)打開(kāi)首頁(yè),不錯(cuò)的優(yōu)化。廣告語(yǔ)和用色貼合國(guó)內(nèi)消費(fèi)人群的心理,起碼對(duì)于我來(lái)說(shuō),覺(jué)得:可信賴(lài),不太亂。
          找到我要的書(shū)后,我點(diǎn)擊了購(gòu)買(mǎi),進(jìn)入了我的購(gòu)物車(chē),有一個(gè)疑慮、不舒服:

          24

          —–不知道這個(gè)是好,還是壞,可能對(duì)于不同的人,有不同的感受,這個(gè)推薦本身是很好的,但讓我疑惑的是,它大面積的空間和眾多黃色按鈕,讓我找不著北了,因?yàn)榈竭@步,我心里想著:該結(jié)算了,但處于商業(yè)目的,推薦區(qū)域在一定程度上(或許我比較閑的時(shí)候,推薦對(duì)我有用)干擾了我。
          接下來(lái)的結(jié)算流程很順利,我選擇的是貨到付款,很好的是:最后提示我,發(fā)貨地點(diǎn)是廣州,會(huì)在2-3天后發(fā)貨,郵箱也很快收到訂單生成的郵件。接下來(lái)就是等待,三天后,接到聲音不太舒服的電話(huà),說(shuō)是當(dāng)當(dāng)網(wǎng)的,我想,應(yīng)該是書(shū)到了。可憐的是,對(duì)方收錢(qián)時(shí),零錢(qián)不夠。
          —–最終是買(mǎi)到書(shū)了,快遞的小伙子找不了我的零錢(qián),我也沒(méi)要了,書(shū)的包裝不太好。
          整個(gè)過(guò)程,總體打分8.5分。總的來(lái)說(shuō),這本書(shū)的購(gòu)買(mǎi)的體驗(yàn)流暢度是很滿(mǎn)意的,沒(méi)有出現(xiàn)意外的中斷,要知道體驗(yàn)的流程能完整的走完才意味著,這個(gè)產(chǎn)品、這個(gè)服務(wù),是可用的,這是根基,其他的視覺(jué)效果和折扣等等,都是建立在他之上。而流暢度,就跟用戶(hù)在這個(gè)過(guò)程中碰到疑惑和不解的強(qiáng)烈程度是成反比的,想提高流暢度,就需要捋清楚,讓這個(gè)核心購(gòu)買(mǎi)流程以最短的時(shí)間完成,減少干擾。

          2.邊緣體驗(yàn),一樣的重要

          上面的購(gòu)書(shū)例子,有個(gè)地方很重要,那就是最后的線(xiàn)下體驗(yàn),我把他作為邊緣體驗(yàn)的一種,有別于線(xiàn)上的核心業(yè)務(wù)。
          訂單下來(lái)后,系統(tǒng)能根據(jù)我提交的送貨地址,選出最近的發(fā)貨地點(diǎn),減少物流時(shí)間,并且讓購(gòu)買(mǎi)者知道,這個(gè)點(diǎn)是好的,說(shuō)明:我一直為你著想。
          但快遞環(huán)節(jié)卻有點(diǎn)問(wèn)題,因?yàn)榇嬖谝欢ǖ牟豢煽匾蛩亍K涂爝f的人,需要經(jīng)過(guò)一定的培訓(xùn),否則,是在砸當(dāng)當(dāng)?shù)呐谱印k娫?huà)中的語(yǔ)氣讓人不舒服,書(shū)的包裝問(wèn)題也讓人不安,書(shū)角磨破了,就這兩個(gè)點(diǎn),購(gòu)買(mǎi)者就有可能把整個(gè)交易撤銷(xiāo)。
          屬于邊緣體驗(yàn)范疇的還有很多,例如:你到了友商網(wǎng)舉辦的一個(gè)論壇,門(mén)前的海報(bào)是否能夠傳遞本次論壇的信息、是否能夠?qū)⒂焉叹W(wǎng)的品牌進(jìn)行詮釋?zhuān)o你的良好感覺(jué)有多少?再例如市場(chǎng)營(yíng)銷(xiāo)人員的著裝和談吐,在用戶(hù)眼里,在一定程度上,也在間接體驗(yàn)他們的產(chǎn)品,起碼,穿著拖鞋的營(yíng)銷(xiāo),不會(huì)給人好的感覺(jué)。
          邊緣體驗(yàn),一樣重要。

          3.無(wú)形的體驗(yàn)

          無(wú)形的體驗(yàn)有兩種,一種是某用戶(hù)在使用、體驗(yàn)產(chǎn)品后得出口碑傳播給另外的用戶(hù)或者潛在用戶(hù),對(duì)于后者,他已開(kāi)始無(wú)形情感體驗(yàn);另一種是用內(nèi)而外的,是生產(chǎn)此產(chǎn)品的團(tuán)隊(duì)或者說(shuō)這個(gè)企業(yè)由內(nèi)發(fā)出的一些信息,有意的或無(wú)意的信息。
          對(duì)于第一種,有時(shí)候口碑會(huì)決定了某個(gè)用戶(hù)是否與產(chǎn)品有緣,舉個(gè)例子,小姨買(mǎi)了一個(gè)xx牌子的冰箱,用了兩個(gè)月,燈管壞了,打開(kāi)冰箱門(mén)燈不亮了,聯(lián)系維修后好景不長(zhǎng),還是壞,于是她對(duì)死黨說(shuō):以后打死也不會(huì)買(mǎi)xx牌的東西了,這個(gè)死黨有可能以后就跟這個(gè)牌子絕緣了,因?yàn)樗龑?duì)“它”的無(wú)形體驗(yàn)很不好。當(dāng)然,這個(gè)口碑產(chǎn)生的根源,就是產(chǎn)品質(zhì)量本身。
          而第二種范圍包括的就比較大了,如果是上市公司,那么你的財(cái)務(wù)狀況是否良好;組織結(jié)構(gòu)是不是頻繁大調(diào)整;員工整體對(duì)外的信息放射是否正面;網(wǎng)絡(luò)媒體,傳統(tǒng)媒體傳播的信息是否有利公司發(fā)展(不管是不是軟文),這些,都是用戶(hù)或者潛在用戶(hù)、普通人可能接觸到的一面,這也是一個(gè)無(wú)形的體驗(yàn)。

          4.引領(lǐng)用戶(hù)的“體驗(yàn)”

          在初步發(fā)展階段,無(wú)數(shù)產(chǎn)品和服務(wù)都是跟隨用戶(hù)需求,用戶(hù)需要什么,就給什么,以找準(zhǔn)需求點(diǎn)為重中之重,這個(gè)是對(duì)的,但到了產(chǎn)品成熟期,到了市場(chǎng)占有率足夠高后,需要考慮的,就是引導(dǎo)潮流,引領(lǐng)用戶(hù)朝雙贏的方向。web中的視覺(jué)概念設(shè)計(jì),汽車(chē)中的概念車(chē),走的,就是這個(gè)路線(xiàn)。

          5.核心產(chǎn)品體驗(yàn)

          這個(gè)放在最后是因?yàn)槭侨硕贾溃诵漠a(chǎn)品,必須做好可用性,通過(guò)不斷迭代,適當(dāng)做好減法,提供一個(gè)體驗(yàn)好的產(chǎn)品。具體到各個(gè)產(chǎn)品和服務(wù)各不相同,無(wú)需展開(kāi)。
          總之用戶(hù)體驗(yàn)設(shè)計(jì)并不復(fù)雜,但需要耐得住性子,需要注意觸角,因?yàn)椋瑥慕佑|這個(gè)品牌那一刻起,用戶(hù)體驗(yàn)就在進(jìn)行,是疊加還是消耗呢?就看能否盡量做到人人UE,能否將這些好的idea引導(dǎo)、聚合。

          posted @ 2010-03-23 13:32 Angle Wang 閱讀(204) | 評(píng)論 (0)編輯 收藏

          css sprite學(xué)習(xí)(轉(zhuǎn))

          一,關(guān)于CSS Sprite
          CSS Sprites是一種網(wǎng)頁(yè)圖片應(yīng)用處理方式。它允許你將一個(gè)頁(yè)面涉及到的所有零星圖片都包含到一張大圖中去,這樣一來(lái),當(dāng)訪問(wèn)該頁(yè)面時(shí),載入的圖片就不會(huì)像以前那樣一幅一幅地慢慢顯示出來(lái)了。對(duì)于當(dāng)前網(wǎng)絡(luò)流行的速度而言,不高于200KB的單張圖片的所需載入時(shí)間基本是差不多的,所以無(wú)需 顧忌這個(gè)問(wèn)題。
          按照yahoo的rules for high performance web sites的原則,應(yīng)當(dāng)較少Client與Server端間 的HTTP Request次數(shù)。通過(guò)CSS Sprites方法將多張圖片組裝成單獨(dú)的一張圖片,可以有效減少HTTP請(qǐng)求 的次數(shù)。
          當(dāng)整幅圖片載入完成后,你就可以使用CSS方法通過(guò)設(shè)置背景位置的方式完成所需圖片的準(zhǔn)確調(diào)用。

          加速的關(guān)鍵,不是降低重量,而是減少個(gè)數(shù)。傳統(tǒng)切圖講究精細(xì),圖片規(guī)格越小越好,重量越小越好,其實(shí)規(guī)格大小無(wú)所謂,計(jì)算機(jī)統(tǒng)一都按byte計(jì)算。客戶(hù)端每顯示一張圖片都會(huì)向服務(wù)器發(fā)送請(qǐng)求,所以,圖片越多請(qǐng)求次數(shù)越多,造成延遲的可能性也就越大。

          二,CSS Sprite的使用

          有幾篇關(guān)于CSS Sprites的文章,基本上把其原理和機(jī)制說(shuō)明得很清楚。

          What Are CSS Sprites?

          How to create CSS sprites

          Creating Rollover Effects with CSS Sprites

          Building a Dynamic Banner with CSS Sprites

          High Performance Web Sites中關(guān)于CSS Sprites的內(nèi)容3.2. CSS Sprites

          三,CSS Sprite的例子

          [原文:http://blog.rexsong.com/?p=746#comments]

          1. 圖片限制(Image Slicing)

          典型如文本編輯器,小圖標(biāo)特別多,打開(kāi)時(shí)一張張跑出來(lái),給用戶(hù)的感覺(jué)很不好。如果能用一張圖解決,則不會(huì)有這個(gè)問(wèn)題,比如百度空間、163博客、Gmail都是這么做的。

          Image Slicing’s Kiss of Death
          http://www.alistapart.com/articles/sprites

          2. 單圖轉(zhuǎn)滾(Single-image Rollovers)

          觸發(fā)切換圖片的需求,傳統(tǒng)方案得重新請(qǐng)求新圖片,因?yàn)榫W(wǎng)絡(luò)問(wèn)題經(jīng)常造成停留或等待。如果能把多種狀態(tài)合并成一張圖,就能完美解決,然后再使用背景圖技術(shù)模擬動(dòng)態(tài)效果。

          ColorScheme Ratings
          http://demo.rexsong.com/200608/colorscheme_ratings/

          3. 延長(zhǎng)背景(Extend Background Image)

          如果圖片的某邊可以背景平鋪無(wú)限延長(zhǎng),則不需要每個(gè)角、每條邊單獨(dú)搞出來(lái),圖片能少一個(gè)就少一個(gè)。其實(shí),這個(gè)理論還可以擴(kuò)展到四角容器里,好處是能大大簡(jiǎn)化HTML Structure。

          Extend Background Image
          http://demo.rexsong.com/200705/extend_background_image/

          綜合案例

          Google Korea(1和2技巧)
          http://demo.rexsong.com/200705/google_korea/

          CSS Menus(2和3技巧)
          http://demo.rexsong.com/200705/css_background_menus/

          四,CSS Sprites的問(wèn)題

          由于IE6存在的background的flicker問(wèn)題IE6/Win, background image on <a>, cache=‘check every visit’: flicker!,有人針對(duì)此問(wèn)題提出了解決方案Fast Rollovers Without Preload

          關(guān)于IE6的flicker問(wèn)題,fivesevensix.com上有一篇很不錯(cuò)的研究文章Minimize Flickering CSS Background Images in IE6

          另外:brunildo.orgCSS tests and experiments是關(guān)于css各種功能不錯(cuò)的參考手冊(cè)和測(cè)試工具。

          五,相關(guān)資源

          What Are CSS Sprites?

          http://www.peachpit.com/articles/printerfriendly.aspx?p=447210&rl=1

          CSS Sprites: Image Slicing’s Kiss of Death

          http://www.alistapart.com/articles/sprites/

          CSS Sprites Generator

          http://www.csssprites.com/

          http://spritegen.website-performance.org/

          Fast Rollovers Without Preload

          http://wellstyled.com/css-nopreload-rollovers.html

          JavaScript Sprite Animation Using jQuery

          http://www.sitepoint.com/blogs/2007/07/20/javascript-sprite-animation-using-jquery/

          http://www.sitepoint.com/blogs/2007/07/05/css-using-percentages-in-background-image/

          How to create CSS sprites

          http://fatagnus.com/how-to-create-css-sprites/

          Creating Rollover Effects with CSS Sprites

          http://www.devarticles.com/c/a/Web-Style-Sheets/Creating-Rollover-Effects-with-CSS-Sprites/

          Building a Dynamic Banner with CSS Sprites

          http://www.devarticles.com/c/a/Web-Style-Sheets/Building-a-Dynamic-Banner-with-CSS-Sprites/

          CSS Sprites and IE/Win Flicker Issue

          http://www.brajeshwar.com/2006/css-sprites-and-iewin-flicker-issue/

          css用法測(cè)試工具:CSS tests and experiments

          http://www.brunildo.org/test/index.html

          posted @ 2010-03-23 13:24 Angle Wang 閱讀(631) | 評(píng)論 (0)編輯 收藏

          js點(diǎn)擊切換圖片

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
           <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
           <title></title>
           <script type="text/javascript" language="javascript" >
           <!--
            window.onload=function(){
           document.getElementById("box").style.backgroundImage="url(1.jpg)";
           var box=document.getElementById("box");
           box.onclick=function(){
           //alert(box.style.backgroundImage);
           //alert(typeof(box.style.backgroundImage));
           if(box.style.backgroundImage.indexOf("1.jpg")!=-1)
           {box.style.backgroundImage="url(2.jpg)";}else {box.style.backgroundImage="url(1.jpg)"}
           }
            }
           -->
           </script>
           <style type="text/css">
           <!--
           #box{width:800px;height:600px;}
           -->
           </style>
          </head
          &lt;body>
          <div id="box">
          &nbsp;
          </div>
          </body>
          </html>

          posted @ 2010-03-22 11:06 Angle Wang 閱讀(6463) | 評(píng)論 (1)編輯 收藏

          css布局:側(cè)邊固定長(zhǎng)度,內(nèi)容自動(dòng)適應(yīng)

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
           <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
           <title></title>
           <style type="text/css">
           <!--
           #wrap{background:#000;}
           #content{margin-left:250px;height:1000px;background:#963;}
           #sideber{width:240px;float:left;height:1000px;background:#369;}
           -->
           </style>
          </head>
          <body>
          <div id="wrap">
          <div id="sideber">&nbsp;</div> <!--要讓浮動(dòng)元素放前面-->
          <div id="content">&nbsp;</div>
          </div>
          </body>
          </html>

          posted @ 2010-03-22 10:44 Angle Wang 閱讀(489) | 評(píng)論 (0)編輯 收藏

          IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一覽表

          不同的瀏覽器對(duì)CSS的解釋都有一點(diǎn)出入,特別是padding, line-height這些要細(xì)微控制的地方,下面的hack基本可以解決這個(gè)問(wèn)題:
          • 在屬性前加下劃線(xiàn)(_),那么此屬性只會(huì)被IE6解釋
          • 在屬性前加星號(hào)(*),此屬性只會(huì)被IE7解釋
          • 在屬性值后面加"\9",表示此屬性只會(huì)被IE8解釋
          詳細(xì)出處參考:http://www.jb51.net/css/24946.html

          各瀏覽器CSS hack兼容表:
           

          整體測(cè)試代碼示例:

          復(fù)制代碼代碼如下:
          .test{
          color:#000000;
          color:#0000FF\0;
          [color:#00FF00;
          *color:#FFFF00;
          _color:#FF0000;
          }


          復(fù)制代碼代碼如下:
          #menu { line-height: 23px; }/* firefox 瀏覽器實(shí)行這句定義 */
          #menu { line-height: 26px\9; }/*ie6,ie7,ie8 這句定義主要尖對(duì)IE8來(lái)hack*/
          #menu { *line-height: 23px; }/*ie6,ie7 這句定義主要尖對(duì)IE7來(lái)hack*/
          #menu { _line-height: 23px; }/*ie6 瀏覽器優(yōu)先實(shí)行這句定義*/
          或者寫(xiě)成一句,注意順序
          #menu { line-height:23px; line-height: 26px\9; *line-height: 23px; _line-height:23px; }
          或者
          * html #menu { line-height: 23px; } /* IE6 瀏覽器實(shí)行這句定義 */
          *+html #menu { line-height: 23px; }/* IE7 瀏覽器實(shí)行這句定義*/

          其他說(shuō)明:
          1、如果你的頁(yè)面對(duì)IE7兼容沒(méi)有問(wèn)題,又不想大量修改現(xiàn)有代碼,同時(shí)又能在IE8中正常使用,微軟聲稱(chēng),開(kāi)發(fā)商僅需要在目前兼容IE7的網(wǎng)站上添加一行代碼即可解決問(wèn)題,此代碼如下:
          <meta http-equiv="x-ua-compatible" content="ie=7" />
          2、body:nth-of-type(1) 如果這樣寫(xiě),表示全局查找body,將會(huì)對(duì)應(yīng)第一個(gè)<body>。
          3、還有其他寫(xiě)法,比如:
          *html #test{}或者 *+html #test{}
          4、*+html 對(duì)IE7的hack 必須保證HTML頂部有如下聲明:
          http://www.w3.org/TR/html4/loose.dtd
          5、順序:Firefox、IE8、IE7、IE6依次排列。
          小知識(shí):什么是CSS hack?
            由于不同的瀏覽器,比如IE6、IE7、IE8、Firefox等,對(duì)CSS的解析認(rèn)識(shí)不一樣,因此會(huì)導(dǎo)致生成的頁(yè)面效果不一樣,得不到我們所需要的頁(yè)面效果。
            這個(gè)時(shí)候我們就需要針對(duì)不同的瀏覽器去寫(xiě)不同的CSS,讓它能夠同時(shí)兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁(yè)面效果。
            這個(gè)針對(duì)不同的瀏覽器寫(xiě)不同的CSS code的過(guò)程,就叫CSS hack,也叫寫(xiě)CSS hack。
          下面是補(bǔ)充:

          復(fù)制代碼代碼如下:
          selector{
          property:value; /* 所有瀏覽器 */
          property:value\9; /* 所有IE瀏覽器 */
          +property:value; /* IE7 */
          _property:value; /* IE6 */
          }


          詳細(xì)出處參考:http://www.jb51.net/css/24946.html

          posted @ 2010-03-16 11:28 Angle Wang 閱讀(1156) | 評(píng)論 (0)編輯 收藏

          CSS3的border-radius(圓角)

          border-radius(圓角)的幾點(diǎn)說(shuō)明.

           

          border-radius(圓角)的幾點(diǎn)說(shuō)明:

          border-radius:長(zhǎng)度
          Firefox支持border-radius(圓角):-moz-border-radius:2px;
          webkit內(nèi)核的Safari和Chrome支持border-radius(圓角):-webkit-border-radius:2px;
          Opera支持border-radius(圓角):border-radius:2px;
          IE不支持border-radius(圓角)

          我們還可以隨意指定圓角的位置,左上、左下、右上、右下四個(gè)方向。在firefox、webkit內(nèi)核的Safari和Chrome和opera(css3)、中的具體書(shū)寫(xiě)格式如下:

          -moz-border-radius-topleft / -webkit-border-top-left-radius / border-top-left-radius
          -moz-border-radius-topright / -webkit-border-top-right-radius / border-top-right-radius
          -moz-border-radius-bottomleft / -webkit-border-bottom-left-radius / border-bottom-left-radius
          -moz-border-radius-bottomright / -webkit-border-bottom-right-radius /border-bottom-right-radius

          border-radius(圓角)還有其他一些用法,F(xiàn)irefox、webkit內(nèi)核的Safari和Chrome和opera(css3)其他寫(xiě)法有些略微的差異,具體可以查看以下網(wǎng)址:https://developer.mozilla.org/en/CSS:-moz-border-radius
          http://www.the-art-of-web.com/css/border-radius/
          http://dancewithnet.com/2008/12/27/border-radius-and-rounded-corner/

          eg:/* content */
          .blockcommon{
           margin-left: 10px;
           margin-right: 10px;
           -moz-border-radius: 3px;
           -khtml-border-radius: 3px;
           -webkit-border-radius: 3px;
           border-radius: 3px;
           background: #fff;
           border: 1px solid #eed8c6;
          }

          posted @ 2010-03-12 16:16 Angle Wang 閱讀(296) | 評(píng)論 (0)編輯 收藏

          css下margin、padding、border、background和font縮寫(xiě)示例

          CSS代碼簡(jiǎn)化在工作中是非常有益的,也是必要的。在編寫(xiě)CSS代碼時(shí),經(jīng)常會(huì)出現(xiàn)冗余的代碼,為了提高代碼的質(zhì)量及文件壓縮到最小,使代碼具有可讀性,不得不把CSS代碼簡(jiǎn)化。
          margin
            margin-top:1px;
            margin-right:1px;
             margin-bottom:1px;
            margin-left:1px;
            代碼簡(jiǎn)化為:margin:1px
            margin-top:1px;
            margin-right:2px;
            margin-bottom:1px;
            margin-left:2px;
            代碼簡(jiǎn)化為:margin:1px 2px
            margin-top:1px;
            margin-right:2px;
            margin-bottom:3px;
            margin-left:2px;
            代碼簡(jiǎn)化為:margin:1px 2px 3px
            margin-top:1px;
             margin-right:2px;
            margin-bottom:3px;
            margin-left:4px;
            代碼簡(jiǎn)化為:margin:1px 2px 3px 4px
            注意:當(dāng)屬性值是0的時(shí)候單位可以不寫(xiě)如:0px 直接就寫(xiě)成0
          padding
            padding的書(shū)寫(xiě)方法和margin相類(lèi)似
            padding-top:1px;
             padding-right:1px;
            padding-bottom:1px;
            padding-left:1px;
            代碼簡(jiǎn)化為:padding:1px
            padding-top:1px;
            padding-right:2px;
            padding-bottom:1px;
            padding-left:2px;
            代碼簡(jiǎn)化為:padding:1px 2px
            padding-top:1px;
            padding-right:2px;
             padding-bottom:3px;
            padding-left:2px;
            代碼簡(jiǎn)化為:padding:1px 2px 3px
            padding-top:1px;
            padding-right:2px;
             padding-bottom:3px;
            padding-left:4px;
            代碼簡(jiǎn)化為:padding:1px 2px 3px 4px
          border
            border-width:1px;
             border-style:solid;
            border-color:#000000;
            代碼簡(jiǎn)化為:border:1px solid #000
          background
            background-color:#CCFFFF;
             background-image:url(圖片路徑);
            background-repeat:repeat-x;
             background-position:5px 4px;
            代碼簡(jiǎn)化為:background:#CFF url(圖片路徑) repeat-x 5px 4px
          font
            font-size:26px;
             font-weight:bold;
            font-family: “宋體”;
            代碼簡(jiǎn)化為:font:26px bold “宋體”
          color屬性值
            color:#000000;
            color:#ff0000;
            代碼簡(jiǎn)化為:color:#000, color:#f00

          posted @ 2010-03-12 14:17 Angle Wang 閱讀(245) | 評(píng)論 (0)編輯 收藏

          淺淡!important對(duì)CSS的重要性(轉(zhuǎn))

          CSS中的!important是一個(gè)非常重要的屬性,有時(shí)候發(fā)揮著非常大的作用,52CSS.com這方面的知識(shí)并不是非常多,我們看下面的文章,對(duì)它作比較感觀的了解。
            前幾天寫(xiě)一些CSS代碼的時(shí)候又難為我了,因?yàn)槟莻€(gè)該死的IE6對(duì)CSS的支持是如此的差勁,以前我還沒(méi)注意過(guò),因?yàn)樽龅臇|西基本都是基于IE的,可是我這次為博客寫(xiě)的CSS要支持不止IE一個(gè)瀏覽器,可恨的是我裝的Windows 7,這里面自帶的是IE8瀏覽器,我自認(rèn)為已經(jīng)沒(méi)有問(wèn)題了,可是打開(kāi)IE6,仍然出現(xiàn)錯(cuò)位,于是我決定看看IE6到底是什么情況。
            我把所有的CSS塊兒全部使用邊框包起來(lái),結(jié)果看到在IE中兩個(gè)div之間的距離明顯要寬于其他瀏覽器,比如你寫(xiě)一個(gè)div的margin屬性為20px,那么在IE中就好像是40px一樣,這也就是為什么本來(lái)精度計(jì)算的剛剛好,在IE下卻偏偏錯(cuò)位的原因。
            后來(lái)我看到了!important這個(gè)屬性,這個(gè)屬性其實(shí)也是css規(guī)范中的,結(jié)果IE6愣是不支持,也正因?yàn)樗恢С郑抛尯芏嗟腃SSer們找到了解決的方法。一般來(lái)講,在css中,如果在同一個(gè)css塊中寫(xiě)下兩個(gè)同樣的屬性,那么其實(shí)是按照最下面的來(lái)執(zhí)行的,比如說(shuō):

           Example Source Code [www.52css.com]
          .home{
              margin-left:20px;
              margin-left:40px;
          }

            那么在執(zhí)行的時(shí)候其實(shí)是按照40px來(lái)執(zhí)行的,!important的出現(xiàn)就是為了讓用戶(hù)自己設(shè)置被執(zhí)行語(yǔ)句的優(yōu)先級(jí)。如果把上面的語(yǔ)句改為:

           Example Source Code [www.52css.com]
          .home{
              margin-left:20px!important;
              margin-left:40px;
          }

            那么在火狐、google瀏覽器以及IE7以上版本下將會(huì)按照20px來(lái)執(zhí)行,而在IE6下卻仍然按照40px來(lái)執(zhí)行,因?yàn)镮E6并不支持!important規(guī)范,我們就可以按照這個(gè)規(guī)則來(lái)滿(mǎn)足IE6的設(shè)計(jì)需要,什么時(shí)候發(fā)現(xiàn)IE6和其他瀏覽器顯示效果不同,那么就設(shè)置兩個(gè),在上面的一個(gè)加入!important標(biāo)記,而下面的一句則不需要添加,這樣IE6就按照下面的來(lái)執(zhí)行了。資深的CSSer說(shuō):如今的CSS處處!important。這可都是天殺的IE6惹的禍,大家說(shuō)IE6就是一坨代謝產(chǎn)物一點(diǎn)也不為過(guò)。
            

          posted @ 2010-03-11 15:14 Angle Wang 閱讀(221) | 評(píng)論 (0)編輯 收藏

          學(xué)習(xí)中的點(diǎn)滴

          記錄學(xué)習(xí),工作中遇到的點(diǎn)點(diǎn)滴滴的問(wèn)題。
          1、需要把 background-attachment 屬性設(shè)置為 "fixed",才能保證該屬性在 Firefox 和 Opera 中正常工作。
          例子:

          <html>
            <head>
            <style type="text/css">
             body
             {
               background-image:url('eg_bg_03.gif');
               background-repeat:no-repeat;
               background-position:center;
               background-attachment:fixed;
             }
            </style>
            </head>
            <body>

            </body>
          </html>

          2、

          clear:both

           CSS中 clear:both;可以終結(jié)在出現(xiàn)他之前的浮動(dòng)
            

          語(yǔ)法: clear : none | left |right | both


          參數(shù):

          none : 允許兩邊都可以有浮動(dòng)對(duì)象

          both : 不允許有浮動(dòng)對(duì)象

          left : 不允許左邊有浮動(dòng)對(duì)象

          right : 不允許右邊有浮動(dòng)對(duì)象


          說(shuō)明: 該屬性的值指出了不允許有浮動(dòng)對(duì)象的邊。請(qǐng)參閱float屬性。 對(duì)應(yīng)的腳本特性為clear


          示例:

          div { clear : left }

          img { float: right }

          <div style="clear:both;"></div>

          主要是用在div套div的結(jié)構(gòu)中。如果內(nèi)div是浮動(dòng)的,一般都需要clear浮動(dòng),不然的話(huà)內(nèi)div會(huì)超出外div的框架

          所用什么時(shí)候用clear:both;就很重要,一般我們?cè)谛枰宄?dòng)的時(shí)候用到clear:both;不要輕意用到clear:both;因?yàn)樗灿懈辈?

          我們寫(xiě)一個(gè)clear:both;的例子:

          <div style="float:left;width:100px;"> clear:both第1行第1列,</div>
          <div style="float:left;width:700px;"> clear:both第1行第2列,</div>
          <div style="clear:both;"> clear:both第2行。</div>


          <div style="float:left;width:100px;"> 第1列,</div>
          <div style="float:left;width:700px;"> 第2列,</div>
          <div>第三列</div>
          ------------------------------------------------------------------------------------------------
          <div style="float:left;width:100px;"> 第1列,</div>
          <div style="float:left;width:700px;"> 第2列,</div>
          <div style="clear:both;"></div>
          <div>第三列</div>


          3css疑難問(wèn)題收集
          表格與內(nèi)聯(lián)對(duì)象不換行:
          table{
          width:30em; 
          table-layout:fixed;/* 只有定義了表格的布局算法為fixed,下面td的定義才能起作用。 */ 
          td{ 
          width:100%; 
          word-break:keep-all;/* 不換行 */ 
          white-space:nowrap;/* 不換行 */ 
          overflow:hidden;/* 內(nèi)容超出寬度時(shí)隱藏超出部分的內(nèi)容 */ 
          text-overflow:ellipsis;/* 當(dāng)對(duì)象內(nèi)文本溢出時(shí)顯示省略標(biāo)記(...) ;需與overflow:hidden;一起使用。*/ 

          .text-overflow { 
          display:block;/*內(nèi)聯(lián)對(duì)象需加*/ 
          width:31em; 
          word-break:keep-all;/* 不換行 */ 
          white-space:nowrap;/* 不換行 */ 
          overflow:hidden;/* 內(nèi)容超出寬度時(shí)隱藏超出部分的內(nèi)容 */ 
          text-overflow:ellipsis;/* 當(dāng)對(duì)象內(nèi)文本溢出時(shí)顯示省略標(biāo)記(...) ;需與overflow:hidden;一起使用。*/ 
          }

          posted @ 2010-03-11 10:46 Angle Wang 閱讀(254) | 評(píng)論 (0)編輯 收藏

          隨機(jī)顯示圖片的JS代碼

          關(guān)于隨機(jī)顯示圖片的代碼很多,但有的只能在IE下才有效果,如果換在Firefox或其他瀏覽器下就會(huì)失去效果,能做到兩全的JS真的很少,今天給大家介紹一個(gè)很簡(jiǎn)單的JS隨機(jī)顯示圖片的代碼。
          以下是代碼:

          // JavaScript Document
          var m=10; //隨機(jī)顯示圖片的總數(shù)量
          var n=Math.floor(Math.random()*m+1)
          document.write ("<img src='/banner/banner_"+n+".gif' border=0 galleryimg=no>");
          //

            上面代碼的意思是圖片保存在/banner/文件夾下,根據(jù)設(shè)置的圖片總數(shù)量,分別放入10張從banner_01.gif到banner_10.gif的圖片,在執(zhí)行這個(gè)JS時(shí),它會(huì)隨機(jī)顯示從banner_01.gif到banner_10.gif的圖片。
            保存這個(gè)JS為banner.js。

          在網(wǎng)頁(yè)相應(yīng)的地方寫(xiě)入調(diào)用代碼

          以下是代碼:

          <script language="JavaScript" src="/Js/banner.js"></script>//-->

          //調(diào)用

          這段代碼可以在IE和Firefox下有效顯示。


          簡(jiǎn)單的JavaScript隨機(jī)顯示圖片廣告的效果
          兼容性:IE6+ FireFox2+ Opera9+

          <script>
          /******************************************************
          * 簡(jiǎn)單的JavaScript隨機(jī)顯示圖片廣告的效果  Share JavaScript (http://www.ShareJS.com)
          * 使用此腳本程序,請(qǐng)保留此聲明
          * 獲取此腳本以及更多的JavaScript程序,請(qǐng)?jiān)L問(wèn) http://www.ShareJS.com
          ******************************************************/

          var str=new Array("http://www.sharejs.com/code/image/img/1.jpg","http://www.sharejs.com/code/image/img/2.jpg","http://www.sharejs.com/code/image/img/3.jpg");
          var a;
          a=str[parseInt(Math.random()*(str.length))];
          document.write("<img src="+a+">");
          </script>


          posted @ 2010-03-04 09:47 Angle Wang 閱讀(3558) | 評(píng)論 (0)編輯 收藏

          相鄰選擇器

          這個(gè)選擇器的正式名稱(chēng)(根據(jù)W3C)是臨近同屬組合器。我覺(jué)得這個(gè)名稱(chēng)既長(zhǎng)又復(fù)雜,因此把它簡(jiǎn)稱(chēng)為相鄰選擇器。雖說(shuō)是"相鄰",但相鄰選擇器選取的卻是一個(gè)元素的下一個(gè)元素。基于圖3-14中的標(biāo)記,圖3-24中的標(biāo)記示范了相鄰選擇器的形式。

          注意:

          IE 6本身并不支持相鄰選擇器;請(qǐng)查閱本書(shū)的網(wǎng)址www.wrox.com/go/beginning_css2e以獲取兼容性方面的幫助。

           
          圖  3-24

          在圖3-24中,可以看到加號(hào)被用來(lái)表示兩個(gè)元素之間的相鄰關(guān)系。你在這點(diǎn)上也許會(huì)有疑問(wèn):這么做看起來(lái)很舒服,但實(shí)際用途是什么?難道不能單獨(dú)引用div#body來(lái)達(dá)到同樣的效果嗎?為什么需要一個(gè)相鄰選擇器?很高興你這樣問(wèn)。在特定的情況下這個(gè)選擇器會(huì)發(fā)揮作用,比如當(dāng)幾份HTML文檔引用同一份樣式表時(shí)。在一部分文檔中,帶有id名稱(chēng)heading的<div>元素和帶有id名稱(chēng)body的<div>元素是相鄰的,即它們?cè)谠次募邢嗬^出現(xiàn)。在其他文檔中這兩個(gè)元素或許不是相鄰的。如果你對(duì)這兩種理論上不同的文檔有不同的模板需求的話(huà),自然會(huì)想通過(guò)某種方法來(lái)引用那些相鄰的元素,這就是相鄰選擇器實(shí)際應(yīng)用的一個(gè)例子。正如我在上一節(jié)"直接子選擇器"中提到的那樣,有時(shí)你不想創(chuàng)建新的id和類(lèi)名。在某些情況下,當(dāng)你使用相鄰選擇器時(shí),能夠避免創(chuàng)建新的類(lèi)和id名稱(chēng)。

          在接下來(lái)的概念驗(yàn)證型例子中,你將親自試驗(yàn)相鄰選擇器。

          試一試 相鄰選擇器

          例3-5  按以下步驟,了解相鄰選擇器是如何工作的。

          1. 在文本編輯器中輸入以下標(biāo)記:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
          " <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
          <head>
          <title>Next Sibling Selectors</title>
          <link rel='stylesheet' type='text/css' href='Example_3-5.css' />
          </head>
          <body>
          <h1>Next Sibling Selectors</h1>
          <p>
          The next sibling selector (or adjacent sibling combinator as
          it's officially called) allows you to select an element based on
          its sibling. This paragraph has a lightyellow background and
          darkkhaki text.
          </p>
          <p>
          This paragraph has a yellowgreen background and green text.
          </p>
          <p>
          This paragraph has no colored background, border, or text.
          </p>
          </body>
          </html>

          2. 保存上述標(biāo)記為Example_3-5.html。

          3. 在文本編輯器中輸入以下CSS:

          body {
          font: 12px sans-serif;
          }
          p {
          padding: 5px;
          }
          h1 + p {
          background: lightyellow;
          color: darkkhaki;
          border: 1px solid darkkhaki;
          }
          h1 + p + p {
          background: yellowgreen;
          color: green;
          border: 1px solid green;
          }
          4.保存樣式表為Example_3-5.css。將它在支持相鄰選擇器的瀏覽器中載入,你將看到如圖3-25所示的結(jié)果。
           
          (點(diǎn)擊查看大圖)圖  3-25

          工作原理

          相鄰選擇器基于相鄰關(guān)系應(yīng)用樣式。下面是對(duì)Example_3-5.css中有關(guān)樣式的分析。

          Example_3-5.css中的第一個(gè)樣式應(yīng)用于Example_3-5.html的第一段。h1 + p表示如果<p>元素是直接跟在<h1>元素后的元素,則應(yīng)用本規(guī)則中的聲明。

          h1 + p {
          background: lightyellow;
          color: darkkhaki;
          border: 1px solid darkkhaki;
          }

          只有當(dāng)<p>元素是直接與<h1>元素相鄰的元素時(shí),這條規(guī)則才起作用。

          第二條規(guī)則里使用了一個(gè)更為復(fù)雜的相鄰選擇器。它表示如果一個(gè)<p>元素直接相鄰于另一個(gè)<p>元素,并且后者也直接相鄰于一個(gè)<h1>元素時(shí),應(yīng)用本規(guī)則中的聲明。

          h1 + p + p {
          background: yellowgreen;
          color: green;
          border: 1px solid green;
          }

          就像直接子選擇器可以基于父子關(guān)系應(yīng)用樣式一樣,相鄰選擇器可以基于相鄰關(guān)系應(yīng)用樣式。

          在很多時(shí)候,如果能基于元素的屬性或?qū)傩灾祽?yīng)用樣式會(huì)很有用。

          posted @ 2010-02-26 13:10 Angle Wang 閱讀(314) | 評(píng)論 (0)編輯 收藏

          li和ul標(biāo)簽用法舉例

          LI代碼的格式化:
          A).運(yùn)用CSS格式化列表符: ul li{
          list-style-type:none;
          }
          B).如果你想將列表符換成圖像,則: ul li{
          list-style-type:none;
          list-style-image: url(/blog/images/icon.gif);
          }
          C).為了左對(duì)齊,可以用如下代碼: ul{
          list-style-type:none;
          margin:0px;
          }
          D).如果想給列表加背景色,可以用如下代碼: ul{
          list-style-type: none;
          margin:0px;
          }
          ul li{
          background:#CCC;
          }
          E).如果想給列表加MOUSEOVER背景變色效果,可以用如下代碼: ul{ list-style-type: none; margin:0px; }
          ul li a{ display:block; width: 100%; background:#ccc; }
          ul li a:hover{ background:#999; }說(shuō)明:display:block;這一行必須要加的,這樣才能塊狀顯示!

          F).LI中的元素水平排列,關(guān)鍵FLOAT:LEFT: ul{
          list-style-type:none;
          width:100%;
          }
          ul li{
          width:80px;
          float:left;
          }
          <ul><li>的區(qū)別
          <LI> 的參數(shù)設(shè)定(常用):
          例如: <li type="square" value="4">

          type="square"
          只適用于非順序清單,設(shè)定符號(hào)款式,其值有三種,如下,內(nèi)定為 type="disc":
          符號(hào) 是當(dāng) type="disc" 時(shí)的列項(xiàng)符號(hào)。
          符號(hào) if" width=10 height=10 border=0> 是當(dāng) type="circle" 時(shí)的列項(xiàng)符號(hào)。
          符號(hào) 是當(dāng) type="square" 時(shí)的列項(xiàng)符號(hào)。
          value="4"
          只適用于順序清單,設(shè)定該一項(xiàng)的數(shù)目,其後各項(xiàng)將以此作為起始數(shù)目而遞增,但前面各項(xiàng)則不受影響,其值只能是 1,2,3.. 等整數(shù),沒(méi)有內(nèi)定值。
          <UL>稱(chēng)為無(wú)序清單標(biāo)記。
          所謂無(wú)序清單就是在每一項(xiàng)前面加上 、、等符號(hào),故又稱(chēng)符號(hào)清單。
          <UL> 的參數(shù)設(shè)定(常用):
          例如: <UL type="square">

          type="square"
          設(shè)定符號(hào)款式,其值有三種,如下,內(nèi)定為 type="disc":
          符號(hào) 是當(dāng) type="disc" 時(shí)的列項(xiàng)符號(hào)。
          符號(hào) 是當(dāng) type="circle" 時(shí)的列項(xiàng)符號(hào)。
          符號(hào) 是當(dāng) type="square" 時(shí)的列項(xiàng)符號(hào)。

          <ul>是項(xiàng)目列表,<li>是列表項(xiàng),項(xiàng)目列表就是用符號(hào)來(lái)列的,所以你列出來(lái)默認(rèn)的就是黑點(diǎn)啦,還有一個(gè)是<ol>這個(gè)是編號(hào)列表,用數(shù)字來(lái)列的,也是用<li>做列表項(xiàng)
          <li>是 list item 即列表項(xiàng),但列表有很兩種,所以外面得有 <ul> 或者 <ol> 用來(lái)區(qū)別無(wú)序列表(小點(diǎn)點(diǎn))和有序列表(1,2,3...)。

          posted @ 2010-02-25 11:14 Angle Wang 閱讀(393) | 評(píng)論 (0)編輯 收藏

          CSS實(shí)現(xiàn)隔行換色2種方法

          網(wǎng)頁(yè)設(shè)計(jì)制作,CSS實(shí)現(xiàn)隔行換色的2種方法:

          第1種方法:
          <style type="text/css">
          UL.myul1 LI{background-color: expression(this.sourceIndex%2==0?'#9FB7F6':'#B6C8F8');
          }
          </style>
          <ul class="myul1">
          <li id="li1">111</li>
          <li id="li2">222</li>
          <li id="li2">333</li>
          <li id="li2">444</li>
          <li id="li2">555</li>
          <li id="li2">666</li>
          </ul>


          第2種方法:

          <style type="text/css">
          <!--
          .li01 { background:#FFF; }
          .li02 { background:#000; }
          li a{width:100%;display:block;}
          li a:hover{background:red;}
          -->
          </style>

          <div id="list01"><ul>
          <li class="title"><a href="#">title</a></li>
          <li><a href="#">111</a></li>
          <li><a href="#">222</a></li>
          <li><a href="#">333</a></li>
          <li><a href="#">444</a></li>
          <li><a href="#">555</a></li>
          <li><a href="#">666</a></li>
          </ul></div>

          <script Language="Javascript1.2">

          objName=document.getElementById("list01").getElementsByTagName("li")

          for (i=0;i<objName.length;i++) {
          (i%2==0)?(objName(i).className = "li01"):(objName(i).className = "li02");
          }
          </script> 

          posted @ 2010-02-25 10:35 Angle Wang 閱讀(244) | 評(píng)論 (0)編輯 收藏

          DIV CSS網(wǎng)頁(yè)布局:三行三列自適應(yīng)高度的DIV布局

          通常在DIV布局中,自適應(yīng)高度一直是比較頭疼的問(wèn)題,一般大都采用背景圖、外套DIV、右欄覆蓋左欄來(lái)解決。現(xiàn)在加了腳本后,簡(jiǎn)單多了,假如有三個(gè)水平并列的DIV,fbox、mbox、sbox,只要在標(biāo)簽中寫(xiě)入:onload="P7_equalCols('fbox','mbox','sbox')",測(cè)試條件:ie5.x、ie6.0、FF1.03、NS7.2、opera8.01   
          JS代碼:版權(quán)歸原作者,僅供學(xué)習(xí)研究.
           Example Source Codeom]
          /*  
          ------------------------------------------------ 
          PVII Equal CSS Columns scripts 
          Copyright (c) 2005 Project Seven Development 
          www.projectseven.com 
          Version: 1.5.0 
          ------------------------------------------------ 
          */ 
          function P7_colH(){ //v1.5 by PVII-www.projectseven.com 
          var i,oh,hh,h=0,dA=document.p7eqc,an=document.p7eqa;if(dA&&dA.length){ 
          for(i=0;i oh=dA[i].offsetHeight;h=(oh>h)?oh:h;}for(i=0;i dA[i].style.height=h+'px';}else{P7_eqA(dA[i].id,dA[i].offsetHeight,h);}}if(an){ 
          for(i=0;ih){ 
          dA[i].style.height=(h-(hh-h))+'px';}}}else{document.p7eqa=1;} 
          document.p7eqth=document.body.offsetHeight; 
          document.p7eqtw=document.body.offsetWidth;} 

          function P7_eqT(){ //v1.5 by PVII-www.projectseven.com 
          if(document.p7eqth!=document.body.offsetHeight||document.p7eqtw! =document.body.offsetWidth){ 
          P7_colH();} 

          function P7_equalCols(){ //v1.5 by PVII-www.projectseven.com 
          if(document.getElementById){document.p7eqc=new Array;for(i=0;i document.p7eqc[i]=document.getElementById(arguments[i]);} setInterval("P7_eqT()",10);} 

          function P7_eqA(el,h,ht){ //v1.5 by PVII-www.projectseven.com 
          var sp=10,inc=10,nh=h,g=document.getElementById(el),oh=g.offsetHeight,ch=parseInt(g.style.height) ; 
          ch=(ch)?ch:h;var ad=oh-ch,adT=ht-ad;nh+=inc;nh=(nh>adT)?adT:nh;g.style.height=nh+'px'; 
          oh=g.offsetHeight;if(oh>ht){nh=(ht-(oh-ht));g.style.height=nh+'px';} 
          if(nh

          posted @ 2010-02-25 10:08 Angle Wang 閱讀(536) | 評(píng)論 (0)編輯 收藏

          DIV CSS網(wǎng)頁(yè)布局常用的方法與技巧

          CSS布局常用的方法
          float:none|left|right 
          取值:
          none: 默認(rèn)值。對(duì)象不飄浮
          left: 文本流向?qū)ο蟮挠疫?br /> right: 文本流向?qū)ο蟮淖筮?nbsp;

          它是怎樣工作的,看個(gè)一行兩列的例子 
          xhtml代碼:

           Example Source Code
          <div id="wrap"> 
          <div id="column1">這里是第一列</div> 
          <div id="column2">這里是第二列</div> 
          <div class="clear"></div> /*這是違背web標(biāo)準(zhǔn)意圖的,只是想說(shuō)明在它下面的元素需要清除浮動(dòng)*/ 
          </div>

          CSS代碼:
           Example Source Code
          #wrap{width:100;height:auto;} 
          #column1{float:left;width:40;} 
          #column2{float:right;width:60;} 
          .clear{clear:both;}


          position:static|absolute|fixed|relative
          取值:
          static: 默認(rèn)值。無(wú)特殊定位,對(duì)象遵循HTML定位規(guī)則
          absolute: 將對(duì)象從文檔流中拖出,使用left,right,top,bottom等屬性相對(duì)于其最接近的一個(gè)最有定位設(shè)置的父對(duì)象進(jìn)行絕對(duì)定位。如果不存在這樣的父對(duì)象,則依據(jù)body對(duì)象。而其層疊通過(guò)z-index屬性定義
          fixed: 未支持。對(duì)象定位遵從絕對(duì)(absolute)方式。但是要遵守一些規(guī)范
          relative: 對(duì)象不可層疊,但將依據(jù)left,right,top,bottom等屬性在正常文檔流中偏移位置 

          它來(lái)實(shí)現(xiàn)一行兩列的例子 
          xhtml代碼:
           Example Source Code
          <div id="wrap"> 
          <div id="column1">這里是第一列</div> 
          <div id="column2">這里是第二列</div> 
          </div>

          CSS代碼:
           Example Source Code
          #wrap{position:relative;/*相對(duì)定位*/width:770px;} 
          #column1{position:absolute;top:0;left:0;width:300px;} 
          #column2{position:absolute;top:0;right:0;width:470px;} 

          他們的區(qū)別在哪?
          顯然,float是相對(duì)定位的,會(huì)隨著瀏覽器的大小和分辨率的變化而改變,而position就不行了,所以一般情況下還是float布局!


          CSS常用布局實(shí)例
          單行一列

           Example Source Code
          body{margin:0px;padding:0px;text-align:center;} 
          #content{margin-left:auto;margin-right:auto;width:400px;} 

          兩行一列 
           Example Source Code
          body{margin:0px;padding:0px;text-align:center;} 
          #content-top{margin-left:auto;margin-right:auto;width:400px;} 
          #content-end{margin-left:auto;margin-right:auto;width:400px;} 

          三行一列
           Example Source Code
          body{margin:0px;padding:0px;text-align:center;} 
          #content-top{margin-left:auto;margin-right:auto;width:400px;width:370px;} 
          #content-mid{margin-left:auto;margin-right:auto;width:400px;} 
          #content-end{margin-left:auto;margin-right:auto;width:400px;}

          單行兩列
           Example Source Code
          #bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;} 
          #bodycenter#dv1{float:left;width:280px;} 
          #bodycenter#dv2{float:right;width:420px;} 

          兩行兩列
           Example Source Code
          #header{width:700px;margin-right:auto;margin-left:auto;overflow:auto;} 
          #bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;} 
          #bodycenter#dv1{float:left;width:280px;} 
          #bodycenter#dv2{float:right;width:420px;} 

          三行兩列
           Example Source Code
          #header{width:700px;margin-right:auto;margin-left:auto;} 
          #bodycenter{width:700px;margin-right:auto;margin-left:auto;} 
          #bodycenter#dv1{float:left;width:280px;} 
          #bodycenter#dv2{float:right;width:420px;} 
          #footer{width:700px;margin-right:auto;margin-left:auto;overflow:auto;clear:both;} 


          單行三列
          絕對(duì)定位 

           Example Source Code
          #left{position:absolute;top:0px;left:0px;width:120px;} 
          #middle{margin:0px190px0px190px;} 
          #right{position:absolute;top:0px;right:0px;width:120px;} 


          float定位一
          xhtml代碼:
           Example Source Code
          <div id="wrap"> 
          <div id="column"> 
          <div id="column1">這里是第一列</div> 
          <div id="column2">這里是第二列</div> 
          <div class="clear"></div>/*用法web標(biāo)準(zhǔn)不建議,但是記住下面元素需要清除浮動(dòng)*/ 
          </div> 
          <divid="column3">這里是第三列</div> 
          <divclass="clear"></div>/*用法web標(biāo)準(zhǔn)不建議,但是記住下面元素需要清除浮動(dòng)*/ 
          </div> 

          CSS代碼:
           Example Source Code
          #wrap{width:100;height:auto;} 
          #column{float:left;width:60;} 
          #column1{float:left;width:30;} 
          #column2{float:right;width:30;} 
          #column3{float:right;width:40;} 
          .clear{clear:both;} 


          float定位二
          xhtml代碼:
           Example Source Code
          <div id="center"class="column"> 
          <h1>Thisisthemaincontent.</h1> 
          </div> 
          <div id="left"class="column"> 
          <h2>Thisistheleftsidebar.</h2> 
          </div> 
          <div id="right"class="column"> 
          <h2>Thisistherightsidebar.</h2> 
          </div>

          CSS代碼:
           Example Source Code
          body{ 
          margin:0; 
          padding-left:200px;/*LCfullwidth*/ 
          padding-right:190px;/*RCfullwidth CCpadding*/ 
          min-width:200px;/*LCfullwidth CCpadding*/ 

          .column{ 
          position:relative; 
          float:left; 

          #center{ 
          width:100; 

          #left{ 
          width:200px;/*LCwidth*/ 
          right:200px;/*LCfullwidth*/ 
          margin-left:-100; 

          #right{ 
          width:190px;/*RCwidth*/ 
          margin-right:-100; 
          }

          posted @ 2010-02-25 10:04 Angle Wang 閱讀(185) | 評(píng)論 (0)編輯 收藏

          CSS Hack匯總快查

           

          原文:http://andymao.com/andy/post/76.html

          屏蔽IE瀏覽器(也就是IE下不顯示)

          *:lang(zh) select {font:12px  !important;} /*FF的專(zhuān)用*/
          select:empty {font:12px  !important;} /*safari可見(jiàn)*/
          這里select是選擇符,根據(jù)情況更換。第二句是MAC上safari瀏覽器獨(dú)有的。
          僅IE7識(shí)別

          *+html  {…}
          當(dāng)面臨需要只針對(duì)IE7做樣式的時(shí)候就可以采用這個(gè)HACK。
          IE6及IE6以下識(shí)別

          * html  {…}
          這個(gè)地方要特別注意很多地主都寫(xiě)了是IE6的HACK其實(shí)IE5.x同樣可以識(shí)別這個(gè)HACK。其它瀏覽器不識(shí)別。
          html/**/ >body  select {……}
          這句與上一句的作用相同。
          僅IE6不識(shí)別

          select { display /*IE6不識(shí)別*/:none;}
          這里主要是通過(guò)CSS注釋分開(kāi)一個(gè)屬性與值,流釋在冒號(hào)前。
          僅IE6與IE5不識(shí)別

          select/**/ { display /*IE6,IE5不識(shí)別*/:none;}
          這里與上面一句不同的是在選擇符與花括號(hào)之間多了一個(gè)CSS注釋。
          僅IE5不識(shí)別

          select/*IE5不識(shí)別*/ { display:none;}
          這一句是在上一句中去掉了屬性區(qū)的注釋。只有IE5不識(shí)別
          盒模型解決方法

          selct {width:IE5.x寬度; voice-family :"\"}\""; voice-family:inherit; width:正確寬度;}
          盒模型的清除方法不是通過(guò)!important來(lái)處理的。這點(diǎn)要明確。
          清除浮動(dòng)

          select:after {content:"."; display:block; height:0; clear:both; visibility:hidden;}
          在Firefox中,當(dāng)子級(jí)都為浮動(dòng)時(shí),那么父級(jí)的高度就無(wú)法完全的包住整個(gè)子級(jí),那么這時(shí)用這個(gè)清除浮動(dòng)的HACK來(lái)對(duì)父級(jí)做一次定義,那么就可以解決這個(gè)問(wèn)題 。

          截字省略號(hào)

          select { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
          這個(gè)是在越出長(zhǎng)度后會(huì)自行的截掉多出部分的文字,并以省略號(hào)結(jié)尾,很好的一個(gè)技術(shù)。只是目前Firefox并不支持。
          只有Opera識(shí)別

          @media all and (min-width: 0px){ select {……}  }
          針對(duì)Opera瀏覽器做單獨(dú)的設(shè)定。
          以上都是寫(xiě)CSS中的一些HACK,這些都是用來(lái)解決局部的兼容性問(wèn)題,如果希望把兼容性的內(nèi)容也分離出來(lái),不妨試一下下面的幾種過(guò)濾器。這些過(guò)濾器有的是寫(xiě)在CSS中通過(guò)過(guò)濾器導(dǎo)入特別的樣式,也有的是寫(xiě)在HTML中的通過(guò)條件來(lái)鏈接或是導(dǎo)入需要的補(bǔ)丁樣式。

          IE5.x的過(guò)濾器,只有IE5.x可見(jiàn)


          @media tty {
          i{content:"\";/*" "*/}} @import 'ie5win.css'; /*";}
          }/* */
          IE5/MAC的過(guò)濾器,一般用不著

          [Copy to clipboard] [ - ]CODE:
          /*\*//*/
              @import "ie5mac.css";
          /**/
          IE的if條件Hack

          <!--[if IE]> Only IE <![endif]-->
          所有的IE可識(shí)別
          <!--[if IE 5.0]> Only IE 5.0 <![endif]-->
          只有IE5.0可以識(shí)別
          <!--[if gt IE 5.0]> Only IE 5.0+ <![endif]-->
          IE5.0包換IE5.5都可以識(shí)別
          <!--[if lt IE 6]> Only IE 6- <![endif]-->
          僅IE6可識(shí)別
          <!--[if gte IE 6]> Only IE 6/+ <![endif]-->
          IE6以及IE6以下的IE5.x都可識(shí)別
          <!--[if lte IE 7]> Only IE 7/- <![endif]-->
          僅IE7可識(shí)別

          posted @ 2010-02-25 10:00 Angle Wang 閱讀(160) | 評(píng)論 (0)編輯 收藏

          制作網(wǎng)頁(yè)的一般大小

          高度:沒(méi)有一個(gè)固定值,因?yàn)槊總€(gè)人的瀏覽器的工具欄不同。
          寬度:
          1、在IE6.0下,寬度為顯示器分辨率減21,比如1024的寬度-21就變成1003。但值得注意的是IE6.0(或更低)無(wú)論你的網(wǎng)頁(yè)多高都會(huì)有右側(cè)的滾動(dòng)條框。
          2、在Firefox下,寬度的分率辨減19。比如1024的寬度-19就變成1005
          3、在Opear下,寬度的分率辨減23。比如1024的寬度-23就變成1001
          注:Firefox或Opear在內(nèi)容少于瀏覽器高度時(shí)不顯示右側(cè)滾動(dòng)條。

          所以如果是1024的分辨率,你的網(wǎng)頁(yè)不如設(shè)成1000安全一點(diǎn)。
          如果是800的分辨率一般都設(shè)成770

          posted @ 2010-02-21 09:17 Angle Wang 閱讀(302) | 評(píng)論 (0)編輯 收藏

          一個(gè)關(guān)于美工的面試題(轉(zhuǎn))

           軟件應(yīng)用能力(2)

          1Ps或者其他圖像處理軟件做一個(gè)如圖的漸變按鈕

          2Flash做一個(gè)簡(jiǎn)單的圖形遮罩效果

          3.把網(wǎng)站童車(chē)列表頁(yè)的結(jié)構(gòu)美感重新設(shè)計(jì)

          4.用ps或者Fw等圖像處理軟件對(duì)一個(gè)網(wǎng)頁(yè)平面圖做切片(例圖為:)

           網(wǎng)頁(yè)設(shè)計(jì)分析能力

          1. 購(gòu)物網(wǎng)站的主色調(diào)應(yīng)該是什么樣色?交友網(wǎng)站?體育網(wǎng)站?軟件網(wǎng)站?年輕的互聯(lián)網(wǎng)?搜索引擎?

          2. 一個(gè)網(wǎng)站最多有幾種色彩

          3. 百度和google,你看哪個(gè)覺(jué)得更舒服一點(diǎn)?

          4. 列出你所知道的幾種圖像格式,并說(shuō)出它們之間的不同點(diǎn)和大部分的用途

          5. 一般網(wǎng)站的版式有哪幾種?

          6. 如果背景是黑色,那么字體用什么顏色能突出字體,且不顯得刺眼?

          7. 在紅色中加入少量的黑色,你覺(jué)得應(yīng)該是種什么感覺(jué)?

           網(wǎng)頁(yè)制作能力

          1. tablediv分別設(shè)計(jì)一個(gè)三行三列的網(wǎng)頁(yè)(頭部,身體,底部;身體部分為三列)

          2. 列出你所用過(guò)的Html元素

          3. li做一個(gè)橫向的導(dǎo)航菜單,不少于三個(gè)菜單

          4.背景的哪個(gè)屬性來(lái)確定背景圖像是否固定?

           高級(jí)應(yīng)用能力(選做)

          1. js代碼寫(xiě)出一個(gè)頁(yè)面加載后能不斷變換背景的效果

          2. 利用DOM知識(shí)是列出一個(gè)ulli的總數(shù),li中的內(nèi)容

          3. 寫(xiě)出你會(huì)用的兼容個(gè)中不同瀏覽器的hack css代碼,如IE7 FF

          4. 說(shuō)出你所知道的web標(biāo)準(zhǔn)方面的知識(shí)

          5. 高級(jí)圖像處理(可網(wǎng)上查詢(xún)教程):模仿例圖

          6. Form表單的哪個(gè)屬性是表單數(shù)據(jù)的傳送方式?

          7. /images/123.jpg images/123.jpg,那種寫(xiě)法是相對(duì)根目錄的?

          posted @ 2010-02-20 13:34 Angle Wang 閱讀(2807) | 評(píng)論 (0)編輯 收藏

          CSS網(wǎng)頁(yè)布局中易犯的10個(gè)小錯(cuò)誤

          即使是CSS高手,也難免在書(shū)寫(xiě)CSS代碼的時(shí)候出一些小錯(cuò)誤,或者說(shuō),任何一種代碼都是如此。小錯(cuò)誤卻往往造成大問(wèn)題,浪費(fèi)很多無(wú)辜的時(shí)間來(lái)調(diào)試和排錯(cuò)。查看下面這份CSS網(wǎng)頁(yè)布局中易犯的10個(gè)小錯(cuò)誤,努力的修正你可能會(huì)犯的錯(cuò)誤,加速你的前端開(kāi)發(fā)效率。

          1. 檢查html元素是否有拼寫(xiě)錯(cuò)誤、是否忘記結(jié)束標(biāo)記

          即使是老手也經(jīng)常會(huì)弄錯(cuò)div的嵌套關(guān)系。可以用dreamweaver的驗(yàn)證功能檢查一下有無(wú)錯(cuò)誤。

          2. 檢查CSS是否書(shū)寫(xiě)正確

          檢查一下有無(wú)拼寫(xiě)錯(cuò)誤、是否忘記結(jié)尾的 } 等。可以利用CleanCSS來(lái)檢查 CSS的拼寫(xiě)錯(cuò)誤。CleanCSS本是為CSS減肥的工具,但也能檢查出拼寫(xiě)錯(cuò)誤。

          3. 用刪除法確定錯(cuò)誤發(fā)生的位置

          如果錯(cuò)誤影響了整體布局,則可以逐個(gè)刪除div塊,直到刪除某個(gè)div塊后顯示恢復(fù)正常,即可確定錯(cuò)誤發(fā)生的位置。

          4. 利用border屬性確定出錯(cuò)元素的布局特性

          使用float屬性布局一不小心就會(huì)出錯(cuò)。這時(shí)為元素添加border屬性確定元素邊界,錯(cuò)誤原因即水落石出。

          5. float元素的父元素不能指定clear屬性

          MacIE下如果對(duì)float的元素的父元素使用clear屬性,周?chē)膄loat元素布局就會(huì)混亂。這是MacIE的著名的bug,倘若不知道就會(huì)走彎路。

          6. float元素務(wù)必指定width屬性

          很多瀏覽器在顯示未指定width的float元素時(shí)會(huì)有bug。所以不管float元素的內(nèi)容如何,一定要為其指定width屬性。
          另外指定元素時(shí)盡量使用em而不是px做單位。

          7. float元素不能指定margin和padding等屬性

          IE在顯示指定了margin和padding的float元素時(shí)有bug。因此不要對(duì)float元素指定margin和padding屬性(可以在float元素內(nèi)部嵌套一個(gè)div來(lái)設(shè)置margin和padding)。也可以使用hack方法為IE指定特別的值。

          8. float元素的寬度之和要小于100%

          如果float元素的寬度之和正好是100%,某些古老的瀏覽器將不能正常顯示。因此請(qǐng)保證寬度之和小于99%。

          9. 是否重設(shè)了默認(rèn)的樣式?

          某些屬性如margin、padding等,不同瀏覽器會(huì)有不同的解釋。因此最好在開(kāi)發(fā)前首先將全體的margin、padding設(shè)置為0、列表樣式設(shè)置為none等。

          10. 是否忘記了寫(xiě)DTD?

          如果無(wú)論怎樣調(diào)整不同瀏覽器顯示結(jié)果還是不一樣,那么可以檢查一下頁(yè)面開(kāi)頭是不是忘了寫(xiě)下DTD聲明。

          : 本文來(lái)源于網(wǎng)絡(luò),出處不明。

          posted @ 2010-01-30 11:31 Angle Wang 閱讀(163) | 評(píng)論 (0)編輯 收藏

          默認(rèn)WEB字體樣式(轉(zhuǎn))

          通常用戶(hù)看到的頁(yè)面的樣式會(huì)受到三層控制,第一層是瀏覽器的默認(rèn)樣式,第二層是網(wǎng)頁(yè)定義樣式,第三層是用戶(hù)自定義樣式。和CSS一樣,后面的優(yōu)先級(jí)高于前面的,也就是說(shuō)網(wǎng)頁(yè)定義樣式可以覆蓋瀏覽器的默認(rèn)樣式,而用戶(hù)自定義樣式優(yōu)先級(jí)最高。實(shí)際情況是雖然瀏覽器都或多或少提供了用戶(hù)自定義樣式的功能,但是極少數(shù)會(huì)有用戶(hù)去自定義,一般用也是高級(jí)用戶(hù)。而瀏覽器默認(rèn)的樣式往往在不同的瀏覽器、不同的語(yǔ)言版本甚至不同的系統(tǒng)版本都有不同的設(shè)置,這就導(dǎo)致如果直接利用默認(rèn)樣式的頁(yè)面在各個(gè)瀏覽器下顯示非常不一致,于是就有了類(lèi)似YUI的reset之類(lèi)用來(lái)盡量重寫(xiě)瀏覽器的默認(rèn)設(shè)置保證各個(gè)瀏覽器樣式一致性的做法。

          拿字體來(lái)說(shuō),各個(gè)瀏覽器默認(rèn)的字體種類(lèi)、字體大小和字體行高都不一樣,比如IE8的中文版在Windows XP下顯示網(wǎng)頁(yè)時(shí)默認(rèn)字體是宋體,而英文版肯定不會(huì)如此。所以我們需要統(tǒng)一設(shè)置默認(rèn)的字體樣式,以便實(shí)現(xiàn)一致的顯示效果來(lái)保證設(shè)計(jì)的一致性和提高開(kāi)發(fā)效率。

          以后準(zhǔn)備使用如下默認(rèn)字體樣式:

          body{
          font: 12px/1.5 arial;
          }

          字體:arial

          我們頁(yè)面的絕大部分內(nèi)容字符都是中文,毫無(wú)疑問(wèn)目前為止在網(wǎng)頁(yè)上最常用也是最通用的顯示中文的字體是宋體,但是宋體在顯示英文、數(shù)字和英文符號(hào)時(shí)過(guò)于糟糕,比如©字符,所以我們一般期望通過(guò)CSS來(lái)實(shí)現(xiàn)用更好的字體樣式來(lái)顯示它們,然后用宋體來(lái)顯示中文和中文符號(hào)。之所以選擇arial是因?yàn)椋?/p>

          1. Windows和Mac都預(yù)裝了這款字體,應(yīng)該是使用最廣泛的網(wǎng)頁(yè)字體了。它的潛在對(duì)手tahomahelvetica就沒(méi)有這么幸運(yùn)了。
          2. 視覺(jué)設(shè)計(jì)的專(zhuān)業(yè)人士可能會(huì)認(rèn)為在Windows中使用tahoma、在Mac中使用helvetica更好,比如淘寶的默認(rèn)字體樣式font: 12px/1 Tahoma, Helvetica, Arial, "\5b8b\4f53", sans-serif;
            這是一個(gè)很不錯(cuò)的選擇,但是你也會(huì)發(fā)現(xiàn)Google、YAHOO、Youtube、Bing甚至MSN的新版都使用arial作為第一默認(rèn)字體。所以從美觀和可讀性上來(lái)講arial應(yīng)該是完全可以接受的。
          3. 一般情況下設(shè)置font-family都會(huì)在最后設(shè)置通用字體族以保證其安全性,比如Google的設(shè)置為font-family:arial,sans-serif;,但是至少在非中文版的Win7下當(dāng)編碼是GBK時(shí),IE8會(huì)因sans-serif來(lái)渲染宋體,導(dǎo)致字體出現(xiàn)變形,這就是為什么淘寶需要在sans-serif前加上宋體而Google無(wú)需這樣做的原因。
          4. 因?yàn)橹形淖煮w的選擇非常有限,所以目前所有的主流瀏覽器都設(shè)置使用宋體來(lái)顯示中文。Baidu的首頁(yè)和搜索結(jié)果頁(yè)使用font-family:arial;可以從側(cè)面說(shuō)明這樣做的安全性。可能有人注意到Firefox中國(guó)版默認(rèn)顯示的中文字體是微軟雅黑,這是因?yàn)橹\智網(wǎng)絡(luò)擅自修改了用戶(hù)自定義樣式,不允許網(wǎng)頁(yè)的樣式覆蓋瀏覽器設(shè)置的樣式。也是由于類(lèi)似的情況,我們要彈性設(shè)計(jì)網(wǎng)頁(yè)非常重要。

          使用英文字體作為第一默認(rèn)字體會(huì)導(dǎo)致的問(wèn)題之一就是中英文以及符號(hào)混排時(shí)的對(duì)齊問(wèn)題、通過(guò)設(shè)置行高和hasLayout能解決絕大部分情況,但是都不會(huì)很完美,如果把字體改成“宋體”能徹底的解決問(wèn)題。很明顯,這個(gè)問(wèn)題只出現(xiàn)在IE上。所以,如果你的網(wǎng)站很少使用英文、數(shù)字和英文符號(hào),那么直接設(shè)置{font-family:\5b8b\4f53;}也是很合理的選擇。

          大小:12px

          1. 12px是宋體能顯示的極限,雖然微軟雅黑能顯示更小的字體,但目前的應(yīng)用環(huán)境尚未成熟。由于宋體基本上是目前顯示中文唯一的通用Web字體,所以12px成為最常用的字體大小。我們當(dāng)然可以依據(jù)產(chǎn)品的需要來(lái)修改這個(gè)默認(rèn)值。
          2. 不用考慮基于字體大小(em)的設(shè)計(jì)
          3. 在Chrome3.0之后的中文版中,字體大小最小值是12px,比如你設(shè)置最小字體為10px,最后也變成12px。

          行高:1.5倍

          1. 這是一個(gè)經(jīng)驗(yàn)值,不同的產(chǎn)品對(duì)這個(gè)值要求可能不同,但我們一般會(huì)設(shè)置最常用的為默認(rèn)值。比如YUI的font中是font:13px/1.231 arial,helvetica,clean,sans-serif;即字體大小默認(rèn)值是13px,行高是13*1.231=16.003px,默認(rèn)的行高是默認(rèn)字體的1.231倍。對(duì)于中文來(lái)說(shuō),常用的字體大小12px、14px、16px、18px等偶數(shù)大小,在IE6和IE7設(shè)置其行高也為偶數(shù)能解決一些特殊情況下的字體對(duì)其問(wèn)題。
          2. 在IE6和IE7中,行高值必須大于字體的2px才能保證字體的完整顯示或當(dāng)其作為鏈接時(shí)能有效顯示下劃線(xiàn)。
          3. 設(shè)置line-height時(shí),注意不要使用單位(包括%在內(nèi)),因?yàn)樽庸?jié)點(diǎn)會(huì)繼承經(jīng)過(guò)運(yùn)算后的line-height值,所以當(dāng)使用單位后瀏覽器會(huì)把line-height計(jì)算成第一次定義的絕對(duì)值,而不會(huì)隨著字體大小的變化而變化,而無(wú)單位的數(shù)值表示是所在容器的font-size的倍數(shù),所以設(shè)置為無(wú)單位的數(shù)值是最佳選擇。
          4. 深入CSS 行高非常有利于理解line-height,值得一讀。

          性能和效率

          1. 大部分平臺(tái)都有arial,減少瀏覽器的查找時(shí)間。
          2. 代碼最少,書(shū)寫(xiě)方便。arial基本上是名字最短的字體了,可以節(jié)約CSS的大小。
          3. 所有的字母都小寫(xiě),目前Google就是這樣做的,好處是既可以編寫(xiě)更快也能提升Gzip壓縮的效率
          4. 中文最好用unicode表示,比如使用宋體是{font-family:\5b8b\4f53;},使用微軟雅黑是{font-family:\5fae\8f6f\96c5\9ed1;},這樣的好處是避免編碼問(wèn)題,同時(shí)能得到所有的主流瀏覽器的支持。
          5. 使用正確的字體種類(lèi)寫(xiě)法,避免使用引號(hào),這樣可以縮小CSS的大小。中文字體可以按上一條方式來(lái)編寫(xiě)。

          未來(lái)

          1. 通過(guò)對(duì)中英文及符號(hào)混排的測(cè)試,我發(fā)現(xiàn)微軟雅黑其實(shí)表現(xiàn)相當(dāng)不錯(cuò),包括英文數(shù)字和英文字符以及在IE6和IE7的顯示效果上,但唯一的遺憾是在XP下如果安裝了微軟雅黑字體的用戶(hù)沒(méi)有打開(kāi)“使用屏幕字體的邊緣平滑”選項(xiàng)的話(huà),在Firefox、Safari和Opera、特別是IE6下會(huì)非常模糊難以辨認(rèn)。針對(duì)這個(gè)問(wèn)題目前并沒(méi)有很好的解決方案,所以只有等到IE6使用比率非常小的時(shí)候才可能正式的使用它。或許需要到2014年,XP死掉的時(shí)候。
          2. 雖然很早就有了@font-face,但是瀏覽器的支持、網(wǎng)速和商業(yè)問(wèn)題,導(dǎo)致它很少被應(yīng)用。最近關(guān)于字體的好消息是Firefox3.6將支持Web Open Font Forma。關(guān)于Web字體未來(lái)的相關(guān)信息可以看Web 字體的未來(lái)關(guān)于 Web 字體:現(xiàn)狀與未來(lái)再談 Web 字體的現(xiàn)狀與未來(lái)

          最后推薦一下玉伯的《再談 Web 默認(rèn)字體》

          posted @ 2010-01-30 11:25 Angle Wang 閱讀(244) | 評(píng)論 (0)編輯 收藏

          DIV+CSS結(jié)合js控制頁(yè)面滾動(dòng)的效果(轉(zhuǎn))

          DIV+CSS結(jié)合js控制頁(yè)面滾動(dòng)的效果,非常實(shí)用,兼容ie,ff。
              

          <head>
          <style type="text/css">
            #container{
            text-align: left;
            background-color: #faf7ec;
            width: 500px;
            margin: 20px auto 0 auto;
            padding: 0;
            font-family:Arial, Helvetica, sans-serif;
            font-size:12px;
           }
          #block0, #block1, #block2, #block3, #block4, #block5
          {
            border-top: solid 1px #785a3c;
            margin: 0;
            padding: 10px;
          }
          .active {  background-color: #fff;}
          .visited {  background-color: #ede7da;}
          #block0, #block0.active, #block0.visited
          {
            text-align: center;
            background-color: #a0dcf8;
            border-top: none;
            border-bottom: solid 4px #785a3c;
          }
          </style>

          <script>
          var ScrollWin = {
            w3c : document.getElementById,
            iex : document.all,
            scrollLoop : false,
            scrollInterval : null, // setInterval id
            currentBlock : null,   // object reference
            getWindowHeight : function(){
              if(this.iex) return (document.documentElement.clientHeight) ?
          document.documentElement.clientHeight : document.body.clientHeight;
              else return window.innerHeight;
            },
            getScrollLeft : function(){
              if(this.iex) return (document.documentElement.scrollLeft) ?
          document.documentElement.scrollLeft : document.body.scrollLeft;
              else return window.pageXOffset;
            },
            getScrollTop : function(){
              if(this.iex) return (document.documentElement.scrollTop) ?
          document.documentElement.scrollTop : document.body.scrollTop;
              else return window.pageYOffset;
            },
            getElementYpos : function(el){
              var y = 0;
              while(el.offsetParent){
                y += el.offsetTop
                el = el.offsetParent;
              }
              return y;
            },
            scroll : function(num){
              if(!this.w3c){
                location.href = "#"+this.anchorName+num;
                return;
              }
              if(this.scrollLoop){
                clearInterval(this.scrollInterval);
                this.scrollLoop = false;
                this.scrollInterval = null;
              }
              if(this.currentBlock != null) this.currentBlock.className = this.offClassName;
              this.currentBlock = document.getElementById(this.blockName+num);
              this.currentBlock.className = this.onClassName;
              var doc = document.getElementById(this.containerName);
              var documentHeight = this.getElementYpos(doc) + doc.offsetHeight;
              var windowHeight = this.getWindowHeight();
              var ypos = this.getElementYpos(this.currentBlock);
              if(ypos > documentHeight - windowHeight) ypos = documentHeight - windowHeight;
              this.scrollTo(0,ypos);
            },
            scrollTo : function(x,y){
              if(this.scrollLoop){
                var left = this.getScrollLeft();
                var top = this.getScrollTop();
                if(Math.abs(left-x) <= 1 && Math.abs(top-y) <= 1){
                  window.scrollTo(x,y);
                  clearInterval(this.scrollInterval);
                  this.scrollLoop = false;
                  this.scrollInterval = null;
                }else{
                  window.scrollTo(left+(x-left)/10, top+(y-top)/10);  
                }
              }else{
                this.scrollInterval = setInterval("ScrollWin.scrollTo("+x+","+y+")",20);   
                this.scrollLoop = true;
              }
            }
          };
          ScrollWin.containerName = "container";
          ScrollWin.anchorName    = "anchor";  
          ScrollWin.blockName     = "block";    
          ScrollWin.onClassName   = "active";   
          ScrollWin.offClassName  = "visited";  
          </script>
          </head>


          <body>
          <div align="center">
          <div id="container">
            <a name="anchor0"></a>
            <div id="block0">
              <a href="javascript:ScrollWin.scroll('1')">鏈接 1</a> |
              <a href="javascript:ScrollWin.scroll('2')">鏈接 2</a> |
              <a href="javascript:ScrollWin.scroll('3')">鏈接 3</a> |
              <a href="javascript:ScrollWin.scroll('4')">鏈接 4</a> |
              <a href="javascript:ScrollWin.scroll('5')">鏈接 5</a>
            </div>
            <a name="anchor1"></a>
            <div id="block1">
              <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">頂部</a>
            鏈接 1</h3>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
            </div>
            <a name="anchor2"></a>
            <div id="block2">
              <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">頂部</a>
            鏈接 2</h3>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
            </div>
            <a name="anchor3"></a>
            <div id="block3">
              <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">頂部</a>
            鏈接 3</h3>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
            </div>
            <a name="anchor4"></a>
            <div id="block4">
              <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">頂部</a>
            鏈接 4</h3>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
            </div>
            <a name="anchor5"></a>
            <div id="block5">
              <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">頂部</a>
            鏈接 5</h3>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
              <p>內(nèi)容</p>
            </div>
          </div>
          </div>
          </body>

          posted @ 2010-01-22 17:25 Angle Wang 閱讀(1642) | 評(píng)論 (2)編輯 收藏

          主站蜘蛛池模板: 湘乡市| 吉隆县| 汶川县| 耿马| 海淀区| 岳普湖县| 大洼县| 和田县| 武陟县| 石河子市| 新干县| 金阳县| 乌拉特后旗| 思南县| 柳河县| 彰武县| 焦作市| 温州市| 即墨市| 平武县| 勐海县| 龙山县| 富顺县| 汝阳县| 伊金霍洛旗| 镇康县| 广德县| 汪清县| 昭苏县| 水富县| 山东省| 肇东市| 乌苏市| 新安县| 东丽区| 正阳县| 札达县| 徐州市| 武义县| 宜良县| 都安|