自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

IE CSS Bug系列:鏈接圖像透明部分不可點擊

開發(fā) 前端
問題:我們用透明PNG圖片作為鏈接的背景并用filter方法解決了IE下的alpha透明度問題。結果IE又怎么了?圖像的透明部分變得不能點擊了。讓我們來看看例子。

影響版本

該bug影響:IE8、IE7、IE6

表現(xiàn)

用’filter’方法修正了PNG透明度之后鏈接上背景圖像的透明部分不能點擊。

教程時間

2009.7.19 星期天 15:03:44

描述

問題:我們用透明PNG圖片作為鏈接的背景并用filter方法解決了IE下的alpha透明度問題。結果IE又怎么了?圖像的透明部分變得不能點擊了。讓我們來看看例子。

Demo

由于這個bug的天然特性,示例在一個獨立的頁面

HTML代碼

  1. <div><a href="#">Lorem Ipsum</a></div> 

CSS代碼

  1. a { 
  2.     displayblock
  3.     backgroundurl(ring.png) no-repeat
  4.     width100pxheight100px
  5.     text-indent-999px

條件注釋代碼

  1. <!--[if IE]> 
  2.     <style type="text/css"> 
  3.         a { 
  4.             background: none; 
  5.             cursor: pointer; 
  6.             filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="ring.png",sizingMethod="scale"); 
  7.         } 
  8.     </style> 
  9. <![endif]--> 

我們這里有什么呢?一個應用了display:block的鏈接(<a>),其background設置一個PNG格式的黑圓圈圖像, 除了黑圓圈之外的部分都為透明的。我們用只適合IE的filter屬性來修復IE重色的PNG透明部分。問題在于?IE當中圓圈的透明部分不可點擊。

解決方法

以下是以類型安排的解決上述bug的方法。

解決方法(Javascript方法)

解決日期

2009.07.19 15:17:23

解決瀏覽器版本

所有受影響的版本

描述

我來告訴你一個小秘密吧:如果我們給我們的鏈接設置background的話這個bug就修復了…不過等一下,我們能這么干嗎?我們先來看一下我們的示例。

由于這個bug的天然特性,示例在一個獨立的頁面上。

HTML代碼

  1. <div><a href="#">Lorem Ipsum</a></div> 

CSS Code

  1. a { 
  2.     display: block; 
  3.     background: url(ring.png) no-repeat; 
  4.     width: 100px; height: 100px; 
  5.     text-indent: -999px; 

條件注釋

  1. <!--[if IE]> 
  2.     <style type="text/css"> 
  3.         a { 
  4.             background: url(#); /* or point to a transparent gif. EDIT: see comments */ 
  5.             cursor: pointer; 
  6.             filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="ring.png",sizingMethod="scale"); 
  7.         } 
  8.     </style> 
  9. <![endif]--> 

嘿嘿開掛啦!我們在IE中將background設置為一個“圖像”,不過圖像的url()僅僅只是一個#號。更新:看到有用戶評論說用 about:blank怎么樣。這里實際上就是將background的url()設置為當前頁面上——沒錯,這樣會產(chǎn)生額外的HTTP請求,不過我覺得 這不值得擔心,因為那時候頁面已經(jīng)緩存好了。IE的行為總是變幻莫測,這就是其中一個例子。

更新:就像一位評論者所指出的一樣。這個額外的HTTP請求可能會影響頁面的點擊率等問題。如果你擔心這個問題的話,你可以把 background鏈接的#號替換為你的CSS文件(這個文件也是被緩存的),如果覺得這還不夠徹底的話,建立一個透明GIF文件并把背景設為它。再補 充說明一下,如果這個解決方法只在條件注釋里面實施的話,那個額外的請求只會在IE瀏覽器里面發(fā)生。

原文鏈接:http://haslayout.net/css/No-Transparency-Click-Bug

責任編輯:陳四芳 來源: 伯樂在線
相關推薦

2013-10-31 10:59:23

IECSS

2013-10-30 09:57:43

IECSS

2013-10-31 11:12:56

IECSS

2013-09-09 10:51:07

CSSIE瀏覽器

2013-10-28 14:01:03

IECSS

2013-10-29 10:32:59

IECSS

2009-08-13 10:12:07

IE的CSS Bug

2010-08-19 13:54:51

FirefoxIECSS

2010-08-17 15:38:49

CSS兼容IE7IE8

2010-09-03 09:55:10

CSS偽類hover

2022-06-16 09:55:58

css輪播圖

2020-07-06 08:37:18

前端

2010-09-15 10:14:19

IE7IE8兼容CSS

2010-08-18 10:24:51

IE6IE7IE8

2010-09-14 09:18:28

DIVCSS

2023-08-01 08:18:09

CSSUnset

2010-07-16 11:42:23

SQL Server

2010-09-06 15:06:29

IE6IE7Firefox

2010-09-08 16:59:48

CSS兼容IE7IE8

2010-08-19 14:09:47

IE7IE8
點贊
收藏

51CTO技術棧公眾號