天天看點

制作CSS氣泡框

氣泡狀文本框,是一種很生動的網頁設計手段。

它可以用來表示使用者的發言。

制作CSS氣泡框

也可以用來作為特定資訊的提示符。

制作CSS氣泡框

dvd租借網站netflix,還用它顯示碟片的詳細資訊。

制作CSS氣泡框

=========================

制作css氣泡框的傳統方法,需要5張背景圖檔,分别是:

  *

制作CSS氣泡框

tl.gif,左上方的圓角。

*

制作CSS氣泡框

tr.gif,右上方的圓角。

制作CSS氣泡框

bl.gif,左下方的圓角。

制作CSS氣泡框

br.gif,右下方的圓角。

制作CSS氣泡框

angle.gif,突出的三角形。

現在假定有這樣一段代碼:

  <blockquote>床前明月光,疑是地上霜。</blockquote>   <p>李白</p>

我們希望通過氣泡框,産生一種視覺效果,将李白與詩句對應起來。

制作CSS氣泡框

那麼,首先需要為詩句添加四個"鈎子"(handler):

  <div class="tl"> <div class="tr"> <div class="br"> <div class="bl"> <blockquote>床前明月光,疑是地上霜。</blockquote> </div>

然後,為最外面的容器div.tl指定高度和寬度,使它形成一個視覺方框:

  .tl{ width:300px; height:50px; text-align:center; line-height:50px; }

接着,為四個"鈎子"依次添加四個不同的圓角背景:

  .tl{background:url('tl.gif') top left no-repeat #ff8c45;} .tr{background:url('tr.gif') top right no-repeat;} .bl{background:url('bl.gif') bottom left no-repeat;} .br{background:url('br.gif') bottom right no-repeat;}

最後,在"李白"前面加上三角形圖檔。

  p{ padding: 15px 0px 0px 50px; background: url('angle.gif') 40px top no-repeat;

氣泡框就生成了。

這種方法的優點是所有浏覽器都支援,缺點是比較麻煩,必須制作專門的圖檔,增加多餘的标簽,代碼的靈活性較小。

============================

随着css3的出現,現在有了更好的方法,不需要任何背景圖檔和多餘的标簽,就能生成漂亮的文本框。

制作CSS氣泡框
制作CSS氣泡框

由于這種方法用到了css3,是以ie6不支援,ie7和ie8無法顯示圓角效果。其他浏覽器的最新版本,都能夠正常顯示。

還是以前面的代碼為例。

  <blockquote class="bubble">床前明月光,疑是地上霜。</blockquote>

第一步,生成基本的方框。

  .bubble{ position:relative; padding:15px; margin:1em 0em 3em; line-height:1.2; color:#fff; background:#075698;
制作CSS氣泡框

第二步,生成圓角。

-moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px;
制作CSS氣泡框

第三步,制作線性漸變的效果。

background:-webkit-gradient(linear, left top, left bottom, from(#f9d835), to(#f3961c)); background:-moz-linear-gradient(top, #f9d835, #f3961c); background:-o-linear-gradient(top, #f9d835, #f3961c); background:linear-gradient(top, #f9d835, #f3961c);
制作CSS氣泡框

第四步,在容器後面添加一個空元素,并将長度和寬度都設為0。

  .bubble:after { content:"\00a0"; width:0; height:0;

第五步,指定這個空元素為塊級元素,并且四個邊框之中,隻顯示上方的邊框,其他三個邊框,都設為透明。因為該元素的大小為0,是以它的每一個邊框,都是一個等腰三角形。

  .bubble:after{ display:block; border-style:solid; border-width:15px; border-color:#f3961c transparent transparent transparent;

這時,已經可以看見這個三角形了(其實是一個上邊框)。

制作CSS氣泡框

第六步,指定空元素的定位方式為absolute。然後,以容器元素的左下角為基點,将空元素水準右移一定的距離(這裡是50像素),再垂直下移兩個邊界的距離。(由于第五步将空元素的邊界設為15像素,是以這裡就是下移30像素。)

position:absolute; z-index:-1; bottom:-30px; left:50px;

至此,一個不需要任何背景圖檔和多餘标簽的氣泡框,就出現在我們眼前了。

制作CSS氣泡框

(完)

繼續閱讀