來源
http://paranimage.com/css-float-attribute/
什么是CSS Float?
float 是 css 的定位屬性。在傳統(tǒng)的印刷布局中,文本可以按照需要圍繞圖片。一般把這種方式稱為“文本環(huán)繞”。在網(wǎng)頁設(shè)計中,應(yīng)用了CSS的float屬性的頁面元素就像在印刷布局里面的被文字包圍的圖片一樣。浮動的元素仍然是網(wǎng)頁流的一部分。這與使用絕對 定位的頁面元素相比是一個明顯的不同。絕對定位的頁面元素被從網(wǎng)頁流里面移除了,就像印刷布局里面的文本框被設(shè)置為無視頁面環(huán)繞一樣。絕對定位的元素不會 影響其它元素,其它元素也不會影響它,無論它是否和其它元素挨著。
像這樣在一個元素上用CSS設(shè)置浮動:
#sidebar { float: right; }
fload屬性有四個可用的值:Left 和Right 分別浮動元素到各自的方向,None (默認的) 使元素不浮動,Inherit 將會從父級元素獲取float值。
Float的用處
除了簡單的在圖片周圍包圍文字,浮動可用于創(chuàng)建全部網(wǎng)頁布局。

Float對小型的布局同樣有用。例如頁面中的這個小區(qū)域。如果我們在我們的小頭像圖片上使用Float,當(dāng)調(diào)整圖片大小的時候,盒子里面的文字也將自動調(diào)整位置:

同樣的布局可以通過在外容器使用相對定位,然后在頭像上使用絕對定位來實現(xiàn)。這種方式中,文本不會受頭像圖片大小的影響,不會隨頭像圖片的大小而有相應(yīng)變化。

清除Float
清除(clear)是浮動(float)的相關(guān)屬性.一個設(shè)置了清除Float的元素不會如浮動所設(shè)置的一樣,向上移動到Float元素的邊界,而是會忽視浮動向下移動。如下,一圖頂千言。

上例中,側(cè)欄向右浮動,并且短于主內(nèi)容區(qū)域。頁腳(footer)于是按浮動所要求的向上跳到了可能的空間。要解決這個問題,可以在頁腳(footer)上清除浮動,以使頁腳(footer)待在浮動元素的下面。

清除(clear)也有4個可能值。最常用的是 both,清楚左右兩邊的浮動。left 和 right 只能清楚一個方向的浮動。none 是默認值,只在需要移除已指定的清除值時用到。inherit 應(yīng)該時第五個值,不過很奇怪的是 IE 不支持(這個不奇怪吧,IE 從來都這么特立獨行吧 -糖伴西紅柿注)。只清除左邊或右邊的浮動,實際中很少見,不過絕對有他們的用處。

偉大的塌陷
使用浮動(float)的一個比較疑惑的事情是他們怎么影響包含他們的父元素的。如果父元素只包含浮動元素,那么它的高度就會塌縮為零。如果父元素不包含任何的可見背景,這個問題會很難被注意到,但是這是一個很重要的問題。

塌陷的直觀對立面更不好,看看下面的情況:

當(dāng)上面的塊級元素自動擴展以適應(yīng)浮動元素時,段落間的文本流中會出現(xiàn)非自然的空白換行,而且沒有有效的方法來修正這個問題。對于這種情況,設(shè)計師的抱怨會更甚于對塌陷的抱怨(沒理解,不是設(shè)計完成之后才會進行頁面編碼嗎?- 糖伴西紅柿)。
為了防止怪異的布局和跨瀏覽器的問題,塌陷問題幾乎總是被要處理的。我們在容器中的浮動元素之后,容器結(jié)束之前來清除浮動。
清除浮動的技術(shù)
如果你很明確的知道接下來的元素會是什么,可以使用 clear:both; 來清除浮動。這個方法很不錯,它不需要 hack,不添加額外的元素也使得它有良好的語義性。當(dāng)然事情并不是都可以這樣解決的,工具箱中還是需要另外幾個清除浮動的工具。
空div方法從字面來看,是一個空的 div。
。有時可能會用
或者一些其他元素,但是 div 是最常用的,因為它沒有瀏覽器默認樣式;沒有特殊功能,而且一般不會被 css 樣式化。這個方法因為只是為了表現(xiàn),對頁面沒有上下文涵義而被純語義論者嘲笑。誠然,從嚴(yán)格的角度來說他們是對的,但是這個方法有效而且沒有任何傷害。
overflow 方法在父元素上設(shè)置 overflow 這個 css 屬性。如果父元素的這個屬性設(shè)置為 auto 或者 hidden,父元素就會擴展以包含浮動。這個方法有著較好的語義性,因為他不需要額外元素。但是,如果需要增加一個新的 div 來使用這個方法,其實就和空 div 方法一樣沒有語義了。而且要記住,overflow 屬性不是為了清除浮動而定義的。要小心不要覆蓋住內(nèi)容或者觸發(fā)了不需要的滾動條。
簡單清除方法使用了一個聰明的 css 偽選擇符(:after)來清除浮動。比起在父元素上設(shè)置 overflow,只需要給它增加一個額外的類似于”clearfix”的類。這個類使用如下 css:
.clearfix:after {
content: ".";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
這會在清除浮動的父元素之后應(yīng)用一點看不見的內(nèi)容。這不是全部內(nèi)容,還需要一些額外的代碼來適應(yīng)那些老舊的瀏覽器。
不同的情況需要不同的浮動清除方法。以一個具有不同樣式塊的網(wǎng)格為例。

為了從視覺上較好的把相似的塊聯(lián)系起來,需要在必要的地方開啟新行,這里是顏色改變的地方。如果每個顏色組都有一個父元素的話,我們可以使用 overflow 或者 簡單清除方法。或者,在每組之間用一個空div方法。額外的 div 之前并不存在,可以自己試試來看看哪個方法好。

浮動的問題
浮動因脆弱而飽受詬病。大多數(shù)的脆弱性來自于 IE6 及其一系列的浮動相關(guān) bug。因為越來越多的設(shè)計師不再支持 IE6 了,你也可以不關(guān)注它了。不過對于那些要關(guān)注的人來說,這里有些大概。
推倒是浮動元素內(nèi)的元素(大多是圖片)比浮動元素本身寬造成的現(xiàn)象。大多數(shù)的瀏覽器會在浮動之外渲染圖片,但是不會有伸出來的部分影響其他布局。IE 會擴展浮動來包含圖片,精彩大幅度地影響布局。一個普遍的例子是突破伸出主內(nèi)容之外把側(cè)欄推到下面。
快速修正:確保不是圖片造成這種情況,使用 overflow:hidden 來切除多余的部分。
雙倍邊距bug處理 IE6 時,另一個需要記住的事情是,如果在和浮動方向相同的方向上設(shè)置外邊距(margin),會引發(fā)雙倍邊距。快速修正:給浮動設(shè)置 display:inline; 而且不用擔(dān)心,它依然是塊級元素。
3像素間距是指挨著浮動元素的文本會神奇的被踢出去3像素,好像浮動元素的周圍有一個奇怪的力場一樣。快速修正:在受影響的文本上設(shè)置寬度或高度。
IE7 中,底邊距 bug是當(dāng)浮動父元素有浮動子元素時,這些子元素的底邊距會被父元素忽略掉。快速修正:用父元素的底內(nèi)補白(padding)代替。
來源:
http://www.cnblogs.com/gsk99/archive/2011/06/14/2080573.htmloracle 截取字符(substr),檢索字符位置(instr) case when then else end語句使用 收藏
常用函數(shù):substr和instr
1.SUBSTR(string,start_position,[length])
求子字符串,返回字符串
解釋:string 元字符串
start_position 開始位置(從0開始)
length 可選項,子字符串的個數(shù)
For example:
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG", 2); //返回:CDEFG,截取從C開始之后所有字符
substr("ABCDEFG", 0, 3);
//返回:ABC,截取從A開始3個字符
substr("ABCDEFG", 0, 100);
//返回:ABCDEFG,100雖然超出預(yù)處理的字符串最長度,但不會影響返回結(jié)果,系統(tǒng)按預(yù)處理字符串最大數(shù)量返回。
substr("ABCDEFG",
0, -3); //返回:EFG,注意參數(shù)-3,為負值時表示從尾部開始算起,字符串排列位置不變。
2.INSTR(string,subString,position,ocurrence)查找字符串位置
解釋:string:源字符串
subString:要查找的子字符串
position:查找的開始位置
ocurrence:源字符串中第幾次出現(xiàn)的子字符串
For example:
INSTR('CORPORATE FLOOR','OR', 3,
2)中,源字符串為'CORPORATE FLOOR', 目標(biāo)字符串為'OR',起始位置為3,取第2個匹配項的位置;返回結(jié)果為 14 '
來源:
http://www.cr173.com/html/13126_1.html
jquery中對 iframe的操作
我們先看一下 JQUERY中的對像 contents() 的幫助文件
contents()
概述
查找匹配元素內(nèi)部所有的子節(jié)點(包括文本節(jié)點)。如果元素是一個iframe,則查找文檔內(nèi)容
示例
描述:
查找所有文本節(jié)點并加粗
HTML
代碼:
<p>Hello <a >John</a>, how are
you doing?</p>jQuery
代碼:
$("p").contents().not("[nodeType=1]").wrap("<b/>");結(jié)果:
<p><b>Hello</b>
<a >John</a>, <b>how are you
doing?</b></p>描述:
往一個空框架中加些內(nèi)容
HTML 代碼:
<iframe
src="/index-blank.html" width="300" height="100"></iframe>jQuery
代碼:
$("iframe").contents().find("body")
.append("I'm in an iframe!");
去掉iframe 的邊界 frameborder="0"
1 內(nèi)容里有兩個ifame
<iframe id="leftiframe"...</iframe>
<iframe
id="mainiframe..</iframe>
leftiframe中jQuery改變mainiframe的src代碼:
$("#mainframe",parent.document.body).attr("src","
2 如果內(nèi)容里面有一個ID為mainiframe的ifame
<iframe
id="mainifame"...></ifame>
ifame包含一個someID
<div
id="someID">you want to get this content</div>
得到someID的內(nèi)容
$("#mainiframe").contents().find("someID").html()html 或者
$("#mainiframe").contains().find("someID").text()值
2 如上面所示
leftiframe中的jQuery操作mainiframe的內(nèi)容someID的內(nèi)容
$("#mainframe",parent.document.body).contents().find("someID").html()或者
$("#mainframe",parent.document.body).contents().find("someID").val()
Jquery獲取到 iframe 所屬的父窗口的里面的id為xuan的 標(biāo)簽的
$(window.parent.document).find("#xuan").html(x);//
//js創(chuàng)建 元素 并追加到 父元素的 Iframe中的 元素中的dom操作問題:
詳見鏈接:http://www.cssrain.cn/?p=1376
iframe中直接調(diào)用父窗口中的方法:假設(shè)父窗口有個add的方法
self.parent.add();
===============================================================
IE和Firefox對iframe document對象的差異性
在IE6、IE7中,我們可以使用document.frames[ID].document來訪問iframe子窗口中的document對象,可是這是不符合W3C標(biāo)準(zhǔn)的寫法,也是IE下獨有的方法,在Firefox下卻不可以使用,F(xiàn)irefox下使用的是符合W3C標(biāo)準(zhǔn)的document.getElementById(ID).contentDocument方法,今天我在寫實例的時候,通過IE8進行測試,IE8也是使用的符合W3C標(biāo)準(zhǔn)的
document.getElementById(ID).contentDocument 方法。所以我們可以寫一個在IE和Firefox下通用的獲取iframe
document對象的函數(shù)—getIFrameDOM:
functiongetIFrameDOM(id){returndocument.getElementById(id).contentDocument||document.frames[id].document;}
P.S.:如果我們要獲取iframe的window對象,而不是document對象,可以使用document.getElementById(ID).contentWindow的方法。這樣我們就可以使用子窗口中的window對象了,比如子窗口中的函數(shù)。
在子窗口使用父窗口的函數(shù),獲取父窗口document對象
在子窗口中,我們可以通過parent就可以獲得父窗口的window對象,如果假如我們在父窗口有一個函數(shù)為getIFrameDOM,我們可以通過parent.getIFrameDOM來調(diào)用,同理我們使用parent.document就可以在子窗口中訪問父窗口的document對象了。
使用JavaScript進行iframe的DOM操作實例
首先,我們在父窗口中引入兩個iframe子窗口,ID分別為wIframeA、wIframeB,地址分別為:a.html、b.html。
父窗口主要HTML代碼如下:
<div id="pHello" style="margin:10px
auto;width:360px;height:30px;">此處可通過iframeB的JavaScript函數(shù),來替換哦~</div>
<iframe id="wIframeA" name="myiframeA" src="a.html" scrolling="no"
frameborder="0"></iframe> <iframe id="wIframeB" name="myiframeB"
src="b.html" scrolling="no" frameborder="0"></iframe>
在子窗口A、B中我放了一個ID為hello的P,以方便我們進行DOM操作演示,子窗口A、B的主要HTML代碼如下:
<p id="hello">Hello World!</p>
1、在iframe中,父窗口操作子窗口的DOM
建好了父窗口跟子窗口,這樣我們可以在父窗口中,通過以下iframeA()函數(shù)來把子窗口A更換P的背景顏色為紅色:
functioniframeA(){//給子窗口A改變ID為hello的背景色vara=getIFrameDOM("wIframeA");a.getElementById('hello').style.background="red";}functiongetIFrameDOM(id){//兼容IE、Firefox的iframe
DOM獲取函數(shù)returndocument.getElementById(id).contentDocument||document.frames[id].document;}
2、在iframe中,子窗口操作父窗口的DOM
在子窗口中,我們可以方便的進行父窗口DOM操作,只需要在DOM操作之前添加亦歌parent對象的方法就可以啦,如:在上面的子窗口B中,我們可以使用下面的代碼把,父窗口中ID為“pHello”的內(nèi)容給替換掉:
-------------------
3、在iframe中,子窗口A操作子窗口B的DOM
既然子窗口可以操作父窗口的window對象和document對象,那么子窗口也可以操作另外的子窗口的DOM啦~斷橋殘雪在子窗口B中可以直接使用parent直接調(diào)用父窗口中的getIFrameDOM函數(shù)獲得子窗口A的document對象,這樣要修改子窗口A的內(nèi)容就很簡單啦,如以下的代碼:
vara=parent.getIFrameDOM("wIframeA");
===================================================================================
一個iframe高度自動變化的問題搞了我半天,網(wǎng)上找了下資料,不是很好,結(jié)合了一下jquery(版本1.3.2),4行代碼即可,完美兼容IE、Firefox、Opera、Safari、Google
Chrome,js如下:
function heightSet(thisFrame){
if($.browser.mozilla || $.browser.msie){
bodyHeight
=window.frames["thisFrameName"].document.body.scrollHeight;
}else{
bodyHeight
=thisFrame.contentWindow.document.documentElement.scrollHeight;
//這行可代替上一行,這樣heightSet函數(shù)的參數(shù)可以省略了
//bodyHeight =
document.getElementById("thisFrameId").contentWindow.document.documentElement.scrollHeight;
}
document.getElementById("thisFrameId").height=bodyHeight;
}
<iframe id="mainFrame" name="mainFrame" frameborder="0"
scrolling="no" src=""onload="heightSet(this)">
</iframe>
引用
this關(guān)鍵字在各種瀏覽器似乎有不同的意思,FF和IE必須要通過iframe的名字去得到內(nèi)部頁面高度,而其他瀏覽器則可以用this或ID
引用
都在說一個異步的問題,如果你ajax用得特別多,但又不想每次都去設(shè)置,那動態(tài)改變iframe肯定達不到你的代碼清潔要求,沒辦法,要么你就脫離iframe。我只能說說一般處理方式,畢竟ajax或動態(tài)表單在一般應(yīng)用中只占小數(shù)比例,異步請求后只需在后面加上:
parent.window.heightSet();
CSS定義字體行間距 line-height:xxpx;
CSS定義字體間距
下面我們講述一下CSS的文本屬性,還是先來看一下文本屬性的詳細列表:
屬性 | 屬性含義 | 屬性值 |
Word-spacing | 定義了各個單詞之間的間距 | Normal<length>必須以長度為單位 |
Letter-spacing | 定義了每個字母之間的間距 | 同上 |
Text-decoration | 定義文字的“裝飾”樣式 | None|underline|overline| line-through|blink |
Vertical-align | 定義了元素在垂直方向 上的位置 | Baseline|sub|super|top|text-top|middle|bottom|text-bottom <percentage> |
text-transform | 使文本轉(zhuǎn)換為其它形式 | Capitalize|uppercase|lowercase|none |
Text-align | 定義了文字的對齊方式 | Left|right|center|justify |
Text-indent | 定義了文本的首行的縮進方式 | <length>|<percentage> |
Line-height | 定義了文本的行高 | Normal|<unmber>|<length>| <percentage> |
我們可以從表中看到在這里可以定義文本的文字間距、字母間距、裝飾、對齊方式、縮進方式和行高等屬性。
舉個例子來看看吧:
CODE:
<p style="letter-spacing:5px;text-align:justify;text-indent: 4em;line-height:17pt">我們看到經(jīng)過文本屬性處理的文本字與字之間多了間距,行與行之間多了行高,對齊方式變成了兩端對齊,并且段首又多縮進了兩格。</p>
letter-spacing設(shè)置了字間距為5px,其中5px為一個長度單位;text-align設(shè)置了對齊方式為兩端對齊;indent設(shè)置了縮進格為4em;line-height設(shè)置了行高為17pt
從上面的例子,我們可以看出利用CSS的文本屬性可以方便的對頁面中的文本進行排版。
來源:
http://www.cnblogs.com/binaryworms/archive/2010/03/25/1695339.html
HTML小技巧將table邊框改為細線
HTML制作新手在用TABLE表格時,會碰到如何改變邊線粗線,因為默認的TABLE邊線設(shè)置即使是1px 是很粗的。因此會使用其他一些方法來制作出細線邊框,這里介紹一種利用CSS來實現(xiàn)細線的方法,很有效,而且兼容所有瀏覽器。
細線表格如果單純設(shè)置邊框,很難保證瀏覽器兼容。常見的做法是利用 CSS2 的 "border-collapse:collapse;" 屬性合并表格邊框;并對 table 元素設(shè)置左邊框和上邊框,對 th 和 td 元素設(shè)置右邊框和下邊框。
HTML:
<table> <tr> <th>table head (row1, col1)</th> <th>table head (row1, col2)</th> <th>table head (row1, col3)</th> </tr> <tr> <td>table data (row1, col1)</td> <td>table data (row1, col2)</td> <td>table data (row1, col3)</td> </tr> <tr> <td>table data (row2, col1)</td> <td>table data (row2, col2)</td> <td>table data (row2, col3)</td> </tr>
</table>
CSS:
table{border-collapse:collapse;border-spacing:0;border-left:1px solid #888;border-top:1px solid #888;background:#efefef;}
th,td{border-right:1px solid #888;border-bottom:1px solid #888;padding:5px 15px;}
th{font-weight:bold;background:#ccc;}
來源:
http://zhidao.baidu.com/question/263160712.html
css排版時出現(xiàn):里面的div設(shè)置margin-top值時外面div會向下移動相應(yīng)距離這是為什么 請哪位高手幫幫忙
<body>
<div class="logon">
<div class="log_bk">
</div>
</div>
</body>
body { margin:0 auto; padding:0px; background:#0A76B0;}
#logon{ background:url(../images/logon-bk.jpg) no-repeat left top;
height:865px; width:1251px;}
.log_bk{ background:url(../images/01.png) no-repeat left top; height:380px;
height:270px; margin:300px 0 180px 460px;}
因為背景是圖案所以要設(shè)置高度,我把#logon的背景定位在頂部也不行。
滿意回答 設(shè)置logon的padding: 1px
因為logon和log_bk垂直方向的margin合并了,如果設(shè)置了logon的padding為1px就可以避免margin合并。
追問
好了,剛才把padding值加到里面的div了,不過兩個div的margin值為什么會合并呢?
回答
恩,剛才我寫錯了,寫成里面的了。。
這個是css標(biāo)準(zhǔn)規(guī)定的,垂直方向的margin會合并。
比如你有很多段落,margin是10px,其實第一段上面的margin和最后一段下面的margin是10px,且段與段之間的margin也是10px,css標(biāo)準(zhǔn)就是為了保持這個margin一致才規(guī)定垂直方向margin要合并。
margin合并時會取最大的那個margin,所以合并后logon的margin-top也成了300px了。
來源
http://www.qianduan.net/css-to-achieve-the-vertical-center-of-the-five-kinds-of-methods.html
利用 CSS 來實現(xiàn)對象的垂直居中有許多不同的方法,比較難的是選擇那個正確的方法。我下面說明一下我看到的好的方法和怎么來創(chuàng)建一個好的居中網(wǎng)站。
使用 CSS 實現(xiàn)垂直居中并不容易。有些方法在一些瀏覽器中無效。下面我們看一下使對象垂直集中的5種不同方法,以及它們各自的優(yōu)缺點。(可以看看測試頁面,有簡短解釋。)

方法一
這個方法把一些 div 的顯示方式設(shè)置為表格,因此我們可以使用表格的 vertical-align property 屬性。
<div id="wrapper">
<div id="cell">
<div class="content">
Content goes here</div>
</div>
</div>
#wrapper {display:table;}
#cell {display:table-cell; vertical-align:middle;}
優(yōu)點:
content 可以動態(tài)改變高度(不需在 CSS 中定義)。當(dāng) wrapper 里沒有足夠空間時, content 不會被截斷
缺點:
Internet Explorer(甚至 IE8 beta)中無效,許多嵌套標(biāo)簽(其實沒那么糟糕,另一個專題)
方法二:
這個方法使用絕對定位的 div,把它的 top 設(shè)置為 50%,top margin 設(shè)置為負的 content 高度。這意味著對象必須在 CSS 中指定固定的高度。
因為有固定高度,或許你想給 content 指定 overflow:auto,這樣如果 content 太多的話,就會出現(xiàn)滾動條,以免content 溢出。
<div class="content">
Content goes here</div>
#content {
position:absolute;
top:50%;
height:240px;
margin-top:-120px; /* negative half of the height */
}
優(yōu)點:
適用于所有瀏覽器
不需要嵌套標(biāo)簽
缺點:
沒有足夠空間時,content 會消失(類似div 在 body 內(nèi),當(dāng)用戶縮小瀏覽器窗口,滾動條不出現(xiàn)的情況)
方法三
這種方法,在 content 元素外插入一個 div。設(shè)置此 div height:50%; margin-bottom:-contentheight;。
content 清除浮動,并顯示在中間。
<div id="floater"></div>
<div id="content">
Content here
</div>
#floater {float:left; height:50%; margin-bottom:-120px;}
#content {clear:both; height:240px; position:relative;}
優(yōu)點:
適用于所有瀏覽器
沒有足夠空間時(例如:窗口縮小) content 不會被截斷,滾動條出現(xiàn)
缺點:
唯一我能想到的就是需要額外的空元素了(也沒那么糟,又是另外一個話題)
方法四
這個方法使用了一個 position:absolute,有固定寬度和高度的 div。這個 div 被設(shè)置為 top:0; bottom:0;。但是因為它有固定高度,其實并不能和上下都間距為 0,因此 margin:auto; 會使它居中。使用 margin:auto;使塊級元素垂直居中是很簡單的。
<div id="content">
Content here</div>
#content {
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
height:240px;
width:70%;
}
優(yōu)點:
簡單
缺點:
IE(IE8 beta)中無效
無足夠空間時,content 被截斷,但是不會有滾動條出現(xiàn)
方法五
這個方法只能將單行文本置中。只需要簡單地把 line-height 設(shè)置為那個對象的 height 值就可以使文本居中了。
<div id="content">
Content here</div>
#content {height:100px; line-height:100px;}
優(yōu)點:
適用于所有瀏覽器
無足夠空間時不會被截斷
缺點:
只對文本有效(塊級元素?zé)o效)
多行時,斷詞比較糟糕
這個方法在小元素上非常有用,例如使按鈕文本或者單行文本居中。
哪個方法?
我最喜歡的是方法三,缺點不多。因為 content 會清除浮動,所以可以在它上面放置別的元素,并且當(dāng)窗口縮放時,
居中的 content 不會把另外的元素蓋住。看例子。
<div id="top">
<h1>Title</h1>
</div>
<div id="content">
Content Here</div>
#floater {float:left; height:50%; margin-bottom:-120px;}
#top {float:right; width:100%; text-align:center;}
#content {clear:both; height:240px; position:relative;}
現(xiàn)在你知道是怎么回事了,現(xiàn)在我們開始創(chuàng)建一個簡單但是有趣的網(wǎng)站。最終的樣子是這樣的:

步驟一
以語義化標(biāo)簽開始是很好的。下面是我們的頁面構(gòu)成:
#floater/*把 content 置中*/
#contred/*centre 盒*/
#side
#logo
#nav/*無序列表*/
#content
#bottom/*放置版權(quán)等*/
這是我用到的 xhtml 代碼:
A Centred Company
<div id="centered">
<div id="side">
<div id="logo">
<strong><span>A</span> Company</strong></div>
<ul id="nav">
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">About</a></li>
</ul>
</div>
<div id="content">
<h1>Page Title</h1>
Holisticly re-engineer value-added outsourcing after process-centric collaboration and idea-sharing.
Energistically simplify impactful niche markets via enabled imperatives.
Holisticly predominate premium innovation after compelling scenarios.
Seamlessly recaptiualize high standards in human capital with leading-edge manufactured products.
Distinctively syndicate standards compliant schemas before robust vortals.
Uniquely recaptiualize leveraged web-readiness vis-a-vis out-of-the-box information.
<h2>Heading 2</h2>
Efficiently embrace customized web-readiness rather than customer directed processes.
Assertively grow cross-platform imperatives vis-a-vis proactive technologies.
Conveniently empower multidisciplinary meta-services without enterprise-wide interfaces.
Conveniently streamline competitive strategic theme areas with focused e-markets.
Phosfluorescently syndicate world-class communities vis-a-vis value-added markets.
Appropriately reinvent holistic services before robust e-services.</div>
</div>
<div id="bottom">
Copyright notice goes here</div>
步驟二:
現(xiàn)在我們開始用一些基本的 CSS 來給頁面添加樣式。把以下代碼放入在我們的 html 頁面頂部被引入的 style.css。
html, body {
margin:0; padding:0;
height:100%;
}
body {
background:url('page_bg.jpg') 50% 50% no-repeat #FC3;
font-family:Georgia, Times, serifs;
}
#floater {
position:relative; float:left;
height:50%; margin-bottom:-200px;
width:1px;
}
#centered {
position:relative; clear:left;
height:400px; width:80%; max-width:800px; min-width:400px;
margin:0 auto;
background:#fff;
border:4px solid #666;
}
#bottom {
position:absolute;
bottom:0; right:0;
}
#nav {
position:absolute; left:0; top:0; bottom:0; right:70%;
padding:20px; margin:10px;
}
#content {
position:absolute; left:30%; right:0; top:0; bottom:0;
overflow:auto; height:340px;
padding:20px; margin:10px;
}
在我們能夠把 content 垂直居中之前, body 和 html 應(yīng)該被拉伸到 100% 的高度。由于 height
在 padding 和 margin 之內(nèi),所以我們要把它們設(shè)成 0 以防止因為很小的 margin 出現(xiàn)滾動條。
floater 的 margin-bottom 是 content 高度(400px)的一半, -200px。
現(xiàn)在可以看到一下效果:

#centred 的寬度為 80%。這可以市網(wǎng)頁隨著顯示器的大小而變化。一般稱作流體布局。設(shè)置 min-width 和
max-width 以避免網(wǎng)頁過大或者過小。 但是 IE 不支持 min/max-width。顯然可以用固定寬度來代替。
因為 #centred 是相對定位的,在它里面我們可以用絕對定位來定位元素。設(shè)置 #content 的 overflow:auto;
以避免滾動條的出現(xiàn)。IE 不怎么喜歡 overflow:auto; 除非我們指定高度(不是 top 和 bottom 的定位,也不是 %)
因此我們給它指定高度。
步驟三
最后要做的就是再添加點樣式,讓頁面好看點。從目錄開始吧。
#nav ul {
list-style:none;
padding:0; margin:20px 0 0 0; text-indent:0;
}
#nav li {
padding:0; margin:3px;
}
#nav li a {
display:block; background-color:#e8e8e8;
padding:7px; margin:0;
text-decoration:none; color:#000;
border-bottom:1px solid #bbb;
text-align:right;
}
#nav li a::after {
content:'»'; color:#aaa; font-weight:bold;
display:inline; float:right;
margin:0 2px 0 5px;
}
#nav li a:hover, #nav li a:focus {
background:#f8f8f8;
border-bottom-color:#777;
}
#nav li a:hover::after {
margin:0 0 0 7px; color:#f93;
}
#nav li a:active {
padding:8px 7px 6px 7px;
}
需要注意的是 #centred 的圓角。 CSS3 中,應(yīng)該有 border-radius 屬性來設(shè)定圓角的半徑(可參考 CSS3之旅: border-radius(圓角) – 糖伴西紅柿)。現(xiàn)在的
流行的瀏覽器都還不支持,除非用 -moz(Molilla Firefox) 或者 -webit(Safari/Webkit) 前綴.

兼容性注意事項
如你所想,IE 是唯一添麻煩的瀏覽器。
#floater 必須指定寬度,否則在任意版本 IE 中,它都啥也不干
IE 6 中目錄被周圍太多的空間打斷
IE 8 有多余空間(作者遺漏)
更多的想法
利用居中的網(wǎng)頁可以做很多有意思的事情。我在重新設(shè)計 SWFObject Generator 2.0 (使用 SWFObject2.0 生成代碼)使用了這個想法。這里有另外的一個想法。
資料
以下是我參考的一些資料,推薦閱讀。
Understanding vertical-align, or “How (Not) To Vertically Center Content”
Vertical centering using CSS
Vertical Centering in CSS
糖伴西紅柿說:
水平居中經(jīng)常用,其實垂直居中也很有用的。平時用的最多的應(yīng)該是方法五了,算是個小技巧吧。
來源:http://www.cnblogs.com/yangzhixiao/archive/2011/07/22/2113731.html
代碼如下<MARQUEE>滾動文字</MARQUEE>
<marquee style="WIDTH: 388px; HEIGHT: 200px" scrollamount="2" direction="up" >
< div align="left" ><br />
< /div >
< center ><font face="黑體" color="#008000" size="4" ></font ></center >
< div align="left" ><br />
< /div >
< center >
< p ><font color="#ff6600" size="4" >滾動文字</font ></p >
< p ><font color="#ff4500" size="4" >滾動文字</font ></p >
< p ><font color="#ff3300" size="4" >滾動文字</font ><br />
< br />
< /p >
< /marquee >
marquee 參數(shù):
BGColor:滾動文本框的背景顏色。
Direction:滾動方向設(shè)置,可選擇Left、Right、up和down。
scrolldelay:每輪滾動之間的延遲時間,越大越慢。
scrollamount:一次滾動總的時間量,數(shù)字越小滾動越慢。
Behaviour:滾動的方式設(shè)置,三種取值:Scroll(循環(huán)滾動) lide(單次滾動)、Alternate(來回滾動)。
Align:文字的對齊方式設(shè)置。可選擇Middle(居中)、Bottom(居下)還是Top(居上)。
Width:滾動文本框的寬度,輸入一個數(shù)值后從后面的單選框選擇in Pixels(按像素)或是in Percent(按百分比)。
Height:滾動文本框的高度,輸入一個數(shù)值后從后面的單選框選擇in Pixels(按像素)或是in Percent(按百分比)。
loop:滾動次數(shù)。默認為infinite
hspace、vspace:前后、上下的空行。
滾動字幕會讓很多人感到興奮,特別是第一次使用滾動字幕時,會愛不釋手。滾動字幕我也做得不少了,對它也不會興奮了,所以現(xiàn)在也用得不多了。有不少朋友常 問到這是怎么做的,現(xiàn)在做一個詳細的專題,讓你更全面地了解一下。
滾動字幕在FrontPage的組件里有,但是FrontPage這個軟件只能支持單行文字,一出現(xiàn)多行文字它就無能為力了,而且它只能支持一行滾動! (如果出現(xiàn)只能滾動一行的情況,解決辦法是把這段代碼嵌入到JavaScript的document.write里面,請看下面例d的詳細說 明)Dreamweaver也只能用編寫HTML代碼的方法。所以強烈建議用記事本打開網(wǎng)頁源代碼來編輯。
1.建立第一個滾動字幕。代碼:
<marquee scrollAmount=2 width=300>靚麗風(fēng)景線</marquee>
效果如: 靚麗風(fēng)景線
2.各參數(shù)詳解:
a)scrollAmount。它表示速度,值越大速度越快。如果沒有它,默認為6,建議設(shè)為1~3比較好。
b)width和height,表示滾動區(qū)域的大小,width是寬度,height是高度。特別是在做垂直滾動的時候,一定要設(shè)height的值。
c)direction。表示滾動的方向,默認為從右向左:←←←。可選的值有right、down、up。滾動方向分別為:right表示→→→,up 表示↑,down表示↓。
d)scrollDelay,這也是用來控制速度的,默認為90,值越大,速度越慢。通常scrollDelay是不需要設(shè)置的。
e)behavior。用它來控制屬性,默認為循環(huán)滾動,可選的值有alternate(交替滾動)、slide(幻燈片效果,指的是滾動一次,然后停止 滾動)
3.實例:
a)如何給滾動字幕加超鏈接?這跟平時的超鏈接是完全一樣的。只要在文字外面加上<a href=***>和</a>就可以了。如下效果,代碼是<marquee scrollAmount=2 width=300><a href=http://www.cctv.com>中央電視臺</a></marquee>,點擊中央電視臺就可以進入 了:
中央電視臺
b)如何制作當(dāng)鼠標(biāo)停留在文字上,文字停止?jié)L動?
代碼如:
<marquee scrollAmount=2 width=300 onmouseover=stop() onmouseout=start()>文字內(nèi)容</marquee>
效果如:
文字內(nèi)容
c)交替效果。代碼如:
<marquee scrollAmount=2 width=99 behavior=alternate>文字內(nèi)容</marquee>
效果如:
文字內(nèi)容
d)多行文本向上滾動。代碼如:
<marquee scrollAmount=2 width=300 height=160 direction=up>·早晨好啊!<br>·空氣好清新啊<br>·你還好嗎<p>·<a href=http://www.cctv.com>靚麗風(fēng)景線</a></marquee>
效果如:
·早晨好啊!
·空氣好清新啊
·你還好嗎
·靚麗風(fēng)景線
·注意:如果你的網(wǎng)頁經(jīng)過了FrontPage編輯,保存之后,只能滾動一行,這時候你發(fā)現(xiàn)你原 來的代碼順序已經(jīng)變了,My god!解決的辦法是,找出原來的代碼,把它嵌入到JavaScript的document.write中即可,上述代碼寫為:
<script>document.write('<marquee scrollAmount=2 width=300 height=160 direction=up>·早晨好啊!<br>·空氣好清新啊<br>·你還好嗎 <p>·<a href=http://www.cctv.com>靚麗風(fēng)景線</a></marquee>')< /script>
e)改變滾動字幕的顏色?可以用樣式表來控制。如下效果,代碼是<marquee scrollAmount=2 width=300><a style=color:CC6600>你還好嗎</a></marquee>。
你還好嗎
圖片滾動
用<img src=相對路徑/文件名>的語句。并且要注意圖片名不要中文,要注意區(qū)分英文大小寫。
圖片做超鏈接
用<a href=>和</a>把<img>包圍,并且img必須設(shè)border=0,否則圖片會出現(xiàn)藍框。正確的例子如:& lt;a href=http://www.webshu.com><img src=http://www.cnblogs.com/j/01.jpg border=0></a>
其中a href=表示超鏈接,這是最常用的。練習(xí)的方法也很簡單,就是平時用FP或DW做網(wǎng)頁的時候,要多查看源代碼。
多張圖片排列滾動
通常圖片和圖片之間用<br>(回行)或<p style=margin-top:9>(精確調(diào)整圖片間的距離)來鏈接。也可以把你的圖片先用表格排版,然后把這個表格的所有語句也加入到 marquee中,讓這個表格來滾動。
代碼<script>document.write('<marquee scrollAmount=2 width=340 height=160 direction=up onmouseover=stop() onmouseout=start()><a href=http://www.webshu.com><img src=http://www.cnblogs.com/j/01.jpg border=0></a></marquee>')</script>
來源:
http://www.aygfsteel.com/jlins-you/archive/2012/06/22/381292.html
json除了可以用于前臺傳遞,還可用于后臺之間傳遞。它可以傳遞List,Map,Bean等類型的數(shù)據(jù)。
例如: User u1=new User();
u1.setUsername("zy");
u1.setPassword("123");
User
u2=new
User();
u2.setUsername("msl");
u2.setPassword("456");
List list =
new ArrayList(); //把兩個對象放進list中
list.add(u1);
list.add(u2);
JSONArray jsonArray = JSONArray.fromObject( list ); //把list放進json數(shù)組
Map map = new HashMap();
map.put("message", "111");
map.put("users", jsonArray); //把json數(shù)組做為一個值放進Map中
JSONObject jsonObject =
JSONObject.fromObject(map); //把map放進json對象中
PrintWriter out =
response.getWriter();
out.print(jsonObject); //
傳遞json
傳遞的json格式為:
{"message":"111","users":[{"password":"123","username":"zy"},{"password":"456","username":"msl"}]}
在接收端的java文件中取:
returnJson是從輸入流中得到的json格式的字符串。輸出為:
{"message":"111","users":[{"password":"123","username":"zy"},
{"password":"456","username":"msl"}]}
if(returnJson !=null&& returnJson !=""){
String
strJson = returnJson.replace("?(", "").replace(")", "").replace(";",
"");
if(strJson.startsWith("{")){
JSONObject
jsonObject = JSONObject.fromObject(strJson);
JSONArray jsonArray =
JSONArray.fromObject(jsonObject.get("users"));
for (int i =
0, len = jsonArray.size(); i < len; i++) {
JSONObject jsonUser =
jsonArray.getJSONObject(i);
User vo = (User)JSONObject.toBean(jsonUser,
User.class);
System.out.println(vo.getUsername()+":"+vo.getPassword());
}
}
}
更多信息請查看 java進階網(wǎng)http://www.javady.com
來源 :
http://blog.csdn.net/guanghua2009/article/details/6644272 我想做一個可以動態(tài)添加刪除div的功能。中間遇到一個問題,最后在phpchina問答區(qū)版主的熱心幫助下解答了(答案在最后) 使用到的jquery方法和思想就是:事件的綁定和銷毀(unbind),另外還可以使用clone,通過克隆可以很好的解決這個問題 相關(guān)描述如下
功能:點擊增加,自動添加一個iptdiv 點擊 iptdiv后的 X 自動刪除當(dāng)前div
問題:默認存在的(也就是頁面加載進來的)的那個iptdiv 后的 X 點擊有效,可以刪除當(dāng)前 iptdiv 但是 jquery 動態(tài)添加進的 iptdiv 則點擊沒有效果。請各位大俠給看看,提供些意見。我要的就是動態(tài)添加和刪除div 問題代碼如下:
<script type="text/javascript" src="jquery.js"></script>
<body>
<form action="" method="post" enctype="multipart/form-data">
<label>請選擇上傳的圖片</label>
<a href="javascript:addimg()" >增加圖片</a>
<div id="mdiv">
<div >
<input type="file" name="img[]" /><a href="#" name="rmlink">X</a>
</div>
</div>
<input type="submit" name="submit" value="上傳圖片" />
</form>
<script type="text/javascript" >
$(document).ready(function(){
$("a[name=rmlink]").click(function(){
$(this).parent().remove();
})
})
function addimg(){
$("#mdiv").append('<div ><input type="file" name="img[]" /><a href="#" name="rmlink">X</a></div>');
}
</script>
用jquery方法的綁定偵聽和銷毀來解決動態(tài)div的增加刪除:
正確代碼:
<script type="text/javascript" >
$(document).ready(function(){
bindListener();
})
function addimg(){
$("#mdiv").append('<div ><input type="file" name="img[]" /><a href="#" name="rmlink">X</a></div>');
// 為新元素節(jié)點添加事件偵聽器
bindListener();
}
// 用來綁定事件(使用unbind避免重復(fù)綁定)
function bindListener(){
$("a[name=rmlink]").unbind().click(function(){
$(this).parent().remove();
})
}
</script>
這中間就是存在一個事件綁定的過程,如果沒有的話通過js加進來的div內(nèi)不事件并不會被執(zhí)行,添加了偵聽事件功能后才能正確運行
用jquery的clone方法來解決動態(tài)div的增加刪除:
這里還有更好的寫法,我做了些許的修改,也許弄巧成拙了。但是功能實現(xiàn)了,更多的請參考phpchina論壇的幫助:http://bbs.phpchina.com/viewthread.php?tid=180911&extra=&page=1
<body>
<div style="display:none;">
<!--clone div start-->
<div >
<input type="file" name="img[]" /><a href="#" name="rmlink">X</a>
</div>
</div>
<!--clone div end-->
<form action="dowater.php" method="post" enctype="multipart/form-data">
<label>請選擇上傳的圖片</label>
<a href="#" id="addimg" >增加圖片</a>
<div id="mdiv">
<div >
<input type="file" name="img[]" /><a href="#" name="rmlink">X</a>
</div>
</div>
<input type="submit" name="submit" value="上傳圖片" />
</form>
<script type="text/javascript" >
var temp;
$(document).ready(function(){
temp = $(".iptdiv:first");
$("a[name=rmlink]").click(function(){
$(this).parent().remove();
})
$("#addimg").click(function(){
temp.clone(true).appendTo($("#mdiv"));
})
})
</script>
</body>