VS2010 對於CSS的公升級

2021-05-23 12:23:51 字數 2832 閱讀 7606

隨著 asp.net 版本公升級,它新增了很多新的東西,像是範本化控制項 (template-based control,像是 gridview/listview/formview 等),導覽控制項 (sitemap/menu/treeview),ajax (asp.net

ajax 與 control toolkit),data source control (sqldatasource/objectdatasource/linqdatasource) 等功能,使得 web form model 更加成熟,它自動化的 html rendering 能力雖然減輕了很多

開發人員的 html 繪製負擔,但它卻也在無形中為應用程式加上了乙個大包袱:龐大的 programming model 以及生硬的 event model,使得能夠對 web form 控制的範圍其實不大,除非使用 control

extension 或是 custom control,但這個又對開發人員的負擔很重 (user control 則好一點),asp.net mvc 也是因應這個需求所產生,但本文並不談 asp.net mvc,而是 asp.net 的 web form 控制

項,控制項的繪製 (rendering) 在 asp.net 4.0 做了一些修改,最大的原因是為了符合 css 以及讓像 jquery 這樣高度依賴 css 格式的 scripting framework 更能夠發揮功能。

1. css 繪製相容性 (rendering compatibility)。

在 asp.net 4.0 中特別有針對 css 做了一些強化,而為了要保持和 .net framework 3.5 以及更早版本的 asp.net 保持行為上的相容,所以特別在 web.config 中加入了相容性的設定功能:

若設定為 3.5,表示與 3.5 和更早的版本相容。

若設為 4.0,則表示可以啟用 asp.net 4.0 才有的部份新功能。

xhtmlconformance 屬性會永遠設為 strict,它會讓控制項使用 xhtml 1.0 strict 標記來繪製。

關閉非輸入控制項不會再出現無效的樣式。

圍繞在隱藏欄位的 div 元素現在也會設定樣式讓它們不會干擾到使用者建立的 css 規則。

選單控制項繪製具有語意正確 (semantically) 以及相符於可協助性指南 (accessibility guide) 的標記。

驗證控制項不會繪製 inline style (即使用 style=」…」 設定的樣式)。

控制項會繪製 border=」0」。

2. 關閉控制項 (disabling control) 的修訂 (需要設定 controlrenderingcompatibilityversion=」4.0」)。

在以往的 web 控制項中,幾乎都可以使用 enabled=」false」 來關閉控制項,這個行為在 html 4.0 前是正常的,但是到了 html 4.01 時,disabled 屬性 (控制 html 是否關閉) 卻設定只能在

input 控制項中使用,因此對 asp.net 諸多控制項來說,這個行為一定要修改,所以在 asp.net 4.0 提供了乙個稱為 disabledcssclass 的屬性,預設值是 aspnetdisabled,表示將這個控制項關閉,

但開發人員仍可以自己設計關閉的 css,並且使用 disablecssclass 設定給控制項即可。

3. 將系統設定的隱藏欄位的 div 設定乙個內建的樣式,以讓 css 的 div 設定不會影響到該區域 (需要設定 controlrenderingcompatibilityversion=」4.0」)。

asp.net 2.0 開始,系統有將必要的隱藏欄位以 div 來包裝,不過它會受到使用者的 css 規則所影響,因此 asp.net 4.0 修改了這部份的 css 設定,加入了乙個 aspnethidden 的 css class,以確

保這個區域不會受到使用者所定義的 css 規則的影響。

4. 部份控制項可以不繪製**,而以自訂的格式繪製。

在 asp.net 4.0 中,有幾個控制項多了乙個 renderoutertable=」true|false」 的屬性,它可以不讓 render 繪製出包在外面的**,而且繪製出指定的 template 內容,這會更讓控制項和 css 貼近

許多。而這些控制項是:

formview

login

passwordrecovery

changepassword

wizard

createuserwizard

5. menu 的繪製強化 (需要設定 controlrenderingcompatibilityversion=」4.0」)。

在 asp.net 4.0 中的 menu 控制項,將不再以原始的繪製方式,而改以 jquery 所使用的

這個功能被稱為語意化標記 (semantically mark)。而且這個功能也是為了符合 w3c 的 wai-aria 所定義的 accessibility guide 中的 menu 格式 (可參考 http://www.w3.org/tr/wai-aria-

practices/#menu)。

參考資料:

VS 2010 開發 ActiveX 自動公升級篇

activex 控制項自動公升級 1.修改 activexdemo 及其所依賴專案的版本資訊 2.為 activexdemo 建立安裝專案 activexdemo.setup 3.選擇 activexdemo.setup 專案,為其設定屬性 4.選擇主輸出檔案,為其設定屬性 5.右鍵 activex...

VS 2010 開發 ActiveX 自動公升級篇

activex 控制項自動公升級 1.修改 activexdemo 及其所依賴專案的版本資訊 2.為 activexdemo 建立安裝專案 activexdemo.setup 3.選擇 activexdemo.setup 專案,為其設定屬性 4.選擇主輸出檔案,為其設定屬性 5.右鍵 activex...

如何提高VS2010的效能,VS2010不再卡

教大家幾個技巧可以稍微讓你覺得它沒那麼卡!一 vs2010選項視覺體驗設定 工具 選項 環境 視覺體驗的勾選都去掉。不解釋,你懂得。不過還是建議開啟硬體加速 二 禁用intellisense 工具 選項 文字編輯器 c c 高階 禁用intellisense設為true 這個功能很好用。相較於vis...