左中右3欄布局中最先顯示中欄內容的方法_Div+CSS教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
示例代碼 [www.wf0088.com]
今天KESO說,對于一個左中右3欄布局的頁面,比如home.donews.com,用戶最想看到的是中欄的信息,左右2欄其實網站的相關信息的導航入口,所以中欄信息是最重要的,應該在頁面顯示順序上優先于左右2欄。或者也可以這么說就是要將一個頁面的最重要的信息優先于頁面其他元素顯示,無論是3欄還是2欄布局,說得很對。
瀏覽器顯示頁面是一行一行的按順序執行代碼,也就是說寫在前面的先執行顯示,而對于左中右3欄布局的設計,代碼要么是從左-->中-->右來書寫,要么就是到過來從右-->中-->左來書寫,要做到KESO說的效果,那首先要書寫的是中欄的代碼。所以我首先定義了一個id=m的DIV,并且padding-left:150px,定義這個是為了給左欄留出140PX的顯示位置,然后再在這個DIV里面嵌套定義一個id=middle的DIV,我用position:absolute的屬性(絕對定位);然后再定義左欄left和右欄right。用position:absolute的屬性有一個不好的地方就是它象photoshop里的層一樣,它的自動延伸并不會帶動整個布局的延伸,所以會遮住一些頁面元素,比如我們通常會在網站的最下面寫上一些copyright的信息,假如用先顯示中欄的這種方法,假如不做處理的話,這些信息會被遮蓋住。處理的辦法就是使用javascript,讓左右2欄的高度隨中欄一起自動延伸。
下面是這個實現的代碼,有愛好的朋友可以COPY回去試試,也歡迎留言交流。
BTW:這次和劉韌,KESO改版DONEWS.COM,獲益菲淺,他們才是真正懂用戶需求,懂網站的人。
瀏覽器顯示頁面是一行一行的按順序執行代碼,也就是說寫在前面的先執行顯示,而對于左中右3欄布局的設計,代碼要么是從左-->中-->右來書寫,要么就是到過來從右-->中-->左來書寫,要做到KESO說的效果,那首先要書寫的是中欄的代碼。所以我首先定義了一個id=m的DIV,并且padding-left:150px,定義這個是為了給左欄留出140PX的顯示位置,然后再在這個DIV里面嵌套定義一個id=middle的DIV,我用position:absolute的屬性(絕對定位);然后再定義左欄left和右欄right。用position:absolute的屬性有一個不好的地方就是它象photoshop里的層一樣,它的自動延伸并不會帶動整個布局的延伸,所以會遮住一些頁面元素,比如我們通常會在網站的最下面寫上一些copyright的信息,假如用先顯示中欄的這種方法,假如不做處理的話,這些信息會被遮蓋住。處理的辦法就是使用javascript,讓左右2欄的高度隨中欄一起自動延伸。
下面是這個實現的代碼,有愛好的朋友可以COPY回去試試,也歡迎留言交流。
BTW:這次和劉韌,KESO改版DONEWS.COM,獲益菲淺,他們才是真正懂用戶需求,懂網站的人。
補充:
最近做一些試驗的時候,發現本文代碼最后的JS不是很好,想了個新的
這個是舊的:
示例代碼 [www.wf0088.com]
<script language="javascript">
if(document.getElementById("left").scrollHeight<document.getElementById("middle").scrollHeight || document.getElementById("right").scrollHeight<document.getElementById("middle").scrollHeight){
document.getElementById("left").style.height=document.getElementById("middle").scrollHeight "px"
document.getElementById("right").style.height=document.getElementById("middle").scrollHeight "px"
}
</script>
if(document.getElementById("left").scrollHeight<document.getElementById("middle").scrollHeight || document.getElementById("right").scrollHeight<document.getElementById("middle").scrollHeight){
document.getElementById("left").style.height=document.getElementById("middle").scrollHeight "px"
document.getElementById("right").style.height=document.getElementById("middle").scrollHeight "px"
}
</script>
這是新的:
示例代碼 [www.wf0088.com]
<script language="javascript">
var l=document.getElementById("left").scrollHeight
var m=document.getElementById("middle").scrollHeight
var r=document.getElementById("right").scrollHeight
layoutHeight=Math.max(l,m,r)
document.getElementById("left").style.height=layoutHeight "px"
document.getElementById("right").style.height=layoutHeight "px"
document.getElementById("middle").style.height=layoutHeight "px"
</script>
var l=document.getElementById("left").scrollHeight
var m=document.getElementById("middle").scrollHeight
var r=document.getElementById("right").scrollHeight
layoutHeight=Math.max(l,m,r)
document.getElementById("left").style.height=layoutHeight "px"
document.getElementById("right").style.height=layoutHeight "px"
document.getElementById("middle").style.height=layoutHeight "px"
</script>
完全代碼:
代碼調試框 [www.wf0088.com]
[ 可先修改部分代碼 再運行查看效果 ]
相關Div+CSS教程:
- 相關鏈接:
- 教程說明:
Div+CSS教程-左中右3欄布局中最先顯示中欄內容的方法。