欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用css實現(xiàn)全兼容瀏覽器的三角形

 更新時間:2014年09月23日 10:15:47   投稿:hebedich  
css實現(xiàn)三角形,網(wǎng)上講了很多,但我發(fā)現(xiàn)一般都是三角向上或者向下的,向左向右這兩方向似乎講得很少,本人試了一下,發(fā)現(xiàn)原來在IE下很難搞~~(萬惡的IE)...

在當前流行的的網(wǎng)站上,我們經(jīng)常會看到一些小三角形的下拉提示(微博頂部的下拉菜單),簡單的方式可以使用一張圖片代替,但是隨著前端技術(shù)的發(fā)展,以及開發(fā)者對于前端性能的“吹毛求疵”,越來越多的前端開發(fā)者開始“返璞歸真”,在能不使用圖片的場景中減少圖片使用,css圖標相對于圖片還有個優(yōu)勢是我們可以方便的定制圖標的大小以及顏色。

css實現(xiàn)三角形圖標已不是什么新鮮技術(shù),之前也有很多相關(guān)的技術(shù)文章,這篇文章主要是分析下在實際場景中使用時遇到的問題以及如何回避這些問題。
基本原理大同小異,這里主要介紹利用css border(當然還可以使用css3的旋轉(zhuǎn)技術(shù)實現(xiàn),由于兼容性問題這里不涉及了)。

css border實現(xiàn)

一個div或者元素的border并不是我們直觀意義上的一條有高度的線,而是一個等高梯形或者三角形(寬高為0時),可以看一下效果:
div定義:

<div class="arrow1"></div>

css:

.arrow1{
  width: 0px;
  height:0px;
  border-width: 30px;
  border-style: solid;
  border-color: #007998 #47A447 #3C6AB9 #D2322D;
}

最終效果:

可以看到每一個方向的border都是一個三角形,那么我們只需把對應方向剩余其他方向的border設置為透明或者隱藏掉就可以得到任何方向的一個三角形了。如果我們想得到一個下拉圖標,我們可以將border的左右和下邊框改為透明,css改動如下:

.arrow1{
  width: 0px;
  height:0px;
  border-width: 30px;
  border-style: solid;
  border-color: #007998 transparent transparent transparent;
}

再看一下效果:

注:transparent 屬性用來在 background 中將 background-color 選項設置為背景顏色透明

bingo!就是我們想要的效果,但是在ie6下杯具鳥!

長長的大黑框,讓人無法直視,這是因為ie6不支持transparent 透明屬性,這時候我們可以將對應區(qū)域的border的樣式設置為dasheddashed在邊框?qū)挾群艽髸r,會隱藏掉。css修改如下:

  .arrow1{
    width: 0px;
    height:0px;
    border-width: 30px;
    border-style: solid;
    border-color: #007998 transparent transparent transparent;
  }

效果如下(ie6下查看):

但是,到此仍沒有結(jié)束,我們設置個陰影來查看下最終生成的效果:

即便是我們看到的已經(jīng)生成一個我們需要的三角形,但是三角形的占用高度仍是原高度,這會導致在和其他元素使用時,造成上移的效果。此時,我們需要把下邊框的高度設置為0:

  .arrow1{
    width: 0px;
    height:0px;
    border-width: 30px 30px 0;
    border-style: solid;
    border-color: #007998 transparent transparent transparent;
  }

再來看看效果:

似乎仍是不太友好,在使用時我們?nèi)孕枰薷膶念伾懿荒芨鶕?jù)父元素設定的顏色,顯示對應的顏色呢?我們需要把border-color修改下:

.arrow1{
  width: 0px;
  height:0px;
  line-height: 0px;
  border-width: 30px 30px 0;
  border-style: solid dashed dashed dashed;
  border-left-color: transparent;
  border-right-color: transparent;
}

效果(使用當前字體顏色):

當然除了利用css border生成外,我們還可以使用特殊字符◇疊加定位來生成,也可以使用css3的旋轉(zhuǎn)來生成(ie6下需要hack處理)。利用border是一種常用而且簡單兼容的方式

相關(guān)文章

  • 第3天:定義語言編碼

    第3天:定義語言編碼

    第3天:定義語言編碼...
    2006-12-12
  • 使用css實現(xiàn)全兼容tooltip提示框

    使用css實現(xiàn)全兼容tooltip提示框

    在上一篇文章中,使用css實現(xiàn)了一個全兼容的三角形圖標,這個三角型圖標可以使用于多種場景,比如下拉圖標、多級菜單等,這篇文章我們使用這個圖標通過純css來實現(xiàn)一個我們常見的tooltip提示框。
    2014-09-09
  • HTML5?Canvas繪制圖形從入門到精通

    HTML5?Canvas繪制圖形從入門到精通

    Canvas?API(畫布)是在HTML5中新增的標簽用于在網(wǎng)頁實時生成圖像,并且可以操作圖像內(nèi)容,基本上它是一個可以用JavaScript操作的位圖(bitmap)。Canvas?對象表示一個?HTML?畫布元素?-<canvas>。它沒有自己的行為,但是定義了一個?API?支持腳本化客戶端繪圖操作。
    2022-12-12
  • Lesson01_05    HTML中的超鏈接

    Lesson01_05 HTML中的超鏈接

    Lesson01_05 HTML中的超鏈接...
    2007-02-02
  • 詳解瀏覽器的緩存機制

    詳解瀏覽器的緩存機制

    緩存可以減少網(wǎng)絡 IO 消耗,提高訪問速度。瀏覽器緩存是一種操作簡單、效果顯著的前端性能優(yōu)化手段。
    2021-05-05
  • 非常好的CSS基本布局16例

    非常好的CSS基本布局16例

    非常好的CSS基本布局16例...
    2007-01-01
  • 基于HTTP瀏覽器緩存機制全面解析

    基于HTTP瀏覽器緩存機制全面解析

    這篇文章主要介紹了HTTP瀏覽器緩存機制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • CSS入門教程篇

    CSS入門教程篇

    CSS入門教程篇...
    2007-03-03
  • CSS網(wǎng)頁布局入門教程2:一列自適應寬度

    CSS網(wǎng)頁布局入門教程2:一列自適應寬度

    CSS網(wǎng)頁布局入門教程2:一列自適應寬度...
    2007-09-09
  • css進階學習 選擇符

    css進階學習 選擇符

    css這種沒有程序邏輯的代碼中,又能找出什么來說明誰做得更出色呢?下面小編給大家說明如何從css選擇符的角度來提高css代碼質(zhì)量。
    2019-05-05

最新評論