經常有人遇到ASPNET (ASPNET x中可能是有效的)中CSS失效的問題本文將主要原因和解決方法A&Q列出做出如CSS文件路徑不正確等問題的解答
經常有人遇到ASPNET (ASPNET x中可能是有效的)中CSS失效的問題現將主要原因和解決方法羅列如下
QCSS文件路徑不正確
A這個問題屬於Web開發中的基礎問題一般采用相對路徑會出現這樣的問題或者樣式文件寫在了模板頁裡面在內容頁與模板頁不在同一級目錄下時會出現這樣的問題此時你要清楚Web中相對路徑的規則如果你不清楚可以采用絕對路徑的寫法試試就知道是不是路徑的問題了
QCSS規則寫法錯誤
A這個問題誰也幫不你只能自己學習CSS的相關知識了
Q文件編碼問題
A有時候CSS樣式放在aspx文件裡有效而放在獨立的文件中無效這樣的問題如果不是路徑問題則就是編碼問題造成的可以將CSS文件用記事本打開再另存為ANSI格式或者UTF格式即可
Q權限問題
A這種情況常見的現象是登錄之前樣式無效登錄之後才有效這是典型的權限問題造成的由於webconfig配置了所有文件不允許匿名訪問才會出現這樣的問題解決方法就是是標記將樣式文件配置為允許匿名訪問例如
<configuration>
<location path=
允許匿名訪問的文件夾名稱
>
<system
web>
<authorization>
<allow users=
?
/>
</authorization>
</system
web>
</location>
</configuration>
Q單擊按鈕樣式失效
A這種情況最典型的原因是單擊按鈕事件裡有類似ResponseWrite這樣的語句由於ASPNET 默認采用http://wwwworg/TR/xhtml/DTD/xhtmltransitionaldtd文檔類型定義它就要求在的前面不能有任何輸出這種問題的解決方法是采用ClientScriptManager輸出或者采用Literal控件輸出內容
Q在ASPNET x裡面起作用的樣式到ASPNET 裡面失效
A這種問題一般仍然是xhtml造成的由於http://wwwworg/TR/xhtml/DTD/xhtmltransitionaldtd的樣式規則與以前的不同如要加單位例如width:; 現在要寫成width:px; 這種問題的解決方法就是要明確加上單位
Q腳本設置的樣式無效
A由於xhtmlDTD要求有單位因此在設置對象樣式的數值時仍然要加上單位如objstylewidth = px下面的代碼在Firefox裡是無效的(不要抱怨Firefox麻煩)
<!DOCTYPE html PUBLIC
//W
C//DTD XHTML
Transitional//EN
http://www
w
org/TR/xhtml
/DTD/xhtml
transitional
dtd
>
<html xmlns=
http://www
w
org/
/xhtml
>
<head>
<script type=
text/javascript
>
//<![CDATA[
function SetHeight()
{
document
getElementById(
x
)
style
height=
}
//]]>
</script>
</head>
<body>
<div id=
x
style=
background:#DDD; height:auto;
>測試</div>
<input type=
button
value=
設置
onclick=
SetHeight()
/>
</body>
</html>
盡管上面在IE中正常但在Firefox裡面則會出現問題正確寫法為
documentgetElementById(x)styleheight=px
From:http://tw.wingwit.com/Article/program/net/201311/15024.html