前言:在前面四篇文章中,我介紹了九宮格的原理及一個應(yīng)用案例,本來已經(jīng)告一段落了,但是那個布局還是有一定的局限性的。其最大的局限是不能應(yīng)用四角圓角外面是透明的圖片,而作為一個界面布局方式,如果不能應(yīng)用透明的外圓角,那么這種布局的可擴展性就會大受影響,不能最大化限度地得以推廣。本文就是要從根本上解決這個問題。
我知道這個問題的根源在于:中間的左右邊框列垂直同高產(chǎn)生的,因為它們的父級容器是box這個總?cè)萜,而不是一個獨立的容器,而底部的左右兩個角容器是向上負偏移到它們的上面的,遮擋住了背景色。所以當(dāng)圓角容器中的圖片采用半透明或透明的圖片時,其透明部分就會顯示出左右兩側(cè)邊框的圖片背景出來。
在制作前面的《牢不可破的九宮格布局》的模型時,我就已經(jīng)發(fā)現(xiàn)了這個問題,當(dāng)時制作圓角圖片也是采用的透明的圓角圖片,可是后來發(fā)現(xiàn)這個問題后,為了減少麻煩,我又將透明的圓角片的透明部分加上一個和總?cè)萜飨嗤谋尘吧,來避免了這個問題。但這個方法最終不是解決的終極辦法,在我們的日常工作中,采用半透明的圓角來定制界面是很有必要的,因此在那篇文章中僅僅只是逃避了問題,而沒有從根本上解決問題。在文章發(fā)布之后,終于有細心的朋友在試用之后,提出這個問題,哈哈,看看終于是無法偷懶來回避這個問題了。 知道了問題的根源后,要解決它也是一件簡單的事情。
因為我這篇文章是建立在《牢不可破的九宮格布局》這篇文章的基礎(chǔ)上的,如果還沒有看過那篇文章的朋友,不妨先看了它后再來看這篇文章。這將有助于你的消化!
看來,要解決這個問題,我需要將中間部分作一些結(jié)構(gòu)上的修改。因為我希望它的左右邊框容器是和內(nèi)容區(qū)是垂直同高的,也就是當(dāng)內(nèi)容區(qū)的文字內(nèi)容的高度發(fā)生變化時,其左右邊框的高度跟著同步調(diào)整其高度。這就是一個典型的三列同高布局。但與平時看到的三列布局有點不同的是,我希望中間的內(nèi)容區(qū)的寬度填滿整個中間的寬度,但它不是100%的寬度,而是100%減去左右兩列邊框的寬度,而這個寬度并不是一個百分比,它們都是有固定像素值的。這需要運用到我在上一篇文章中提到的方法來進行的解決。
為此我需要改變一下原來的結(jié)構(gòu):
【結(jié)構(gòu)層】
我給中間的左中右三個容器增加一個父級容器,并給它定義一個類名middle,那么,現(xiàn)在的中間區(qū)域的結(jié)構(gòu)應(yīng)該是這樣的:
<div class="middle"> <span class="m_l"></span> <span class="m_r"></span> <div class="context"> <p>內(nèi)容區(qū)< p> </div> </div>
出處:藍色理想
責(zé)任編輯:bluehearts
上一頁 下一頁 無hack并支持透明圓角框九宮格 [2]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|