CSS+DIV布局初练—DIV元素必须成对出现?

很少做和布局相关的工作,往往都是同事将界面设计好,自己填写代码而已,今天心血来潮,决定自己尝试一下这个传说中的CSS,其实做布局首先是要分块,将界面分为自己想要的几个部分,在Winform中,一般都是通过panel+doc属性搞定,如果仔细想想,其实这个panel实际上是起到了划分占位的作用,那么在CSS中布局,划分就应该是用div来完成,本人不才,习惯了Winform的开发,所以第一个布局还是按照Winform的风格来练习的。

在CSS中DIV 属于块级别元素,块元素(例如div)在没有任何布局属性作用时,默认排列方式是换行排列;也就是说,即便它的高度是1px,它也会占居整行。但是在今天使用div的时候,发现一个问题,这个问题让我找了半天,我的效果本应该是下面的:

 

效果的代码如下,大家不要嘲笑,这个布局在做C/S开发的时候很常见,也很容易,但是在CSS这,我搞了半天。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="_10_1.WebForm1" %>

<!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 runat="server">
    <title></title>
    <style type="text/css">
        #t1
        {
            float:left;
        
            
            
        }
        
        body
        {
            width : 100%;
            height:100%;
             margin:0,0,0,0
        }
        #top
        {
            width : 100%;
            height:50px;

            background-color:Silver
          
            
        }
          .mapstyle1
        {
            height : 100%;
            width:40px;

            background-color:Purple
        }
     
        
        
        #t2
        {
            height: 60px;
            width :100%;
               
        }
        #main
        {
         width:100%;
         height:300px;
   
          
        }
        
        #main #t2 #t3
        {
            width:56px; 
            height:100%; 
            float:right; 
            background-color:Red;
         
           
        } 
        #main #t2 #map
        {
             height: 60px; 
             width:95%;
             background-color:Orange;
             float:left
        }
        #main .bottom
        {
            height:10px; 
            background-color:  Green
           
           
        }
        
    </style>
    <script type="text/javascript">

        window.onload = function () {
//            var btn1 = document.getElementById("map");
//            btn1.className = "mapstyle1"

//            btn1.onclick = function () {
//                alert("hello");
//            }
        }
    
    </script>
</head>
<body>
<div id="main">

   <div  id ="top"></div>

  <div id="t2" >
        <div  id="t1" class="mapstyle1" >
        </div>       
        <div id="map"></div>
       <div id="t3">

       </div>
   </div>

    <div  id ="bt" class="bottom"></div>



 </div>
</body>
</html>

在开始的时候,我将id为top的div 写成

<div  id ="top"/>

结果效果成了下面的样子:

这个结果是id为top的div没有出现,在google浏览器中调试发现高度为0,当将

<div  id ="top"/>

改成

<div  id ="top"></div>

效果就出来了,看来div必须成对出现呀!

在这里还学习了float的用法。

上面说过,如果给div不做任何布局,那么这个div会占据正行,该div下面的一个新的div会另起一行,如何让这两个div元素并排显示呢?float就可以解决这个问题。

 

CSS的float属性,作用就是改变块元素(block element)对象的默认显示方式,HTML标签设置了float属性之后,它将不再独自占据一行。

 浮动(float)细节:
      1.左(右)浮动元素,尽量靠近父元素左(右)内边沿。
      2.浮动元素尽量不去重叠交叉。
      3.浮动元素尽可能高,当不会高于父元素顶内边沿。

CSS+DIV布局初练—DIV元素必须成对出现?,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。