首頁  >  文章  >  web前端  >  css中的background:transparent的意義與作用

css中的background:transparent的意義與作用

黄舟
黄舟原創
2017-07-21 09:15:533675瀏覽

transparent是透明的意思,實際上background預設的顏色就是透明的屬性
一般使用場景:
如果一個元素覆蓋在另一個元素之上,而你想顯示下面的元素,這時你就需要把上面這個元素的background設定為transparent

有時我在看css時,看到有的css屬性定義為background:transparent。意思就是背景透明。實際上background預設的顏色就是透明的屬性。所以寫和不寫都是一樣的有段時間沒寫文章了,一直在學校,雖然帶著電腦,但是不能上網啊!最近在用javascript寫一個網頁版的操作系統,寫好了一定發上來,寫的過程中遇到很多問題,許多都是細節方面的,很麻煩,不過自己一直在努力解決,也是對自己的一種提高吧.下面我來說一下我最近遇到的一個問題. 大家知道,你用createelement新建一個div,預設情況下這個div的style中的backgroungcolor屬性是transparent,呵呵,如果我做一個div的蒙板,那麼請看下面一段程式碼:複製程式碼如下:

div.style.position="absolute"; 
div.style.width=document.body.clientWidth+"px"; 
div.style.height=document.body.clientHeight+"px"; 
div.style.left="0px"; 
div.style.top="0px"; 
div.style.zIndex="2000"; 
div.style.backgroundColor="black"; 
div.style.filter="alpha(opacity="+0+");";

這是很多蒙板div的設定,也就是說屏蔽使用者對網頁上的其他元素進行操作. 我們主要看後面兩行程式碼,前面不是已經說了嘛,div的預設backgroundcolor屬性就是transparent,也就是是透明,那麼我們幹嘛還要多此一舉去設置個black(這個無所謂,隨便設置個顏色,只要不是transparent就行,也不能是空字符串,瀏覽器會默認將空字符串看成transparent),並且設置濾鏡讓他透明呢. 我自己動手做了試驗,一開始還對試驗結果很迷惑,但自己靜下來想想便發現了其中的區別,如果我們沒有上面代碼的後兩句,那麼我們便可以對蒙板後的元素進行操作,也就是說起不到屏蔽的作用,但是這個操作是有限制的,具體說就是我們只可以對有焦點的元素進行操作,比如文本,圖片,按鈕等,我舉個例子:複製程式碼如下:

<div style="border:1px red solid;width:100px;height:100px" onclick="alert(1)"123</div >

正常情況下,只要你點擊這個div的任何位置,都會alert的,但是當它被一個backgroundcolor為transparent的元素遮住的時候,我們只有點擊123才會alert,因為文字是可以獲得焦點的,同理其他元素也一樣.順便說下,這個backgroundcolor為transparent的元素的事件會對被它遮住的元素所截獲.如果我們所觸發的對象沒有焦點,那麼事件會交換給transparent的元素處理並按這個元素進行冒泡,否則有焦點的會事件便由有焦點的那個對象處理,不會交換,並且按有焦點的元素進行冒泡.(似乎不是很好理解,可以自己多做試驗就明白了) 設定樣式為透明色有時,上文寫了複製代碼代碼如下:background:inherit; 那麼下文就可能要清除一下背景,就寫了複製代碼程式碼如下:background:transparent; 透明背景,也就是去掉了被如果一個元素覆蓋在另外一個元素之上,而你想顯示下面的元素,這時你就需要把上面這個元素的background設定為transparent

用createelement新建一個div,預設情況下這個div的style中的backgroungcolor屬性是transparent,呵呵,如果我做一個div的蒙板,那麼請看下面一段程式碼:
這是很多蒙板div的設定,也就是說屏蔽使用者對網頁上的其他元素進行操作.
我們主要看後面兩行程式碼,前面不是已經說了嘛,div的預設backgroundcolor屬性就是transparent,也就是是透明,那麼我們幹嘛還要多此一舉去設定個black(這個無所謂,隨便設定個顏色,只要不是transparent就行,也不能是空字串,瀏覽器會預設將空字串看成transparent),並且設定濾鏡讓他透明呢.
我自己動手做了試驗,一開始還對試驗結果很迷惑,但自己靜下來想想便發現了其中的區別,如果我們沒有上面代碼的後兩句,那麼我們便可以對蒙板後的元素進行操作,也就是說起不到屏蔽的作用,但是這個操作是有限制的,具體說就是我們只可以對有焦點的元素進行操作,比如文本,圖片,按鈕等,我舉個例子:
正常情況下,只要你點擊這個div的任何位置,都會alert的,但是當它被一個backgroundcolor為transparent的元素遮住的時候,我們只有點擊123才會alert,因為文本是可以獲得焦點的,同理其他元素也一樣.順便說下,這個backgroundcolor為transparent的元素的事件會對被它遮住的元素所截獲.如果我們所觸發的對象沒有焦點,那麼事件會交換給transparent的元素處理並按這個元素進行冒泡,否則有焦點的會事件便由有焦點的那個對象處理,不會交換,並且按有焦點的元素進行冒泡.(貌似不是很好理解,可以自己多做試驗就懂了)

以上是css中的background:transparent的意義與作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn