網(wǎng)頁表格或div層在網(wǎng)頁中被撐開解決之道
在我們?cè)O(shè)計(jì)網(wǎng)頁的時(shí)候,總會(huì)遇到一些不愉快的事情,最常見的莫過于在后臺(tái)添加內(nèi)容后才發(fā)現(xiàn)顯示的頁面被撐開,導(dǎo)致網(wǎng)頁極度不美觀。以前大家基本上都是設(shè)計(jì)表格,網(wǎng)上自然不少對(duì)于的解決方法,如今還有div+css標(biāo)準(zhǔn)設(shè)計(jì),很少看到相關(guān)好的方法,現(xiàn)在瀟湘在線把平時(shí)找到的防止表格被撐開的好方法總結(jié)歸納一下,和大家一起分享。
一、直接在網(wǎng)頁里設(shè)置圖片大小,比如代碼:<img src="http://www.webjx.com/images/webjxcom.jpg" width="600" height="500" border="0">,這樣雖然可以限制了圖片大小,但是需要在上傳圖片之前手動(dòng)修改圖片大小,否則上傳的圖片就會(huì)變形。
二、使用如下代碼:<img src="http://www.webjx.com/images/webjxcom.jpg" onload="javascript:if(this.width>600}">
這種方法會(huì)在調(diào)用圖片的時(shí)候,自動(dòng)按比例縮小到指定的寬度,不會(huì)引起圖片的變形,并且也不會(huì)撐破表格,但是缺點(diǎn)是,如果圖片太大,在圖片下載過程中,也就是圖片顯示過程中,會(huì)先以圖片原大小顯示,這時(shí)就會(huì)撐破表格,頁面很難看,二當(dāng)圖片完全顯示后,圖片又會(huì)自動(dòng)縮小。
三、我們可以針對(duì)表格的屬性來限制大小防止被撐開,比如在<table width="600" border="0" cellpadding="0" cellspacing="0">里添加代碼“style="table-layout:fixed;word-wrap:break-word;word-break;break-all;"”,其中“table-layout:fixed; ”是為了將表格布局固定住,就可以有效地防止表格被撐開,“word-wrap:break-word; ”是控制換行的,也就是強(qiáng)制執(zhí)行換行,這個(gè)在文本內(nèi)容較多的情況下需要使用到,特別是重復(fù)的內(nèi)容出現(xiàn),不執(zhí)行換行的話,表格就被撐開了;而“word-break: break-all; ”可以解決IE的框架被英文(非亞洲語言文本行)撐開的問題,但是不會(huì)強(qiáng)制換行,只顯示表格寬度里的內(nèi)容。一般情況下只要用到“style="table-layout:fixed;word-wrap:break-word;"”就可以。當(dāng)然,上面調(diào)用的語句可以定義在css里,比如
table {
table-layout: fixed;
word-wrap:break-word;
} |
四、用css控制圖片自適應(yīng)大小,代碼如:
img {
max-width: 600px;
width:expression(this.width > 600 ? "600px" : this.width);
overflow:hidden;
} |
其中 max-width:600px; 在IE7、FireFox等其他非IE瀏覽器下最大寬度為600px,但在IE6中無效;width:600px; 在所有瀏覽器中圖片的大小為600px,當(dāng)圖片大小大于600px,自動(dòng)縮小為600px,在IE6中有效;而 overflow:hidden; 指將超出設(shè)置大小的部分隱藏,避免控制圖片大小失敗而引起的表格撐開變形。
五、最后總結(jié)一下最實(shí)用的代碼:
如果是表格,請(qǐng)用:
table {
table-layout: fixed;
word-break: break-all;
} |
如果是div層,請(qǐng)用:
div {
table-layout: fixed;
word-wrap: break-word;
width: 加上寬度;
overflow: hidden; (讓多出來的不顯示。)
} |
|