京山游俠

          專注技術,拒絕扯淡
          posts - 50, comments - 868, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          這篇隨筆不是專門針對SpringSide,卻只得每個程序員一看。

          還記得胡戈調侃《無極》中的王城布局為“圈圈套圈圈”娛樂城,也還記得我剛開始做Web開發時“表格套表格”的頁面布局。在大部分的程序員中,可能還在使用表格進行布局,使用表格進行布局的巨大缺點就是當頁面進行一點點修改的時候,都有可能完全打亂頁面的外觀,而且非常不利于和美工的配合。當然了,很多美工人員也在使用表格進行布局,他們在圖形軟件中設計好頁面,然后使用切片工具一切就完事,卻給我們需要在網頁網頁中動態增加內容的程序員帶來了麻煩。在CSS盛行的今天,我們早就該讓表格只做它的本分工作了。

          網上也有不少使用div + css進行布局的教程,卻存在很多缺陷,一是對css的布局模型講解不清楚,讓人很難理解相對定位、浮動等概念;二是雖然避免了“表格套表格”的缺點,卻帶來了“div 套 div”的缺點,過量使用div標簽;三是class過多,造成class災難。

          要正確使用css,對css的基本只是就不能夠不了解。既然是漫談,我這里就只講四個方面,最后給出xkland項目作為實例。

          一、CSS中的塊模型

          在CSS的定義中,有的html標簽被瀏覽器當成一個塊來顯示,比如div、table、p、ul等等,我們稱之為塊元素;有的html標簽被瀏覽器顯示在文本行之類,如a、span、font等等,我們稱之為行內元素。行內元素我這里就不講了,只講講塊元素的模型。

          每一個塊元素都可以分為context、padding、boder和margin幾個部分,我們常說的寬和高,指的只是context的寬和高,padding代表內容和邊框之間的填充,margin代表邊框之外的空白,如下圖:
          22.JPG

          這幾個部分都是可以通過CSS進行指定的,當然,CSS還可以控制背景,因此,我們可以通過CSS來靈活控制我們頁面的外觀。

          二、CSS中的文檔流模型

          所有的塊元素在html文檔中是按照它們出現在文檔中的先后順序排列的(當然,嵌套不在此列),每一個塊都會另起一行。如下圖:
          23.JPG

          他們對應的html如下:
          <div?id="div1">div1</div>
          <div?id="div2">div2</div>
          <div?id="div3">div3</div>

          為了定義他們的寬度、高度還有邊框,我們定義如下的CSS:
          #div1?{
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          }

          #div2?
          {
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          }

          #div3?
          {
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          }

          三、CSS中的相對定位和絕對定位模型

          在文檔流中,每個塊元素都會被安排到流中的一個位置,我們可以通過CSS中的定位屬性來重新安排它的位置。定位分為相對定位和絕對定位,相對定位是相對于該塊元素在文檔流中的位置的,比如,我們可以使用相對定位把div2放到div1的右側,CSS代碼如下:
          #div1?{
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          }

          #div2?
          {
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          ????position
          :?relative;
          ????top
          :?-64px;
          ????left
          :?204px;
          }

          #div3?
          {
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          }

          下面是效果:
          24.JPG

          可以看到一個有趣的現象,那就是雖然我們把div2移走了,但是div1和div3中間還是有一個空間,說明相對定位的元素是會占據文檔流空間的,這里的div2就是典型的“站著茅坑不拉屎”。

          使用絕對定位也是可以把div2擺到div1的右邊的,而且絕對定位是不會占據文檔流空間的,如下圖,div1和div3之間沒有空白:
          25.JPG

          div2的CSS代碼:
          #div2?{
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          ????position
          :?absolute;
          ????top
          :?15px;
          ????left
          :?214px;
          }


          絕對定位是個好東西,可以把內容顯示到頁面上的任何位置,但是對于我們程序員來說,卻不能使用太多的絕對定位,因為使用程序動態向div中添加內容,div的大小是不可知的,無法將每一個div的位置都定死。

          四、CSS中的浮動和清除模型

          在CSS中,最讓人不好理解的應該算是float和clear意義了。float可以達到這樣一個效果,就是本來應該一行一個的塊元素,如果定義了float屬性,則只要行的空間足夠,它會跑別的float元素的屁股后面,而不再會單獨占用一行,如下圖:
          26.JPG

          這里把div2和div3都定義了為浮動,代碼如下:

          #div2?{
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          ????float
          :left;
          }

          #div3?
          {
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          ????float
          :left;
          }

          那什么情況下需要clear呢?這是因為float的元素和絕對定位的元素一樣,也是不占用文檔空間的,因此,如果我們把div2和div3都嵌套在div1中,并且把div2和div3都定義為浮動,那么由于它們不占用文檔空間,所以作為父元素的div1不知道自動擴展大小,以至于顯示出來div2和div3會跑到div1的外面,如下圖:
          27.JPG

          下面是它們的html代碼:
          <div?id="div1">div1
          <div?id="div2">div2</div>
          <div?id="div3">div3</div>
          </div>

          下面是它們的css代碼:
          #div1?{
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?450px;
          ????margin
          :2px;
          }

          #div2?
          {
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          ????float
          :left;
          }

          #div3?
          {
          ????border
          :?1px?solid?#000099;
          ????height
          :?60px;
          ????width
          :?200px;
          ????margin
          :2px;
          ????float
          :left;
          }

          因為float的元素不占用文檔流空間,有時候被的元素還會重疊到float元素上,這里我就不舉例了。

          為了解決上面的問題,就需要在float之后的元素上面使用clear,在此例中,我們在div3后面加入一個空段落,并設置其為clear,如下:
          <div?id="div1">div1
          <div?id="div2">div2</div>
          <div?id="div3">div3</div>
          <p?class="clear"></p>
          </div>

          下面是新增加的空段落的CSS代碼:
          .clear{
          ????clear
          :left;
          }

          效果圖:
          28.JPG

          還是以我的xkland項目為例,來設計一個完整的頁面吧。下面是我的welcome.jsp頁面的布局圖:
          20.JPG

          在這個頁面中,我完全擺脫了“表格套表格”的模式,而且除了最上面一行在一個div里面顯示logo、advertisment和appendix的div外,其它的地方沒有div嵌套。盡量減少div嵌套的有力武器是理解div的意義,div代表division,是部分的意思,也就是說只有在確實沒有標簽能夠作為一個部分的根元素的時候才需要div。在上面的例子中,菜單條就沒有使用div。菜單條是使用列表實現的,因為列表的都包含在ul標簽中,因此沒有必要使用div。下面是上圖的html代碼:
          <body>
          <div?id="header">
          ??
          <div?id="logo">此處顯示?id?"logo"?的內容</div>
          ??
          <div?id="appendix">此處顯示?id?"appendix"?的內容</div>
          ??
          <div?id="advertisment">此處顯示?id?"advertisment"?的內容</div>
          </div>
          <ul?id="menu">
          ??
          <li>菜單項一</li>
          ??
          <li>菜單項二</li>
          ??
          <li>菜單項三</li>
          ??
          <li?class="lastMenuItem">最后一個菜單項</li>
          </ul>
          <div?id="loginView">此處顯示?id?"loginView"?的內容</div>
          <div?id="catalog">此處顯示?id?"catalog"?的內容</div>
          <div?id="search">此處顯示?id?"search"?的內容</div>
          <div?id="newTopics">此處顯示?id?"newTopics"?的內容</div>
          <div?id="newReply">此處顯示?id?"newReply"?的內容</div>
          <div?id="hotTopics">此處顯示?id?"hotTopics"?的內容</div>
          <div?id="statistics">此處顯示?id?"statistics"?的內容</div>
          <div?id="hotGroups">此處顯示?id?"hotGroups"?的內容</div>
          <div?id="hotUsers">此處顯示?id?"hotUsers"?的內容</div>
          <div?id="footer">此處顯示?id?"footer"?的內容</div>
          </body>

          是不是很簡潔?

          而關于頁面美化和布局的內容,全部轉移到了CSS中。先來說說菜單項,菜單項是使用列表實現的,而列表常規的顯示樣式是下面這樣的:
          19.JPG

          怎么樣才能讓它們顯示到一行呢?那就是我前面講到的float屬性。我們給id為menu的ul定義如下樣式,來顯示邊框:
          #menu?{
          ????border
          :?1px?solid?#0F54C3;
          ????padding
          :5px;
          ????margin
          :0px;
          ????width
          :804px;
          ????margin
          :1px?0px;
          ????height
          :?12px;
          }

          為了避免前面講到的float元素跑到邊框之外,我這里沒有使用clear,而是將menu的height屬性定義為12px,和頁面上的字體等高,而菜單只有一行,因此不會跑到邊框之外。menu中的每一個菜單項都是一個li,我們可以通過#menu li { }來定義它的樣式,這種方式叫做后代選擇器,充分使用這種選擇器,是避免使用過多的類的有力武器,從前面的html代碼中可以看出,我只對最后一個菜單項定義了類,因為我不想最后一個菜單后面還跟一個小豎線,菜單項之間的小豎線是通過定義li的右邊框樣式做到的,其css代碼如下:
          #menu?li?{
          ????float
          :left;
          ????padding-left
          :10px;
          ????padding-right
          :10px;
          ????border-right-width
          :?1px;
          ????border-right-style
          :?solid;
          ????border-right-color
          :?#0F54C3;
          }

          #menu?.lastMenuItem?
          {
          ????border-right-style
          :none;
          }


          對于下面那么多的框框,除了#netTopics我使用絕對定位把它擺到了右邊作為主要內容區之外,其它的都是順著文檔流擺下來的,只定義了寬度,而不需要定義位置。

          如果我們要美化頁面,比如添加網站特有的圖片,我們可以修改#logo、#advertisment、#appendix的css代碼,甚至當以后別人美化我的網站時,可以把這三個div的visible設置為false,而直接定義#header的樣式。在這里,我們只簡單的把#logo的背景設置為logo圖片,并去掉邊框。下面是css代碼:

          #logo?{
          ????float
          :left;
          ????height
          :?60px;
          ????width
          :?200px;
          ????background
          :url(../images/xkland_logo.gif)?no-repeat?left?top;
          }


          對于其他的div,我們還需要為它們添加內容,#loginView這個稍微特殊一點,需要添加標題和表單,而其他的div就簡單得多,只需要標題和列表就夠了。這里我們以#loginView為例,下面是添加內容之后的效果:
          21.JPG

          別看這里面布局也挺復雜的,我也完全沒有使用表格。下面是html代碼:

          <div?id="loginView">
          ??
          <h3>用戶登錄</h3>
          <form?name="form1"?id="form1"?method="post"?action="">
          ??
          <p>用戶名:
          ??????
          <input?class="textInput"?name="userName"?type="text"?id="userName"?/>
          ??
          </p>
          ??
          <p>密 碼:?
          ????
          <input?class="textInput"?name="password"?type="password"?id="password"?/>
          ??
          </p>
          ??
          <ul>
          ??????
          <li>忘記密碼?</li>
          ??????
          <li>新用戶注冊</li>
          ??????
          <li><input?type="checkbox"?name="checkbox"?value="checkbox"?/>記住我</li>
          ??
          </ul>
          ??
          <p?class="clear">
          ??
          <input?type="submit"?name="Submit"?value="登 錄"?/>
          ??
          </p>
          </form>
          </div>

          可以看到,我使用的h3標簽來作為標題,這樣避免了為標題另外嵌套一個div,對輸入文本框定義了類textInput來定義它們的樣式,而其他的文本內容,我都是使用了p標簽和ul、li標簽,從上面的效果圖就可以看出CSS的強大。下面是它們的css代碼:
          #loginView?{
          ????border
          :?1px?solid?#0F54C3;
          ????width
          :?280px;
          ????margin
          :1px?0px;
          }

          h3?
          {
          ????border-bottom-width
          :?2px;
          ????border-bottom-style
          :?solid;
          ????border-bottom-color
          :?#0F54C3;
          ????padding-top
          :?5px;
          ????padding-right
          :?5px;
          ????padding-bottom
          :?5px;
          ????padding-left
          :?15px;
          ????margin
          :?0px;
          ????font-size
          :?10.5pt;
          }

          #loginView?p?
          {
          ????margin
          :3px;
          ????text-align
          :center;
          }

          #loginView?form?
          {
          ????margin
          :0px;
          }

          .textInput?
          {
          ????border
          :?1px?solid?#CCCCCC;
          ????width
          :?15em;
          ????height
          :12px;
          }

          #loginView?ul?
          {
          ????margin
          :8px?10px?3px?10px;
          }

          #loginView?ul?li?
          {
          ????float
          :?left;
          ????width
          :?130px;
          ????height
          :18px;
          }

          .clear?
          {
          ????clear
          :?left;
          }

          總之,使用CSS將程序和美工分離是絕對的真理,我們程序員只要能夠在框框內輸出正確的數據就夠了,這樣能夠盡量減少程序的bug,美化頁面的事就讓界面設計師去做吧。當然,我們程序員還是要能夠在html中設計正確的division劃分和嵌套,讓界面設計師在設計界面的時候能夠找到定義CSS的錨點。

          最后提一下,如果你的公司附近有幾所大學的話,那么恭喜你,你只需要設置少量的獎金舉辦一個什么CSS設計大賽,那么你的網站就有成十上百的界面可用,何樂而不為呢?


          評論

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-26 17:03 by dev4java-one
          頂!!!!!

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-26 17:19 by chenzijun
          不錯,通俗易懂,還有圖,看的明白...

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-26 21:18 by xuyo
          好,收藏之

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-27 09:29 by kongjia
          中國人看的明白

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-27 09:45 by tory
          想看一下完整的css代碼,呵呵

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-27 09:45 by tory
          想看一下完整的css代碼,呵呵

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-27 09:45 by tory
          想看一下完整的css代碼,呵呵

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-27 10:10 by 竹十一[匿名]
          太絕對了,從一個坑跳到另一個坑。

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-27 11:13 by 海邊沫沫
          完整的CSS代碼如下:
          body,td,th {
          font-size: 12px;
          color: #0f54c3;
          }
          body {
          margin-left: 5px;
          margin-top: 10px;
          margin-right: 10px;
          margin-bottom: 5px;
          }
          a:link {
          color: #0f54c3;
          text-decoration: none;
          }
          a:visited {
          text-decoration: none;
          color: #CC0000;
          }
          a:hover {
          text-decoration: underline;
          color: #FF00FF;
          }
          a:active {
          text-decoration: none;
          color: #3366FF;
          }

          #header {
          height: 60px;
          width: 814px;
          border: 1px solid #0f54c3;
          }

          #logo {
          float:left;
          height: 60px;
          width: 200px;
          background:url(../images/xkland_logo.gif) no-repeat left top;
          }
          #advertisment {
          float: left;
          height: 56px;
          width: 500px;
          margin:1px;
          border: 1px solid #0f54c3;
          }
          #appendix {
          width:100px;
          height:60px;
          float: right;
          text-align:right;
          }
          #appendix p {
          margin:3px;
          }
          #menu {
          border: 1px solid #0F54C3;
          padding:5px;
          margin:0px;
          width:804px;
          margin:1px 0px;
          height: 12px;
          }
          #menu li {
          float:left;
          padding-left:10px;
          padding-right:10px;
          border-right-width: 1px;
          border-right-style: solid;
          border-right-color: #0F54C3;
          }
          #menu .lastMenuItem {
          border-right-style:none;
          }
          #loginView {
          border: 1px solid #0F54C3;
          width: 280px;
          margin:1px 0px;
          }
          #catalog {
          border: 1px solid #0F54C3;
          width:280px;
          margin:1px 0px;
          }
          #search {
          width: 280px;
          border: 1px solid #0F54C3;
          margin:1px 0px;
          }
          #newReply {
          width: 280px;
          border: 1px solid #0F54C3;
          margin:1px 0px;
          }
          #hotTopics {
          width: 280px;
          border: 1px solid #0F54C3;
          margin:1px 0px;
          }
          #statistics {
          width: 280px;
          border: 1px solid #0F54C3;
          margin:1px 0px;
          }
          #hotGroups {
          width: 280px;
          border: 1px solid #0F54C3;
          margin:1px 0px;
          }
          #hotUsers {
          border: 1px solid #0F54C3;
          width: 280px;
          margin:1px 0px;
          }
          #footer {
          width: 814px;
          border: 1px solid #0F54C3;
          margin:1px 0px;
          }
          #newTopics {
          position: absolute;
          height: 279px;
          width: 531px;
          left: 288px;
          top: 100px;
          border: 1px solid #0F54C3;
          }
          h3 {
          border-bottom-width: 2px;
          border-bottom-style: solid;
          border-bottom-color: #0F54C3;
          padding-top: 5px;
          padding-right: 5px;
          padding-bottom: 5px;
          padding-left: 15px;
          margin: 0px;
          font-size: 10.5pt;
          }
          #loginView p {
          margin:3px;
          text-align:center;
          }
          #loginView form {
          margin:0px;
          }
          .textInput {
          border: 1px solid #CCCCCC;
          width: 15em;
          height:12px;
          }
          #loginView ul {
          margin:8px 10px 3px 10px;
          }
          #loginView ul li {
          float: left;
          width: 130px;
          height:18px;
          }
          .clear {
          clear: left;
          }


          完整的HTML代碼如下:
          <%@ page contentType="text/html; charset=utf-8" %>
          <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
          <!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=utf-8" />
          <title>歡迎來到俠客Land</title>
          <link href="styles/default.css" rel="stylesheet" type="text/css" />
          </head>

          <body>
          <div id="header">
          <div id="logo"></div>
          <div id="advertisment">此處顯示 id "advertisment" 的內容</div>
          <div id="appendix">
          <p>收藏本站</p>
          <p>全站下載</p>
          <p>聯系作者</p>
          </div>
          </div>
          <ul id="menu">
          <li>菜單項一</li>
          <li>菜單項二</li>
          <li>菜單項三</li>
          <li class="lastMenuItem">最后一個菜單項</li>
          </ul>
          <div id="loginView">
          <h3>用戶登錄</h3>
          <form name="form1" id="form1" method="post" action="">
          <p>用戶名:
          <input class="textInput" name="userName" type="text" id="userName" />
          </p>
          <p>密 碼:
          <input class="textInput" name="password" type="password" id="password" />
          </p>
          <ul>
          <li>忘記密碼?</li>
          <li>新用戶注冊</li>
          <li><input type="checkbox" name="checkbox" value="checkbox" />記住我</li>
          </ul>
          <p class="clear">
          <input type="submit" name="Submit" value="登 錄" />
          </p>
          </form>
          </div>
          <div id="catalog">此處顯示 id "catalog" 的內容</div>
          <div id="search">此處顯示 id "search" 的內容</div>
          <div id="newTopics">此處顯示 id "newTopics" 的內容</div>
          <div id="newReply">此處顯示 id "newReply" 的內容</div>
          <div id="hotTopics">此處顯示 id "hotTopics" 的內容</div>
          <div id="statistics">此處顯示 id "statistics" 的內容</div>
          <div id="hotGroups">此處顯示 id "hotGroups" 的內容</div>
          <div id="hotUsers">此處顯示 id "hotUsers" 的內容</div>
          <div id="footer">此處顯示 id "footer" 的內容</div>
          </body>
          </html>

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-27 14:19 by 中東
          你提到了,塊無素的margin、height等的關系,那么“行內”元素,這幾個之間的關系是什么呢?input、button他們有沒有有一統一的規則啊

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-27 17:51 by liyg
          不錯,正好用上,非常感謝,支持你一下

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-28 10:54 by weide
          支持

          不過美工好像對這種方式不甚贊同,仍然喜歡畫圖,切片:(

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-28 11:03 by weide
          #newTopics {
          position: absolute;
          height: 279px;
          width: 531px;
          left: 288px;
          top: 100px;
          border: 1px solid #0F54C3;
          }

          另外從這個定義看,如果設定了height和width那么豈不是不會根據div中的內容自動拉伸了?似乎把左側的所有div都嵌到一個div中,然后float:left不是更好?

          有沒有一本書比較全面的講解這些內容?總是斷章取義看了一些介紹,不夠用啊

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-28 17:26 by 海邊沫沫
          樓上的說得非常有道理。

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2006-12-28 19:44 by 海邊沫沫
          行內元素和塊元素的不同,在于行內元素不用單獨作為一行,而且設置行內元素上方和下方的margin和padding不會增加兩行之間的距離,如果要讓兩行之間隔得開一點,可以設置line-height。

          如果要行內元素按照塊元素顯示,可以使用display:block;
          如果要塊元素按照行內元素來顯示,可以使用display:inline;

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2007-01-13 21:04 by 綠色使者、綠色心情
          對css和div的介紹挺淺顯易懂而又很到位的,不得不佩服

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2007-03-16 13:11 by yegucheng
          不錯,配合好的工具,定義確實很方便啊

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2007-03-29 16:32 by popoer
          講的很清楚!支持!

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2007-04-06 14:50 by itspy
          有時候被的元素還會重疊到float元素上

          寫的太好了,上面有一個筆誤。

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2007-04-06 16:05 by itspy
          樓主在回復中給出的源碼,在不同的平臺下好像有不同的表現。

          在FF與IE下顯示的不太一樣。

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2007-05-23 15:47 by joesun
          發現一個比較惡心的問題。ie6是支持在relative定位時使用left和top屬性的,但是frontpage2003里在編輯狀態下left和top是不起作用的。。。

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2007-06-14 09:39 by qocop
          在中文編碼下 正常,
          其他編碼下, 亂

          # re: SpringSide開發實戰(三):漫談CSS和頁面布局  回復  更多評論   

          2008-02-21 17:37 by d34
          訪問公司屏蔽網站的方法
          可以使用代理,推薦兩個代理網站
          http://www.tgod.com.cn 代理解決方案
          http://www.proxy163.com 代理163
          進入后點擊在線web代理.
          主站蜘蛛池模板: 资阳市| 清河县| 浦县| 鹤峰县| 临安市| 延长县| 定襄县| 应城市| 沙坪坝区| 武穴市| 哈尔滨市| 桓台县| 龙海市| 建宁县| 克什克腾旗| 娄烦县| 连平县| 铁力市| 黄陵县| 锡林郭勒盟| 维西| 犍为县| 昌黎县| 平和县| 韶关市| 连山| 康保县| 赫章县| 宜君县| 唐海县| 靖宇县| 镇赉县| 溧阳市| 新兴县| 荔波县| 长垣县| 宜春市| 阿坝县| 尉氏县| 赣州市| 赤壁市|