CSS学习3-div的使用以及盒子

  DIV布局
 
1、如果单单就是一个div和span 那么他们的显示没有什么实际上的区别 
  
   他们主要的区别就是 div换行显示 而span不换行显示。。   DIV被认为是一个而span是行内元素  不会产生换行。 

   div的默认宽度是充满整个浏览器的并且会随着浏览器的变化而变化,div的宽度和高度设置的时候一定要带上单位如px 

2、盒子模型是排版的一个重要模型  ,css所有元素都可以看成一个盒子来操作

   CSS的盒子模型包括   margin border padding  content  四个重要概念 

   在div中 只能设置内部文本居中并不能设置 div中的div居中我们设置居中要通过padding来设置 、
 
   比如<div><div></div></div> 比如内部的div即使我们设置了内部div的宽度 但是如果我们设置了外部div的padding属性那么浏览器不显示我们设置的宽度 

  
   行内元素就是不可以换行的元素 ,span我们平时设置他的样式的时候也只是设置他的背景 字体等等,如果我们设置宽度和高度就不可以 
 
   如果我们想设置他的宽度和高度 那么就加上  display:inline-block; 这个把span设置成行内快显示,不会换行,

   如果我们设置成displau:block;就会换行,因为此时span的显示相当于div,div可以嵌套span但是反过来就不可以  。

  
   我们设置span的margin值为负数可以使两个span重合,我么如果想要看到重合的效果就不能使用xhtml的dtd约束。   
  
    padding:10px;默认情况下是设置div块的上下边界  .

3、 div可以嵌套div ,也叫子div 。  
 
    margin 和padding的值原则  1值:  上 右 下 左     三值: 上 左右 下   二值:  上下 左右     .
   padding是指这个元素内部的内容和他的边界的距离,margin则是指这个元素边框和外部元素的距离    ,两个元素的margin和相加才是间距。 例如margin-left+margin-right

 
   div高度 宽度设置原则是 :如果我们设置的高度或者宽度大于 内部所有盒子的总高度或者宽度 那么设置有效 , 否则设置无效  。

   css中每一个元素都可以认为是一个盒子 、


4、 以上是盒子模型 下面是元素的定位:  
   
     float定位是css定位中使用频率最高的方法 。

     float的效果一旦被设置,那么div块原先的占行效果就没有了, 就好像浮动在浏览器上面一样,n个浮动的div将 显示在一行 我们完全可以灵活的设置 margin 和padding
  
    来控制div的位置 。比如一个div我们设置了浮动效果left ,如果他的后面还有一个div那么后面那个div 将会到前面那个div的行上,而前面设置了float的div将会漂浮在
  
    后面的div上面 ,这就是div的float浮动效果。    
  
    一个div被设置了浮动效果  那么就会导致其后面的div向前移动,

     知道了这个原理 我们考虑下 div菜单如何设置呢?

    
    在设置内部嵌套div的margin为负数的时候,内部的div也可能出现超出外部块的情况 。
<div class="father">
  <div class="son1">son1 </div>
  <div class="son2"></div>
</div>   

上述代码我们将son1 和son2的样式设置为float:left;的时候发现,无论我们怎么设置son的margin都不好用,而且son1 和son2这两个子块固定在 father的下边,
为了解决这个问题我们需要设置father的padding 设置到直到 son1和son2不超出father的时候,但是设置father的padding的时候我们发现实际上是设置了father的 。
左上边距离son1 和son2的距离 。

上面的两种方法都不好,最好的解决方案是 在所有的子div 的后再加上一个 不浮动的div 即没设置float属性的div ,这个时候我们发现  设置了float的div漂浮到了
下面这个div之上了  而且可以设置margin了,并且也没有超出 father ,并且father也会改变大小。

5、clear  作用如果指定范围有浮动对象 那么会换到没有浮动对象的那行显示  ,清除float对元素的影响,往往导致了大量的换行显示

none :  允许两边都可以有浮动对象
both :  不允许有浮动对象
left :  不允许左边有浮动对象
right :  不允许右边有浮动对象  

清除所有float影响  clear:both  ;在图文混排中很有用


6、内联样式 inline 可以使一个快元素 变成一个行内元素 ,不会换行 。看下面一段用div实现菜单的代码 。
  如果div内部是行内即不换行的元素 或者设置了 diplay:inline;那么可以设置 text-Aline:center ; 居中显示 。

 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
  div.father{
       border:1px dashed ;
    background-color: #CCFFCC   ;
    padding:10px ;
    text-align:center ;
    width:10% ;
   
        }
  div.son1{
    border: 1px dashed ;
    background: #33CCFF  ;
    display:inline ;
    margin:2px ;
    }
    a{
    text-decoration:none;
     height:100% ;
    display: block;
    padding:15px ;
    margin:0px ;
   
    }
    a:hover{
  color:#FFFF33 ;
  font-size:18px ;
  font-family:"Courier New", Courier, monospace ;
  background-color:#FFCC33 ;
  
  }
</style>
</head>

<body>
<div class="father">
   <div class="son1"><a href="#">inline1</a></div>
   <div class="son1"><a href="#">inline1</a></div>
    <div class="son1"><a href="#">inline1</a></div>
  <div class="son1"><a href="#">inline1</a></div>
   <div class="son1"><a href="#">inline1</a></div>
    <div class="son1"><a href="#">inline1</a></div>
     <div class="son1"><a href="#">inline1</a></div>

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

 
 

 

 

inline1
inline1
inline1
inline1
inline1
inline1
inline1

你可能感兴趣的:(css,Class,div,float,border)