利用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,一经查实,立即删除!

相关文章

WSAGetLastError

WSAGetLastError (Wsapiref_2tiq.asp) 函数返回了可能的错误代码。 错误错误宏按字母顺序列出。 不从任何函数返回在 Winsock2.h 中定义一些错误代码。 本文中不包括这些错误代码。 更多信息WSAEINTR (10004) 翻译: 中断函数调用。 说明&#xff1a; A 阻塞操作已被 WSACance…

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;它的前任在听说要…

使用Nant构建入门

前言&#xff1a;NAnt是一项开源的项目&#xff0c;利用NAnt&#xff0c;你可以方便快捷地对自己.NET项目或解决方案进行自动构建。与VS中可视化化极强的项目和解决方案管理相比&#xff0c;NAnt只能命令行的方式操作&#xff0c;但是这并不影响Nant的流行。NAnt可以根据我们的…

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;首列必须为查找依据列 无法简单的多条件匹配 横向查找等等往往需要进行一些复杂操作的时候我们都需要修改…

基于C8051F040单片机的CAN总线测试模式研究

摘要&#xff1a;现场总线已成为数据总线领域中最为活跃的热点&#xff0c;CAN总线被公认为最有前途的现场总线之一&#xff0c;CAN总线节点的设计、调试是CAN总线通讯系统设计的重点。在此介绍了C8051F040单片机内部集成的CAN控制器&#xff0c;并基于C8051F040单片机设计了一…

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…

CAN总线技术在船舶监控系统的应用

AN(Controller Area Network),即控制局域网,是一种具有很高可靠性、支持分布式和实时控制的串行通信网络。CAN为多主方式工作,网络上任意节点均可在任意时刻主动地向网络上其它节点发送信息,而不分主从,且无需站地址等节点信息,通讯灵活。CAN协议模型结构只有3层,即只取OSI底层…

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管…

Some Notes About Design Pattern

针对接口编程而不是实现 优先使用对象组合&#xff0c;而不是类继承 封装变化点 使用重构到模式&#xff0c;而不是直接使用设计模式 设计模式是好的面向对象设计&#xff0c;所以只有掌握面向对象才能更好的理解和应用设计模式 单一职责原则&#xff1a;一个类应该只有一个引起…

M16C

R8C/M16C提供一系列预处理指令&#xff0c;能够很好的优化C代码。 本文以nc30编译器为例&#xff0c;谈谈#pragma的用法。 1)。与内存有关的命令 #pragma ROM 将一个变量放入ROM里面&#xff0c;比如&#xff1a; #pragma ROM aa int aa; #pragma BIT 位变量申明。表…

ASP+AJAX制作无刷新新闻评论系统01

传统&#xff1a;上半部分评论列表直接通过数据库查询语句读取并显示&#xff0c;每当提交新的评论时&#xff0c;先传递给处理页面&#xff0c;处理页面处理完毕后再返回index.asp这个页面&#xff0c;当然index.asp是重新加载获得新的评论。  Ajax:&#xff1a;首先列表页面…