二列和三列布局-Web标准(div+css)教程

敖游
2016-03-06
来源:遨游建站



  


  代码原文:

  <!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=gb2312" />

  <style>

  #content { width:470px; margin:0 auto;}

  #side { background: #99FF99; height: 300px; width: 120px; float: left; }

  #main { background: #99FFFF; height: 300px; width: 350px; margin-left: 120px; }

  </style>

  </head>

  <body>

  <div id="content">

  <div id="side">此处显示 id "side" 的内容</div>

  <div id="main">此处显示 id "main" 的内容</div>

  </div>

  </body>

  </html>

  四、xhtml的块级元素(div)和内联元素(span)

  块级元素:就是一个方块,像段落一样,默认占据一行出现;

  内联元素:又叫行内元素,顾名思义,只能放在行内,就像一个单词,不会造成前后换行,起辅助作用。

  一般的块级元素诸如段落<p>、标题<h1><h2>...、列表,<ul><ol><li> 、表格<table>、表单<form>、DIV<div>和BODY<body>等元素。而内联元素则如: 表单元素<input>、超级链接<a>、图像<img>、<span> ........ 块级无素的显著特点是:每个块级元素都是从一个新行开始显示,而且其后的无素也需另起一行进行显示。

  


  从上图的例子可以看出,块级元素默认占据一行,相当于在它之前和之后各插入了一个换行;而内联元素span没对显示效果造成任何影响,事实也是如此;em只是让字体变成了斜体,也没有单独占据一行。这就是块级元素和内联元素,正因为有了这些元素,才使我们的网页变得丰富多彩。

  如果没有css的作用,块元素会顺序以每次另起一行的方式一直往下排。而有了css以后,我们可以改变这种html的默认布局模式,把块元素摆放到你想要的位置上去。而不是每次都愚蠢的另起一行。也就是说,可以用css的display:inline将块级元素改变为内联元素,也可以用display:block将内联元素改变为块元素

  五、float属性

  回到我们的例子当中,理解了块级元素和内联元素,对理解浮动就容易多了。float是个重点,希望大家都能理解。上例中用float让元素向左浮动,在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素;且要指明一个宽度,否则它会尽可能地窄;另外当可供浮动的空间小于浮动元素时,它会跑到下一行,直到拥有足够放下它的空间。

  想必大家都用过word排过版,当中有个图文混排功能,如下图:

  


  这个功能非常类似于css中的浮动,下面我们用css来实现这一功能:

  <div id="side"><img src="http://www.aa25.cn/uploadfile/taobao0903/20090212165039036721.gif" width="192" height="142" /></div>

  <div id="main"> 标准之路提供DIV+CSS教程,DIV+CSS视频教程,web2.0标准,DIV+CSS布局入门教程,网页布局实例,css布局实例,div+css模板,div+css实例解析,网站重构,网页代码,水晶图标,幻灯广告图片.教程适合初学者循序渐进学习!</div>

  创建完以上代码后,在浏览器中预览会显示如下结果:

  


  下面用css让side浮动,再看看效果

  body { font-size:18px; line-height:200%; }

  #side { float:left;}

  


  大家看看,是不是和word的效果已经很像相了,但这里的文字和图片右侧贴的很近,怎么办呢?刚才已经说了,当元素浮动过之后,需要指定一个宽度,否则它会尽可能窄。那么把side的宽度设置为大于图片的宽度,它们中间应该就有空隙了。图片的宽度是192px,设置side为202px,中间将会有10px的空隙了。

  body { font-size:18px; line-height:200%; }

  #side { float:left; width:202px;}

  


  细心的朋友已经发现,上例中#main的div还定义了margin-left:120px;而这里没有定义,但它多出的文字却跑到了图片(#side)的下方,是不是设置margin-left:后,它就不会跑到#side的正文呢?如果你能想到这一点,你的确是太聪明了,事实确实是这样,在css样式表中加上下面一行

  #main { margin-left:202px;}

  


  这就是如何应用浮动实现两列布局的原理。那么三列呢?

  六、三列自适应宽度

  三列自适应宽度,一般常用的结构是左列和右列固定,中间列根据浏览器宽度自适应。下面在二列自适应宽度基础上修改一下

  <div id="side">此处显示 id "side" 的内容</div>

  <div id="side1">此处显示 id "side1" 的内容</div>

  <div id="main">此处显示 id "main" 的内容</div>

  


  增加以下css样式:

  #side1 { background: #99FF99; height: 300px; width: 120px; float: right; }

  


  


  


  把原来#main样式的width:70%去掉,然后设置左右外边距各120px,让出左右列的宽度

  #main { background: #99FFFF; height: 300px; margin:0 120px; }

  


  预览一下效果如下:

  


  也许预览出来的效果和我的不一样,别急,还有一项设置,默认body是有外边距的,所以这里还得设置body的外边距为0;点击css面板上的新建按钮,然后在新建面板中选择:标签(重定义标签外观),然后选择body,设置body的边界为0即可。

  


2  /  3
阅读 341
分享

暂无评论,快来发表吧~

写评论...