近期 Ajax 技術的發展讓網頁應用在使用上帶來很大的進步,當你將犀利的 PHP 與靈巧的 JavaScript 結合在一起時就會蹦出閃亮的結果。在一個讓你更好的理念下,我想分享一些方法讓你的網站帶給使用者到一個全新的境界。
以下的清單是50個最佳的免費程式,他們有最好的品質與更少的設定,大家來用用看吧。
網站多國語言的製作一直是個議題。如果是使用PHP或Rails來做多國…只需要用HTTP_ACCEPT_LANGUAGE偵測使用者語言就OK。不過有些時候會碰到必須使用Javascript方式來製作多國語言的情況,但瀏覽器對JS的解析結果很不一。
設計一個很棒的表單不容易,我們必須設想很多可能發生的情況,還有使用者在使用上的便利性。
最近網路上出現許多在表單上添加樣式設計的程式,使用他們你可以縮短你的開發時程。
今天在寫程式的時候發現 CloneNode 與本尊的 ID 會衝突到,於是想把本尊給砍了…沒想到 DOM 裡面沒有移除所有子節點的語法,只有 remove, removeAttribute, removeAttributeNode, removeBehavior, removeChild, removeExpression, removeNode, removeRule …這幾種,並沒有 removeAllChild 這種的,後來看了一下,其他人似乎也是以迴圈方式做處理,感覺滿沒效率的。寫法大致上如下:
var KillMyChild= document.getElementById(』KillMyChild』);
if ( KillMyChild.hasChildNodes() ){
while ( KillMyChild.childNodes.length >0 ){
cell.removeChild( KillMyChild.firstChild );
}
}
KillMyChild.removeNode(true); //如果是在IE環境下執行,又想殺掉根節點時就用這行
在這個時候用 jQuery 會比較快,有空再來做介紹XD
今天我突然突發奇想想把標籤上的事件像 C# 那樣集中到後台 .cs 檔,稍微查了一下寫法…
原始寫法:
<element onclick=』Javascript: here;』>
<element onclick=』blah: blah;』>
可以改寫成以下這樣(放在 window.onload 內):
obj.onclick = myFunc;
obj.onclick = function() { myFunc(Vars); }
obj.onclick = function() { this.is= ‘blah’; }
可以大幅減少前台頁面的複雜度^_^
CSS 當中有許多東西不按照某規律來寫的話,會使你很頭痛,雖然你可以通過很多 hack,很多 !important 來控制它,但是你會發現長此以往你會很不甘心,看看許多優秀的網站,他們的CSS讓IE6, IE7, Firefox, 甚至 Chrome, Opera 執行起來完美無缺是不是很羨慕?而他們看似複雜的範本下面使用的 Hack 少得可憐。其實你要知道 IE 和 Firefox 並不不是那麼的不和諧,我們找到一定的方法,是完全可以讓他們和諧共處的。不要你認為發現了 hack 的辦法,你就掌握了一切,我們並不是 hack 的奴隸。
div, ul, li 的嵌套順序
今天只講一個規則。就是的三角關係。我的經驗就是在最外面,裡面是,然後再是,當然裡面又可以嵌套什麼的,但是並不建議你嵌套很多東西。當你符合這樣的規則的時候,那些倒霉的,不聽話的間隙就不會在裡面出現了,當你僅僅是裡面放,而不用的時候,你會發現你的間隙十分難控制,一般情況下,IE6, IE7 會憑空多一些間距。但很多情況你來到下一行,間隙就沒了,但是前面的內容又空了很大一塊,出現這種情況雖然你可以改變IE的Margin,然後調整 Firefox 下面的 Padding ,以便使得兩者顯示起來得效果很相似,但是你得 CSS 將變得臭長無比,你不得不多考慮更多可能出現這種問題補救措施,雖然你知道千篇一律來 hack 它們,但是你會煩得要命。
具體嵌套寫法
遵循上面得嵌套方式, 然後在 CSS 裡面告訴 ul {Margin:0Px;Padding:0Px;List-Style:None;},其中List-Style:None是不讓標記的最前方顯示圓點或者數字等目錄類型的標記,因為IE和Firefox顯示出來預設效果有些不一樣。因此這樣不需要做任何手腳,你的IE6、和IE7、Firefox顯示出來的東西(外距,間距,高度,寬度)就幾乎沒什麼區別了,也許細心的你會在某一個時刻發現一、兩個象素的差別,但那已經很完美了,不需要你通過調整大片的CSS來控制它們的顯示了,你願意,你可以僅僅hack一兩個地方,而且通常這種hack可以適應各種地方,不需要你重複在不同的地方調試不同的Hack方式–減輕你的煩惱。你可以 ul.class1, ul.class2, ul.class3 {xxx:xxxx} 的方式方便的整理出你要 hack 的地方,而統一 hack。嘗試一下吧,再也不要亂嵌套了,雖然在 Div+CSS 的方式下你幾乎可以想怎麼嵌套就怎麼嵌套,但是按照上面的規律你將輕鬆很多,從而事半功倍!
Hack 和過濾器其實是一種迫不得已的辦法,不要稍微掌握了幾招然後就開始炫耀,到處亂寫,雖然能夠達到你的最初目的。不要到了完工的時候看一看你的 CSS 文件似乎到處是 hack,到處都是 Patch,似乎已經為每個瀏覽器都量身定做了一遍CSS。在使用hack和過濾器的時候其實更應該多理解 CSS [...]
We have two ways that could be solve the CSS compatibility problem.
!important
IE7&FF support !important,so we can use!important to focus on IE6.(Must write above.)
#wrapper
{
width: 100px!important; /* IE7+FF */
width: 80px; /* IE6 */
}
IE6/IE7 vs FireFox
*html is IE-only lable, FireFox is not supprt. *+html is IE7 only.
#wrapper
{
#wrapper { width: 120px; } /* FireFox */
*html #wrapper { width: 80px;} [...]