程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net基礎學習之前端頁面布局

asp.net基礎學習之前端頁面布局

編輯:ASP.NET基礎

前端就是給人看的界面,後台人員不僅要知道後台代碼的編寫,更要知道前端的布局。有時候要比前端人員知道的還要多,因為有可能前端人員是個21天精通ps的大師級人物。這時候你可以自己寫前端。

1.CSS
 •CSS(Cascading Style
Sheet),中文譯為層疊樣式表,是用於控制網頁樣式並允許將樣式信息與網頁內容分離的一種標記性語言。就語法而言,
 •CSS是一種容易學習的語言。它的“語法”僅由幾個概念組成,使得它相當容易入門。CSS的難點在於所有主流浏覽器呈現頁面的方式。盡管實際上每種浏覽器都能夠理解CSS,但當根據CSS標准顯示頁面時,它們都有各自的“怪癖”。
 •CSS規定了兩種定義樣式的方法,分別是內聯式和級聯式。
 •直接將樣式控制放在單個HTML元素內,稱為內聯式或行內樣式。該樣式通過style屬性來控制每個元素的外觀,直觀但是很繁瑣。除非具有相同樣式的元素較少,否則很少采用。
在網頁的head部分定義或導入的樣式,稱為級聯式樣式。該樣式可以實現將網頁結構和表現分離,這樣,當修改某些元素的樣式時,只需要修改head部分定義或引入的樣式,該網頁內所有具有相同樣式的元素都會自動應用新的樣式。
 •級聯式樣式又可以分為兩種方式:內嵌式和鏈接式。
 •在head部分直接實現的CSS樣式,稱為內嵌式。這種CSS一般位於HTML文件的頭部,即在與標簽內,並且以結束。
采用內嵌式比內聯式方便了很多,body內的代碼也相對簡潔,修改某個元素的樣式時只需修改head內的代碼即可。
 •在head部分通過導入以擴展名為.css的文件來實現CSS樣式,稱為鏈接式。利用這種方法在網頁中可以調用已經定義好的樣式表來實現樣式表的應用,定義好的樣式表通常單獨以文件的形式存放在站點目錄中。這種方法實現了將網頁結構和表現的徹底分離,最適合大型網站的CSS樣式定義。
 •如果某個元素既引用了鏈接樣式文件中定義的樣式,又在head部分定義了新的樣式,或者在元素內部通過style屬性定義了新的樣式,那麼該標記元素最終呈現的效果會是什麼樣呢?這就是樣式嵌套中的沖突問題,浏覽器解決這種問題的方法就是一旦發現樣式沖突,則通過“就近使用”原則,而不沖突的樣式則通過順序組合後形成最終樣式進行顯示。
 •一般情況下,在樣式表(.css)文件中定義適合大多數網頁公用的樣式,在網頁內部采用內嵌式定義該頁面特有的樣式。
 •屬性是元素的一部分,可通過樣式表修改。CSS規范定義了一個長屬性列表,但在大多數Web站點中不會用到所有項。
下面介紹這幾種不同的方式來設置: 

<h1 style="color:blue;">CSS樣式</h1>
<style>
  h1 {
   color:red
  }
 </style>
#h1 {
   color:gray
  }
<h1 id="h1">CSS樣式</h1>
.h1 {
   color:gray
  }
<h1 class="h1">CSS樣式</h1>
 <link href="StyleSheet.css" rel="stylesheet" />
 //直接插入即可引用

html的標簽,”id”對應”#”,”class”對應”.” .id是唯一標志的,在同一頁面中不能有相同的值,class則沒這約束。如:

Css
h1{......}
#div1{......}
//引用時,使用id屬性聲明即可 id="div1"
.div2{......}
//引用時,使用class屬性聲明即可 class="div2"

關聯選擇符:
 •關聯選擇符是一個用空格隔開的兩個或更多的單一標記選擇符組成的字符串。一般格式如下:選擇符1 選擇符2 …… {屬性:值; ……}
•這些選擇符具有層次關系,並且它們的優先級比單一的標記選擇符大。例如: p h2{ color:red }
 •這種定義方式只對p元素所包含的h2元素起作用,單獨的p或者單獨的h2元素均無法應用該樣式。 

並列選擇符
 •如果有多個不同的元素定義的樣式相同,則可以使用並列選擇符簡化定義。例如: h1,h2,h3{ color:blue}
 •每個元素之間用逗號隔開,表示所有的h1、h2、h3標記中的內容都將以藍色樣式顯示。 

偽類:
 •偽類是CSS中非常特殊的類,它能自動地被支持CSS的浏覽器所識別。偽類可以指定XHTML中的<a>元素以不同的方式顯示鏈接(links)、已訪問鏈接(visited
links)和可激活鏈接(active links)。甚至不同字體大小和風格。
 •CSS中用4個偽類來定義鏈接的樣式,分別是:a:link、a:visited、a:hover和a:active,例如:

 a:link{font-weight : bold ;text-decoration : none ;color : #C00000 ;}
 a:visited {font-weight : bold ;text-decoration : none ;color :
 #C30000 ;}

2.頁面布局:

DIV和CSS布局
 1.頁面水平居中
設置頁面水平居中的方法是在body的style樣式中設置text-align屬性的值為center。如果還希望頁面的寬度固定,則可以通過設置div的width屬性來實現。

 2.頁面滿寬度顯示
設置頁面滿寬顯示的方法是將div的固定寬度設置為百分比即可

 3.頁面元素
定位頁面元素的定位分為流布局和坐標定位布局兩種,其中,坐標定位布局又分為絕對定位和相對定位,這裡僅介紹流布局和坐標絕對定位
如果采用該布局,則頁面中的元素將按照從左到右、從上到下的順序顯示,各元素之間不能重疊。如果不設置元素的定位方式,則默認就是流式布局。
在使用坐標絕對定位之前,必須先將style元素的position屬性設置為absolute,然後就可以由style元素的left、top、right、bottom和z-index屬性來決定元素在頁面中的絕對位置。left屬性表示元素的x坐標,top屬性表示元素的y坐標,坐標的位置是以它最近的具有position屬性的父容器為參照物的。
 4.表格布局
坐標定位布局又分為絕對定位和相對定位,這裡僅介紹流布利用表格可以將網頁中的內容合理地放置在相應的區域,每個區域之間互不干擾。
 5.盒子模型
自從 1996 年CSS1 的推出,W3C 組織就建議把所有網頁上的對象都放在一個盒子(box)中,設計師可以通過創建定義來控制這個盒子的屬性,這些對象包括段落、列表、標題、圖片以及層。盒子模型主要定義了4個區域:內容(content)、邊框距(padding)、邊界(border)和邊距(margin),
 6.層的定位
float浮動屬性是DIV和CSS布局中的一個非常重要的屬性。大部分的DIV布局都是通過float的控制來實現的。具體參數如下。
float:none用於設置是否浮動
float:left用於表示對象向左浮動
float:right用於表示對象向右浮動

3.主題

主題是定義頁面和控件外觀的文件的集合。它通常包含外觀文件(擴展名為.skin)、級聯樣式表文件(擴展名為.css)、圖片和其他資源等的組合,但一個主題至少包含一個外觀文件。

--------------------------------------------------------------------------------

4.母版頁

什麼是母版頁:
 •母版頁是用於設置頁面外觀的模板,是一種特殊的ASP.NET網頁文件,同樣也具有其他ASP.NET文件的功能,如添加控件、設置樣式等,只不過它的擴展名是.master。
 •引用母版頁的.aspx頁面稱為內容頁,在內容頁中,母版頁的ContentPlaceHolder控件預留的可編輯區會被自動替換為Content控件,只需在Content控件區域中填充內容即可,在母版頁中定義的其他標記將自動出現在引用該母版頁的內容頁中。
 •當創建新的Web站點時,總是先添加作為所有其他頁面基礎的母版頁。即使站點中只有少數幾個頁面,母版頁仍然可以幫助確保整個站點擁有一致的外觀。
 •在某種程度上,母版頁看起來就像正常的ASPX頁面。創建母版頁的方法也和創建一般頁面的方法非常相似,區別是母版頁無法單獨在浏覽器中查看,必須通過創建內容頁才能浏覽。

 創建母版頁:
 •每當創建一個新的母版頁時都會自動添加此占位符,在內容頁中可以用它來添加頁面特有的位於頁面的標記之間的內容,比如CSS(包括內嵌樣式表和外部樣式表)和JavaScript。
 •母版頁中的ContentPlaceHolder如果有內容,是可以作為內容頁的默認新項,當基於該母版頁新建頁面時,內容頁即可以重寫這部分內容,也可以不重寫。

    嵌套母版頁

 •母版頁也可以嵌套。嵌套母版頁是基於另一個母版頁的母版頁。內容頁面則可以基於嵌套母版頁。如果有一個目標為不同區域仍然需要共享相同外觀的Web站點,采用嵌套母版頁就比較有用。
 •嵌套母版頁的創建很簡單:當添加母版頁時選中“選擇母版頁”復選框即可,就像後面介紹的添加內容頁一樣。然後,在內容頁中要重寫的位置將控件添加到控件中。 

創建內容頁
 •母版頁如果沒有內容頁來使用它,那就沒有任何用處。通為了將一個內容頁基於一個母版頁,通常在添加新網頁到站點時,就指定母版頁,為此,只需選中“添加新項”對話框底部的“選擇母版頁”復選框即可。當然,也可以在直接在頁面的@Page指令中設置MasterPageFile屬性。
 •內容頁中只能含有映射到母版頁中的控件的控件。而這些控件又可以包含標准標記,如HTML元素和服務器控件聲明

在內容頁訪問母版頁中的成員

 •在內容頁中可以通過編程的方式訪問母版頁中的成員,包括母版頁上的任何公共屬性或方法以及任何控件。要實現內容頁對母版頁中定義的屬性或方法進行訪問,則該屬性或方法必須聲明為公共成員(public),也可以對母版頁動態地進行訪問。 

下面來個示例,使用母版頁創建內容頁:
 •母版頁包括一個或多個 <asp:ContentPlaceHolder ID="TestContentPlaceHolder"
runat="server"/> 控件,在內容頁中可以定義要替換的內容。

 •內容頁中通過添加 Content 控件並將這些控件映射到母版頁上的 ContentPlaceHolder控件來創建內容。

 添加新項>>母版頁>>

MasterPage.master

<form id="form1" runat="server">
  <div id="main">
  <div id="head">
   <h1 style="margin:10px 0 0 10px">母版頁測試</h1>
  </div>
  <div id="content">
   <div id="left">
    <h3 style=" margin:10px 0 0 10px">左側導航</h3>
    <div style=" margin-left:20px; font-size:18px; font-family:Verdana">
     <a href="TestPage.aspx">asp.net</a><br />
     <a href="AnotherTestPage.aspx">CSS</a><br />
     <a href="#">HTML</a><br />
     <a href="#">JQuery</a>
    </div>
   </div>
   <div id="center">
    <asp:ContentPlaceHolder ID="TestContentPlaceHolder" runat="server">
     可以被重寫的部分
    </asp:ContentPlaceHolder>
   </div>
  </div>
 </div>
 </form>

重寫之前的樣式:

內容頁:
添加新項>>web窗體
勾選母版頁:


選中剛才的母版頁即可:
在代碼中間重寫母版頁的內容:

<asp:Content ID="Content1" ContentPlaceHolderID="TestContentPlaceHolder" Runat="Server">

</asp:Content>

<asp:Content ID="Content1" ContentPlaceHolderID="TestContentPlaceHolder" Runat="Server">

 <div style=" width:100%; height:100%; background-color:#666666">
  <div style=" margin:10px 0 0 10px">
   <h4>
    這裡是另一個內容頁(AnotherTestPage.aspx)
   </h4>
   <p style=" font-size:12px; font-family:宋體">
         Master Page 使您有能力為 web 應用程序中的所有頁面(或頁面組)創建一致的外觀和行為。
    Master Page 為其他頁面提供了模版,帶有共享的布局和功能。Master Page 為內容定義了可被內容頁面覆蓋的占位符。而輸出結果就是 Master Page 和內容頁面的組合。<br />
         內容頁包含您希望顯示的內容。
    當用戶請求內容頁時,ASP.NET 會對頁面進行合並以生成輸出,輸出結果對 Master Page 的布局和內容頁面的內容進行了合並。
   </p>
  </div>
 </div>
</asp:Content>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved