2012年5月8日 星期二

[HTML]基礎入門,連幼稚園程度的網頁設計師都該會?!

最近的工作常常有機會和美術部門(後稱美術)合作
內容不外乎就是美術設計CSS版本,由我們的部門來套程式
舉例:留言版、活動內容、最新消息等等...

不過常常會有遇到一些我說有,你說沒有之類的怪問題,我想把幾個我認為值得記錄的問題記錄於此:

1.我(美術)的網頁怎麼變亂碼了??

這個算是滿常見的問題,由於我沒有事前就和美術約定好網頁的編碼為何,
所以,常常拿到手上的HTML檔會有複數的ChartSet設定,不外乎就是utf-8或是Big5

這個時候,我會以Index為準去修改我所提供的ASP檔編碼
初設計時,以為只要在我的ASP內頁的Meta加上Chartset="utf-8" 或 Chartset="Big5" 即可,
了不起再後端再加上
response.Charset="big5"
Session.codepage=950
或是
response.Charset="utf-8"
Session.codepage=65001
就可以解決了。
但是後來發現,這當中的奧秘不只於此,我還需要注意檔案的編碼是否符合我的需要,
這個檔案編碼方式用記事本也能夠設定,只需另存新案,並且選好你需要用的編碼方式。

2.我(美術)的透明背景去哪了?
第二常見的問題,解決的辦法在網路上也都找得到,比較單純的情形是HTML頁面裡,嵌入一個Iframe,希望這個iframe裡的背景是透明的,需要注意的部分如下:
假設我在index.html 嵌了iframe-inside.html的話
  2-1.index.html要注意:
    2-1-1.背景用圖片。
    2-1- 2.不能用backgound-color。
     2-1- 3.在iframe裡加上 allowtransparency="true"的屬性
  2-2 . iframe-index.html要注意的,就是在IE6,7,8上要正常的話,需在body的style加上 background-color:transparent

但是!!!! 另外我發現在某種情形下,透明背景會失效
那就是加上了HTML的註解(<!--這是註解的樣子-->)在<html> 標籤的前面時,會讓背景變成白色...這是為什麼呢?不知道,但我測試過後,發現只要加了就失效,移除了就正常透明..
是因為我在套ASP程式時,常常會用VS的Ctrl K+C來把文字變註解,寫Function時,除了從網頁的第一行開始之外,也會把一個Function寫成這這:
<!--功能:就是IIF-->
<%
Function HelloWorld()
      HelloWorld = "HelloWorld"
End Function
%>
所以,變成這樣,算是自找的吧......

最後的最後,把HTML的設定寫成範例供參考:
Index.html的內容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=big5" />
    <title>無標題文件</title>
    <style type="text/css">
        body
        {
            /* 注意:這邊不能設定body的background-color否則會失敗。 */
        }
    </style>
</head>
<body style="background-image:url('background.png');background-color: transparent">
    <div style=" ">
        1.背景用圖片。<br />
        2.不能用backgound-color。<br />
        3.在iframe裡加上 allowtransparency="true"的屬性。<br />
    </div>
    <iframe width="495" height="165" src="iframe-inside.html" frameborder="2" allowtransparency="true">
    </iframe>
</body>
</html>
iframe-inside.html的內容:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=big5" />
    <title>無標題文件</title>
    </head>
    <body style="background-color:transparent; font-weight:bolder; color:Orange;">
    這是子頁。<br />
    要在body的style加上 background-color:transparent。<br />
    好像是在IE6,7,8才需要這樣
    </body>
    </html>
以及使用到的圖片



沒有留言:

張貼留言