利用div的定位制作复杂的页面布局

既然是复杂的布局自然用到较多的div以及并列与嵌套。这就要我们在为它们命名的时候遵从一定的规定,以便于可读性。
下面先来看一张布局图:


这是三九健康网一个频道的页面,原本是很长的页面,但为了说明问题,取了个完整布局样式,而省去了中间的内容。
我们可以把它看做是一个居中的页面布局,这样要实现整体居中,就需要一个div作为主要容器,我们把这个div命名为container.
CSS样式为:
程序代码 程序代码
#container{margin:0px auto;}

这样就实现了整体居中显示。

我们再来看在这个主容器里面分别都有哪些部分:
#header头部:位于顶端,显示网站LOGO及其它相关元素。
#mainmenu主菜单
#banner头部横幅广告
#menu频道菜单
#primary主内容区
#footer脚部区:显示底部功能链接和版权信息。
这些区域从上至下依次排列形成了纵向布局模式。它们之间是并列的,不需要要指定任何样式便可以实现从上到下的叠放。
而在主内容区,又加入了嵌套,即嵌套了两个div区域,左边为:pri_left,右边为pri_right.这两个如何实现左右分栏的,在前面的第六节教程里有详细的说明。在此再罗嗦下,也就是使用了float浮动属性。
css样式为:
程序代码 程序代码
#pri_left,#pri_right{float:left;width:75%;}
#pri_left{width:20%;}


此处代码注意:在属性的书写上我们采用了简化的方式应用了群组标签#pri_left,#pri_right{},在参数的书写上,我们为他们二者都定义了width:75%.节约了代码量,但紧接着在下面的属性中单独为左栏定义了width:20%,此时的左栏宽就会覆盖掉上一句的width:75%.从而实现了二者宽度的单独定义。
下面我们来定义这种样式,为了能够显示区域,我们只为他们加上宽度高度及边框样式。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<style type="text/css">
<!--
#container{margin:0px 
auto;border:1px dashed #d55;width:98%;}
#header{border:1px solid #d55;height:48px;margin
-top:0px;}
#mainmenu{border:1px solid #d55;height:36px;margin
-top:2px;}
#banner{border:1px solid #d55;height:60px;margin
-top:2px;}
#menu{border:1px solid #d55;height:36px;margin
-top:2px;}
#primary{border:1px solid #d55;margin
-top:2px;}
#pri_left,#pri_right{float:
left;width:78%;border:1px solid #d55;margin:0px 2px;height:300px;}
#pri_left{width:
20%;}
.kuang1{float:
left;border:1px dashed #d55;width:40%;height:100px;}
.kuang2{float:
left;border:1px dashed #d55;width:29%;height:100px;}
.kuang3{float:
left;border:1px dashed #d55;width:69%;height:48px;}
.kuang4{float:
left;border:1px dashed #d55;width:29%;height:48px;}
.kuang5{float:
left;border:1px dashed #d55;width:99%;height:50px;}
#footer{border:1px solid #d55;height:48px;margin
-top:2px;}
-->
</style>
</head>

<body>
<div id="container">
    
<div id="header">头部:位于顶端,显示网站LOGO及其它相关元素。</div>
    
<div id="mainmenu">主菜单</div>
    
<div id="banner">头部横幅广告</div>
    
<div id="menu">频道菜单</div>
    
<div id="primary">
        
<div id="pri_left">div为pri_left</div>
        
<div id="pri_right">
        
<div id="pri_right1" class="kuang1">div为pri_right1</div>
        
<div id="pri_right2" class="kuang2">div为pri_right2</div>
        
<div id="pri_right3" class="kuang2">div为pri_right3</div>
        
<div id="pri_right4" class="kuang1">div为pri_right4</div>
        
<div id="pri_right5" class="kuang2">div为pri_right5</div>
        
<div id="pri_right6" class="kuang2">div为pri_right6</div>
        
<div id="pri_right7" class="kuang3">div为pri_right7</div>
        
<div id="pri_right8" class="kuang4">div为pri_right8</div>
        
<div id="pri_right8" class="kuang5">div为pri_right9</div>
        
</div>
    
</div>
    
<div id="footer">脚部区:显示底部功能链接和版权信息。</div>
</div>
</body>
</html>

 

以上是实现页面样式的代码,代码看起来比较繁杂,但里面有很多可以简化的地方,比如充分利用class(类)来指派参数,能缩减代码量,且增加可读性。当然这不是本节讲解的重点,我们会在未来的教程中详细论述。
代码效果如图:


细心的朋友会发现我们在pri_right区域里用pri_right1~pri_right9分别指定了9个DIV对象,这里面就是充分利用了浮动的属性,而不必再次嵌套。把它们中的每个对象都设定出固定的宽度与高度,加上向左浮动的属性,就会从左向右排列,到右侧容不下时,就会转入下一行显示,从而实现它们的整齐排列。当然这种方式,关键在于设定的精确的宽高。

可见,div的重要作用就是实现大页面的大布局,并且充分利用其浮动定位及并列嵌套的关系,构造出复杂多样的布局样式来。

转载于:https://www.cnblogs.com/xiachufeng/archive/2010/09/11/1823899.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LSGO软件技术团队2015~2016学年第四周(0921~0927)总结

我们是一个充满正能量的学习型团队&#xff01; 简简单单做人&#xff0c;快快乐乐做事&#xff01; 本周签到情况统计&#xff08;第四周0921至0927&#xff09;&#xff1a; 团队技术博客账号统计&#xff1a; 进入团队需要遵守的规则&#xff1a; 1.进入团队的同学需遵守“…

正则匹配括号里面的内容不包括括号_python正则表达式

是一个计算机科学概念用于使用单个字符串来描述&#xff0c;匹配某个规则的字符串常常用来检索&#xff0c;替换某些模式的文本正则的写法.(点号)&#xff1a;表示任意一个字符&#xff0c;除了[](中括号)&#xff0c;匹配括号中列举的范围&#xff0c;如[0-9]代表任意单个字数…

专业程序员必知必会的技巧:驯服复杂代码

你从入职第一天起就要应对复杂代码。 若是还未遇到过无法理解的程序&#xff0c;那说明你编程的年头还不够长。在行业里&#xff0c;要不了多久你就会碰到让人发懵的混乱代码&#xff1a;巨兽、面条工厂、来自地狱的遗留系统。我曾接手过一个程序&#xff0c;它的前任在听说要…

LSGO软件技术团队2015~2016学年第五周(0928~1004)总结

一个充满正能量的学习型团队&#xff01; 简简单单做人&#xff0c;快快乐乐做事&#xff01; 本周签到情况统计&#xff08;第五周0928至1004&#xff09;&#xff1a; 团队技术博客账号统计&#xff08;第五周0928至1004&#xff09;&#xff1a; 实验室工作台使用情况统计&…

香肠派对电脑版_《香肠派对》是不是除了《和平精英》最成功的吃鸡手游:靠恶搞火了?...

我们知道&#xff0c;自从《绝地求生》自国内外火了之后&#xff0c;国内陆续上线了大大小小不少于10款各种类型的吃鸡手游&#xff0c;从最早的《丛林法则》、到瞬间倒下的《荒野行动》&#xff0c;再到现在最火的《和平精英》和后面即将上线的武侠吃鸡《江湖求生》。国内的游…

C/C++程序员必读的十本书(上)

在Gmail TopLanguage Group 中看到一篇文章“C/C程序员必读的十本书&#xff08;上&#xff09;”&#xff0c;大家的讨论都很激励&#xff0c;大家都觉得这篇文章写得很棒&#xff0c;我想在Group里的朋友都能在Lookgirl的这篇文章里获益不少&#xff0c;为此斗胆在此转载该文…

LSGO软件技术团队2015~2016学年第六周(1005~1011)总结

LSGO软件技术团队成立于2010年10月&#xff0c;主要从事的应用方向为互联网与移动互联网&#xff08;UI设计&#xff0c;前端开发&#xff0c;后台开发&#xff09;&#xff0c;地理信息系统&#xff1b;研究方向为数据分析与计算机视觉。成立几年来为学校培养了一批优秀学生&a…

Silverlight反编译系列二常见代码(自动生成属性CompilerGenerated,代码)

在Silverlight有一些编译后自动生成的代码&#xff0c;最常见的是CompilerGeneratedAttribute和DebuggerNonUserCodeAttribute&#xff0c;下面介绍一下这俩种属性 1.CompilerGeneratedAttribute 自动属性 使用自动属性后&#xff0c;你可以不用手工声明一个私有成员变量以及编…

frontcon函数用不了_真香警告!用了XLOOKUP再也回不去VLOOKUP了

作为一名社畜&#xff0c;Excel是必备技能。如果你不会vlookup函数&#xff0c;都不好意思跟别人说你会用Excel。但vlookup也有很大的局限性&#xff0c;比如&#xff1a;首列必须为查找依据列 无法简单的多条件匹配 横向查找等等往往需要进行一些复杂操作的时候我们都需要修改…

LSGO软件技术团队爬山活动

LSGO软件技术团队成立于2010年10月&#xff0c;主要从事的应用方向为互联网与移动互联网&#xff08;UI设计&#xff0c;前端开发&#xff0c;后台开发&#xff09;&#xff0c;地理信息系统&#xff1b;研究方向为数据分析与计算机视觉。成立几年来为学校培养了一批优秀学生&a…

HDOJ 2526 HDU 2526 浪漫手机 ACM 2526 IN HDU

MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid2526题目描述:浪漫手机Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 362 Accepted Submissi…

2引擎帮助文档_Simcenter Amesim 16液压部分帮助文档中英文对照(2)

10/49 Hydraulic Component Design Library10/49液压元件设计库The simplest possible check valve consists of a ball which is free to move over a limited displacement.In one extreme position it is fully closed and completely blocks the flow, and in the other ex…

ArcGIS Engine Runtime 10 Setup步骤

首先安装ArcGIS License Manager 10 Setup 其次安装ArcGIS Engine Runtime 10 Setup 再次&#xff0c;拷贝service.txt文件到ArcGIS\License10.0\bin文件夹下&#xff0c;替换原有文件。 运行ArcGIS 许可服务管理器 - 10.0&#xff0c;启动服务。 最后&#xff0c;运行ArcGIS管…

修改Fiddler实用插件JsonViewer

在Web开发中&#xff0c;Fiddler是我们常用的工具&#xff0c;JSON是我们常用的数据格式。本文所要说的JsonViewer就是一款在Fiddler中查看JSON对象的小插件&#xff08;当然它不仅仅是作为Fiddler的插件&#xff0c;还有独立运行版和Visual Studio的插件&#xff09;。关于它的…

matlab用regress方法求ln函数_数学篇|高中数学48条秒杀型公式与方法,一定要掌握!...

「 致于学教育 」高中数学48条秒杀型公式1.适用条件&#xff1a;[直线过焦点]&#xff0c;必有ecosA(x-1)/(x1)&#xff0c;其中A为直线与焦点所在轴夹角&#xff0c;是锐角。x为分离比&#xff0c;必须大于1。注上述公式适合一切圆锥曲线。如果焦点内分(指的是焦点在所截线段上…

LSGO软件技术团队对外技术交流

LSGO软件技术团队成立于2010年10月&#xff0c;主要从事的应用方向为互联网与移动互联网&#xff08;UI设计&#xff0c;前端开发&#xff0c;后台开发&#xff09;&#xff0c;地理信息系统&#xff1b;研究方向为数据分析与计算机视觉。成立几年来为学校培养了一批优秀学生&a…

大型项目使用Automake/Autoconf完成编译配置

使用过开源C/C项目的同学们都知道&#xff0c;标准的编译过程已经变成了简单的三部曲&#xff1a;configure/make/make install, 使用起来很方便&#xff0c;不像平时自己写代码&#xff0c;要手写一堆复杂的Makefile&#xff0c;而且换个编译环境&#xff0c;Makefile还需要修…

java中数组的返回值是什么类型_Java数组也是一种数据类型

Java 的数组要求所有的数组元素具有相同的数据类型。因此&#xff0c;在一个数组中&#xff0c;数组元素的类型是唯一的&#xff0c;即一个数组里只能存储一种数据类型的数据&#xff0c;而不能存储多种数据类型的数据。因为 Java 语言是面向对象的语言&#xff0c;而类与类之间…

LSGO软件技术团队内部技术交流

LSGO软件技术团队成立于2010年10月&#xff0c;主要从事的应用方向为互联网与移动互联网&#xff08;UI设计&#xff0c;前端开发&#xff0c;后台开发&#xff09;&#xff0c;地理信息系统&#xff1b;研究方向为数据分析与计算机视觉。成立几年来为学校培养了一批优秀学生&a…

LSGO软件技术团队2015~2016学年第七周(1012~1018)总结

LSGO软件技术团队成立于2010年10月&#xff0c;主要从事的应用方向为互联网与移动互联网&#xff08;UI设计&#xff0c;前端开发&#xff0c;后台开发&#xff09;&#xff0c;地理信息系统&#xff1b;研究方向为数据分析与计算机视觉。成立几年来为学校培养了一批优秀学生&a…