Chrome opacity非1時border_第1頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、chrome opacity非1時border一、圓角邊框顯示不全問題浮現(xiàn)條件應當都知道,border-radius:50%可以讓元素正方形元素表現(xiàn)為正圓,深化理解其表現(xiàn)機制可參見我之前文章:css3 border-radius知多少?。假如元素設置了border邊框,則會表現(xiàn)為一個正圓圈圈,類似這樣:但有時候,border邊框的這個圈圈會在邊緣處發(fā)生剪裁,不是一個完善的圈圈了,類似下面這樣:圈圈的左側不是圓的了,而是像被什么東西一刀切下去,成了直直的了。假如是在retina屏幕下,則一刀切的效果可能還要越發(fā)顯然,上下左右都有可能發(fā)生剪裁。浮現(xiàn)這種渲染問題,需要滿足下面兩個條件: 元素的透亮度

2、opacity不是1; 元素的位置并不是完善起止于屏幕的像素點上; 第一個條件很好理解;那其次個條件是什么意思呢?對于一般的顯示器,設備像素比devicepixelratio是1,也就是最小顯示單位(渲染單位)是1像素。假如某一個元素的起點是從0.5像素開頭的,那這個元素的開頭位置就不是正巧在屏幕的像素點上,而是中間。這其實是個悖論,既然最小渲染單位是1像素,何來從0.5像素開頭的定位呢?的確,在過去,幾乎全部css屬性設置的小數(shù)值的終于表現(xiàn)都是以整數(shù)像素體現(xiàn)(如margin: .5px = margin: 1px),在老ie時代更堪稱死板(4個25%寬度浮動元素可能最后一個會掉下來)。但是進

3、入css3時代后,狀況就開頭發(fā)生變幻,著重要點名的就是transform變換。因為transform變換基于矩陣計算,無論是旋轉還是拉伸,其點坐標十有八九一定是n位數(shù)的小數(shù)。假如此時我們的掃瞄器根據(jù)最小的1像素開頭渲染,那圖形的邊緣那就是滿滿的鋸齒,渲染效果會十分糟糕(一開頭的transform變換效果然就這么糟糕)。掃瞄器廠商一看,我去,這效果挫到我自己都看不下去,于是下功夫開頭提升渲染體驗。弄了一套算法,對非整數(shù)像素點邊緣舉行柔化,也就是雖然還是占領的1像素的格子,但是邊緣像素點通過半透亮等特別處理,我們視覺上看就好似元素開頭于0.5像素的位置。也正是因為這個緣由,當我們用法對元素舉行非整

4、數(shù)位置的translate位移的時候,元素的邊緣會有一點含糊的感覺。對于imac這種5k顯示屏幕,最小像素點事實上可以小到0.2像素,也就是就是translate移動0.2像素,元素邊緣也不會柔化含糊,但是,移動0.5像素就不一定了。因此,如下的html和css代碼就可以讓圓角邊框不規(guī)整:.ele display: inline-block; width: 40px; height: 40px; border: 1px solid fff; border-radius: 50%; transform: translate(.5px, 0); opacity: 0.6; 按照我的測試,除了chr

5、ome掃瞄器有圓角邊框不規(guī)整的問題外,ie掃瞄器的渲染也同樣有問題,表現(xiàn)為右側邊緣顯然健美:但是,假如opacity設置為1,則無論ie掃瞄器還是chrome掃瞄器,又變成完善的圓圈圈了,如下(截自ie):firefox則表現(xiàn)符合預期。二、假如解決border-radius border部分顯示問題?知道問題浮現(xiàn)觸發(fā)的條件,那問題解決其實已經(jīng)解決了一半了。2種辦法:1. 元素尺寸和位置都在都是整數(shù)像素然而無數(shù)時候這種辦法并不切實際,尤其對于復雜布局,例如我們用法calc計算對元素寬度定位時候,或者line-height用法不簡單計算的小數(shù)時候,或者基于rem的布局等等,想要強制元素尺寸和位置都是整數(shù)并不太簡單。2. 不用法opacity實現(xiàn)半透亮既然我們的問題浮現(xiàn)與opacity不是1有關,那我們就不用法opacity實現(xiàn)半透亮,采納其他的辦法代替。假如我們想使一個邊框變成半透亮,除了opacity外,我們還可以用法rgba或者hsla色彩。例如,上面是一個例子的css代碼換成:.ele display: inline-block; width: 40px; height: 40px; border: 1px solid hsla(0,0%,100%,.6); border-radius: 50%; transform: trans

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論