Bobby

聚沙成塔 集腋成裘
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CSS+DIV第二天

Posted on 2006-05-12 13:28  Bobby  阅读(723)  评论(0编辑  收藏  举报

第二天开始. 昨天学习了css的基本用法.包括css的引用和一些常用css属性。掌握了css的基本用法,只是完成了css+div排版的第一步。说到排版,最重要的莫过于定位。我们用table来排版的时候是直接在网页上画出一个个格子,把内容填充到相应的格子里去。用css也是这个原理,不过css不能直接划格子,它有它自己的一套定位方法。今天的目标就是掌握css的定位。


首先,介绍两个定义:相对定位和绝对定位。相对定位就是允许在文档的原始位置上进行偏移。而绝对定位则允许任意定位。下面是定位需要用到的几个属性:



因为定位不是一般的重要,所以这里详细介绍一下各个参数的作用:


position: static | absolute |relative
static :  无特殊定位,对象遵循HTML定位规则
absolute :  将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位。而其层叠通过z-index属性定义。此时对象不具有边距,但仍有补白和边框
//我们用绝对定位的时候一般都用这个属性。
relative :  对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置


left: auto|lenth
auto :  无特殊定位,根据HTML定位规则载文档流中分配
length :  由浮点数字和单位标识符组成的长度值 | 百分数。必须定义position属性值为absolute或者relative此取值方可生效。
例:div { position: absolute; left: 1in; }
top和left的用法是一样的,也要注意的是必须定义position属性值为absolute或者relative此取值方可生效。


width:auto|lenth
auto :  无特殊定位,根据HTML定位规则载文档流中分配
length :  由浮点数字和单位标识符组成的长度值 | 百分数。
height与width语法完全相同。而它不需要定义position必须为absolute


clip : auto | rect ( number number number number )
auto :  对象无剪切
rect ( number number number number ) :  依据上-右-下-左的顺序提供自对象左上角为(0,0)坐标计算的四个偏移数值,其中任一数值都可用auto替换,即此边不剪切


overflow : visible | auto | hidden | scroll
visible :  不剪切内容也不添加滚动条。假如显式声明此默认值,对象将被剪切为包含对象的window或frame的大小。并且clip属性设置将失效
//这个属性的结果就像当与没有div,内容有多少就显示多少。
auto :  此为body对象和textarea的默认值。在需要时剪切内容并添加滚动条
hidden :  不显示超过对象尺寸的内容
scroll :  总是显示滚动条


z-index: auto | number
auto :  遵从其父对象的定位
number :  无单位的整数值。可为负数
//应该是用来产生一些立体效果滴


visibility: inherit | visible | collapse | hidden
inherit :  继承上一个父对象的可见性
visible :  对象可视 hidden :  对象隐藏
collapse :  主要用来隐藏表格的行或列。隐藏的行或列能够被其他内容使用。对于表格外的其他对象,其作用等同于hidden。IE5.5尚不支持此属性。


以上属性中的position,width,height,left,top,z-index是用来给div定位的,其中的clip,overflow,visibility则是用来控制对内容的显示的,这些属性可以看作一个层的基本属性。掌握了层的基本属性,我们就可以来看一个用层来定位并控制显示的例子:


<html>
   <head>
   <title>dingwei css</title>
   <style type=“text/css”>
   <!--
    #container1{position:absolute;top:100}
    //*position:absolute;用定义container1 为绝对位置*//
    #container2{position:absolute;top:100;visibility:hidden;}
    //*定义container2为绝对定位,初始可见度为hidden(隐藏)*//
    p{font-size:12pt;}//*定义p的字体*//
    -->
    </style>
    </head>
    <body>
    <p style=“font-family:行书体;font-size:15pt;color:#cc33cc”>
    请选择一幅图片: </p>//*设置字体大小、名称、颜色*//
    <div id=“container1”>
    <dd><img src=“ss01065.jpg” width=“185”height=“280”>
   //*导入一张图片,标识符为container1*//
    <p style=“font-family:行书体;color:#cc9933;font-size:12pt”>
     名称:大漠</p>//*设置字体名称、颜色、大小*//
    </dd>
    </div>
    <div id=“container2”>
    <dd><img src=“ss01095.jpg” width=“185”height=“280”>
   //*导入另一种图片,标识符为container2*//
    <p style=“font-family:行书体;color:#3366cc;font-size:12pt”>
     名称: 大海</p>
    </dd>
    </div>
    <form name=“myform”>//*定义两个按钮*//
    <p><input type=“button” value=“大漠”      
    onclick=“container1.style.visibility=‘visible’;
    container2.style.visibility=‘hidden’”>
    //*定义鼠标点击事件图片1为可见,图片2为不可见*//
    <input type=“button” value=“大海”;
    container1.style.visibility=‘hidden’;
    onclick=“container2.style.visibility=‘visible’;
    container1.style.visibility=‘hidden’”></p>
    //*定义鼠标点击事件图片1为不可见,图片2为可见*//
    </form>
    </body>
  </html>
button上用了一点js的技巧来控制css中的visibility值.

上面这个例子讲的只是平面布局,驼驼以前的css知识也就到此为止,然而上面有个z-index的参数,是用来立体定位的,所以,div也可以是立体的,下面就来一个简单的立体例子:
<html>
    <head>
    <title>zindex</title>
    <style type=“text/css”>
    <!--                   
    .pile{position:absolute;left:2in;top:2in;
    width:3in;height:3in;}//*定义了类pile,以及它的位置*//
    .pile1{position:absolute;left:3in;top:2in;
    width:1in;height:1in;} //*定义了类pile1,以及它的位置*//
    -->
    </style>
    </head>
    <body>
    <img src=“ss01010.jpg” class=“pile” id=“image”
     style=“z-index:1”>
     //*导入一张图片,使它为pile类,z-index属性定义为1,位置处于最下方
      *//
    <div class=“pile” id=“text1”
    style=“color:#ffff33;z-index:2” > 这段文字将覆盖在图片上。
    </div>//*定义一段文字的颜色和z-index属性为2,处于中间位置*//
    <img src=“075.gif” class=“pile1” id=“image”
    style=“z-index:3”>
     //*导入第二张图片,使它为“pile1”类,z-index属性为3,位置处于最上
      方*//
    </body>
  </html>