<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    京山游俠

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

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

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

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

    一、CSS中的塊模型

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

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

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

    二、CSS中的文檔流模型

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

    他們對應(yīng)的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的右側(cè),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

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

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

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


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

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

    在CSS中,最讓人不好理解的應(yīng)該算是float和clear意義了。float可以達到這樣一個效果,就是本來應(yīng)該一行一個的塊元素,如果定義了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后面加入一個空段落,并設(shè)置其為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項目為例,來設(shè)計一個完整的頁面吧。下面是我的welcome.jsp頁面的布局圖:
    20.JPG

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

    是不是很簡潔?

    而關(guān)于頁面美化和布局的內(nèi)容,全部轉(zhuǎn)移到了CSS中。先來說說菜單項,菜單項是使用列表實現(xiàn)的,而列表常規(guī)的顯示樣式是下面這樣的:
    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我使用絕對定位把它擺到了右邊作為主要內(nèi)容區(qū)之外,其它的都是順著文檔流擺下來的,只定義了寬度,而不需要定義位置。

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

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


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

    別看這里面布局也挺復(fù)雜的,我也完全沒有使用表格。下面是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標(biāo)簽來作為標(biāo)題,這樣避免了為標(biāo)題另外嵌套一個div,對輸入文本框定義了類textInput來定義它們的樣式,而其他的文本內(nèi)容,我都是使用了p標(biāo)簽和ul、li標(biāo)簽,從上面的效果圖就可以看出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將程序和美工分離是絕對的真理,我們程序員只要能夠在框框內(nèi)輸出正確的數(shù)據(jù)就夠了,這樣能夠盡量減少程序的bug,美化頁面的事就讓界面設(shè)計師去做吧。當(dāng)然,我們程序員還是要能夠在html中設(shè)計正確的division劃分和嵌套,讓界面設(shè)計師在設(shè)計界面的時候能夠找到定義CSS的錨點。

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


    評論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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" 的內(nèi)容</div>
    <div id="appendix">
    <p>收藏本站</p>
    <p>全站下載</p>
    <p>聯(lián)系作者</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" 的內(nèi)容</div>
    <div id="search">此處顯示 id "search" 的內(nèi)容</div>
    <div id="newTopics">此處顯示 id "newTopics" 的內(nèi)容</div>
    <div id="newReply">此處顯示 id "newReply" 的內(nèi)容</div>
    <div id="hotTopics">此處顯示 id "hotTopics" 的內(nèi)容</div>
    <div id="statistics">此處顯示 id "statistics" 的內(nèi)容</div>
    <div id="hotGroups">此處顯示 id "hotGroups" 的內(nèi)容</div>
    <div id="hotUsers">此處顯示 id "hotUsers" 的內(nèi)容</div>
    <div id="footer">此處顯示 id "footer" 的內(nèi)容</div>
    </body>
    </html>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2008-02-21 17:37 by d34
    訪問公司屏蔽網(wǎng)站的方法
    可以使用代理,推薦兩個代理網(wǎng)站
    http://www.tgod.com.cn 代理解決方案
    http://www.proxy163.com 代理163
    進入后點擊在線web代理.
    主站蜘蛛池模板: 99亚偷拍自图区亚洲| 亚洲精品国产美女久久久| 亚洲一区二区三区精品视频| 久久成人a毛片免费观看网站| 亚洲偷自拍拍综合网| sss日本免费完整版在线观看| jiz zz在亚洲| 在线中文高清资源免费观看| 亚洲av片在线观看| 国产免费久久精品| 大片免费观看92在线视频线视频| 亚洲精品视频免费观看| 两个人看的www免费视频| 日韩亚洲Av人人夜夜澡人人爽| 日韩精品无码免费一区二区三区| 亚洲精品美女在线观看播放| 久久久高清免费视频| 亚洲人成网站18禁止| 亚洲国产精品成人AV无码久久综合影院| 久久亚洲精品成人av无码网站| 7x7x7x免费在线观看| 亚洲www在线观看| 四虎永久成人免费| 两性色午夜视频免费播放| 337p日本欧洲亚洲大胆精品555588| 精品福利一区二区三区免费视频| 亚洲熟女综合色一区二区三区| 免费成人午夜视频| 亚洲欧美日韩自偷自拍| 亚洲国产成人久久综合一区77| 中国好声音第二季免费播放| 亚洲成人免费网站| 啊v在线免费观看| 99在线观看免费视频| 色综合久久精品亚洲国产| 亚洲精品无码专区久久久| 成年免费大片黄在线观看岛国 | 久久精品夜色国产亚洲av| 国产卡一卡二卡三免费入口| 菠萝菠萝蜜在线免费视频| 亚洲精品线在线观看|