DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 純css寫出tips的幾種方法
純css寫出tips的幾種方法
編輯:CSS詳解     

最近在項目中用到了很多的小tips,之前都是隨便找一套UI控件拿過來用一下就算完事了,一直也沒有去管這個東西究竟是怎麼搞出來的,只是大概知 道這個東西怎麼實現的,但是一套UI畢竟是太大了,tips也就是那些UI的一些附屬品,沒必要這麼興師動眾,而且想想這些小玩意也都上樣式上的事情,就 決定自己就地解決一個算了,很自然的就引出了今天這篇文章。。。

主要的tips就長如下圖這德行,就是個demo,所以比較丑。。

tip的demo圖

今天的主題就是這個小小的tips,但是還是有點文章可以做的,我主要介紹三種方法,可能還有更多的方法,但是在短時間內只能琢磨出以下三種方法:

第一種: 借助圖片

這種方法估計是大家常用的方法,下面的小三角大家第一想法應該就是圖片了,原理很簡單,Html的代碼就是大概如下這種結構

div是tips的容器,span是放tips小嘴的圖片的,給span設置一個小嘴背景就行啦,CSS代碼如下所示:

這個是tips的小嘴的圖片(./tips.png): (額。。。沒截好,湊合著用吧,以學習為主)

這種方法的優點就是:簡單,好理解,一學就會。首先對容器元素進行position的相對定位,是為了tips的小嘴的絕對定位能找到基准的父元素,然後就是span的絕對定位是為了任意的放小嘴的位置,用top和left來控制。

第二種:借助於CSS的border特性

這個技能相對於使用圖片的比較靈活,圖片是一個非常令人討厭的東西,需要多一次http請求,熟悉網頁性能優化的朋友應該對圖片都是非常敬而遠之 的,能不用就不用,而且用圖片的話,想換一個大點的或者小點的tips小嘴相對比較復雜,好了,不說廢話,介紹第二種方法的原理:

CSS的border蘊藏著一個牛叉的技能就是畫三角形,具體的原理可以參考http://blog.sina.com.cn/s/blog_74d6cedd0100z0os.Html,這位仁兄講的還是比較到位的,既然能用CSS畫三角形,那麼為什麼不畫一個直接替換掉tips小嘴的圖片呢??好了,上代碼,此方法的Html結構如下圖所示:

這次為什麼有兩個span呢?因為我們要畫的是一個帶border的三角形,類似於空心三角形,有canvas畫圖經驗的朋友都知道空心的東東得這 麼畫的,所以我們用tips-out來表示外面的border的灰色三角形,tips-in來表示裡面的黃色的三角形,具體的樣式代碼如下圖所示:

這個裡面就是畫出了兩個三角形了,我們是借助於兩個三角形的top定位的不同錯開了1px,形成了一個border的視覺效果~

第三種:借助特殊符號

unicode編碼支持很多特殊的符號,這些特殊符號是前端開發一筆寶貴的財富,因為這些符號就是一張張現成的圖片,但是卻不發起一次http請求,這種東西不用的話,還有天理嗎??我們今天做這個小tips的話需要借助於這麼一個特殊符號:▼

這就是一個三角形啊。。好了列出Html代碼:

和借助border特性一樣,需要兩個三角形畫出一個帶border的三角形,這樣的話,其實要控制tips小嘴的大小和顏色,我們其實只要控制這兩個span的font-size和color,好了,我們接著看CSS代碼,其實現在也是大同小異了:

這段CSS也是通過postion:absolute; top和left的值來控制兩個三角形的位置達到形成tips的小嘴的視覺效果。

好了,tips其實還是很有意思的,我個人比較喜歡第三種方法,首先CSS很短也不是很難理解,並且沒有用到圖片,而在常規的項目開發中我也會想方 設法的去盡可能的利用這些強大的特殊符號,能不用圖片就不用圖片。當然,也許tips的做法還有很多,我這裡權當算是一個拋磚引玉吧。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved