CSS布局教程:用DIV CSS实现国内经典式三行两列布局-CSS布局实例

我们碰到过很多的企业网站或其它小型的展示类网站,有一些共同的特点,即顶部放一个大的导航或BANNER,右侧是链接或图片,左侧放置内容,页面底部放置版权信息等。这样的形式是国内经典式的布局,我们这里不对它的视觉效果作过多的讨论,我们今天说说如何用DIV CSS实现三行两列的布局。

  我们看下面的图片:


  这样的结构大家再熟悉不过了,我们该如何用DIV CSS实现它呢。我们看下面的分析图片:


  它们相对应的关系如下:

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
顶部:header
左侧:sidebar
右侧:containe
底部:footer
主要区域:main


  这个main是起什么作用的呢。由于中间的sidebar、containe是两列并行的,我们需要设置浮动,让他们各就各位。但我们的整个页面是需要居中于浏览器窗口的。我们只能为他们设置一个容器main,让sidebar、containe在这一容器中浮动。不必考虑居中问题。而main就发挥了居中或设置背景的功能。

  思路已很清楚,我们开始整理HTML代码:

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
<div id="header"></div>
<div id="main">
<div id="sidebar"></div>
<div id="containe"></div>
</div>
<div id="footer"></div>


  header、main、footer是三个相对独立的层,而sidebar、containe是main层的子层。这里有一点需要说明,我们可以先写siderbar、也可以先写containe,通过浮动的设置,不管哪一个写在代码前部,所得到效果是一致的,我们可以通过让内容在前面的方式对搜索引擎更友好,如下代码:

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
<div id="header"></div>
<div id="main">
<div id="containe"></div>
<div id="sidebar"></div>
</div>
<div id="footer"></div>


  我们开始写CSS,对上面的各元素进行样式表定义:

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
* {
margin:0;
padding:0;
}


  整体布局声明,边距与填充均为零。

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
#header {
width:776px;
height:100px;
margin:0 auto;
background:#06f;
}


  对header的定义:宽度为776px;高度为100px;上下边距为零,左右边距为自动,实现了水平居中对齐;背景色为蓝色#06f。

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
#main {
width:776px;
margin:0 auto;
}


  对main的定义:宽度为776px;上下边距为零,左右边距为自动,实现了水平居中对齐;无背景色等其它设置。

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
#main #sidebar {
width:200px;
float:left;
background:#f93;
}


  对main的子层sidebar进行定义:宽度为200px;向左浮动;背景色为桔红色#f93。

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
#main #containe {
width:576px;
float:right;
background:#dceafc;
}


  对main的子层containe进行定义:宽度为576px(776-200);向右浮动;背景色为很淡的蓝色#dceafc。

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
#footer {
width:776px;
height:60px;
margin:0 auto;
background:#666;
}


  对footer的定义:宽度与上面的一样为776px;高度为60px;上下边距为零,左右边距为自动,实现了水平居中对齐;背景色为深灰色#666。

  或许你认为我们对布局的CSS定义已经结束了,其实还存在着问题,为了方便预览,我们给sidebar、containe设置一个300px的高度,查看一下效果,如图:


  在IE中,一切正常,按预定的构思正常显示出来了,但在FF中,footer层消失了。这是因为FF不知道浮动以后发生的事情,不清楚main的高度为几何,因而它跑到上面去了,我们看不到它的存在。我们去除containe的背景色,FF中看到的是如下图的景象:


  我们应该在sidebar、containe结束的地方清除浮动,让FF知道如何处理footer层,而不是直接放到上面,在视觉上消失。我们在HTML中增加一个新层,位于sidebar、containe结束的地方:

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
<div id="header"></div>
<div id="main">
<div id="sidebar"></div>
<div id="containe"></div>
<div id="clearfloat"></div>
</div>
<div id="footer"></div>


  我们定义clearfloat的样式为:

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
#clearfloat {
clear:both;
height:1px;
overflow:hidden;
margin-top:-1px;
}


  设置的意义是:clear:both;是指不答应左右有浮动对象;高度为1px;溢出为隐藏;顶边距为-1px,即这一层实际上是不可见的,仅为清除浮动之用。

  好了,现在基本上没有问题了,接下来就是在页面中设置菜单、添加内容并进行相应的样式定义。关于这些知识我们在以后MB5U.com的文章中再一一向大家介绍。

转载于:https://www.cnblogs.com/gaoxuzhao/archive/2011/11/19/2255186.html

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

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

相关文章

EC20模组使用MQTT库对接EMQX,基于STM32F407

一、说明 本lib库基于STM32F407编译&#xff0c;其他的cortexM4内核也支持&#xff0c;采用串口和EC20模组通信。 库包括两个文件&#xff1a;ec20_mqtt.h和ec20_mqtt.lib。使用时添加lib文件到工程中&#xff0c;头文件引用ec20_mqtt.h即可。 下载&#xff1a;https://gitee…

[react] 说说react diff的原理是什么

[react] 说说react diff的原理是什么 内存中存储两颗树&#xff0c;一颗树是已经渲染的树结构&#xff08;Current Tree&#xff09;&#xff0c;另一颗是即将变化的树&#xff08;Fiber Tree&#xff09;。 每次状态发生变化&#xff0c;会对原来的树结构进行遍历&#xff0c…

什么是I帧,P帧,B帧

From: http://blog.csdn.net/abcjennifer/article/details/6577934 视频压缩中&#xff0c;每帧代表一幅静止的图像。而在实际压缩时&#xff0c;会采取各种算法减少数据的容量&#xff0c;其中IPB就是最常见的。 简单地说&#xff0c;I帧是关键帧&#xff0c;属于帧内压缩。…

iOS 证书错误 Certificates下面的 App Store and Ad Hoc是灰的?? 点不了

原因 因为一个用户名下只能同时有一个发布证书&#xff0c;你之前建立了某个证书并且没有使用的话就无法再创建了&#xff0c;先把它撤销或者使用后才可以继续创建新的 转载于:https://www.cnblogs.com/yhj1787354782/p/4991182.html

linux中的memory management和page mapping

1 首先要说的最简单的是在一个process在运行的时候&#xff0c;它看到的内存是这个样子的。3G以后是给kernel使用的运行和动态分配的内存的空间&#xff0c;注意因为是process所看到的&#xff0c;下面全部都是虚拟地址空间。如下&#xff1a; 2 然后需要说的是Linux Physical …

[react] react的函数式组件有没有生命周期?

[react] react的函数式组件有没有生命周期&#xff1f; 没有 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

I帧、P帧、B帧

From: http://xiaoq169.blog.sohu.com/66865917.html 1. I帧&#xff1a;帧内编码帧 I帧特点&#xff1a; ①它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输。 ②解码时仅用I帧的数据就可重构完整图像。 ③I帧描述了图像背景和运动主体的详情。 ④I帧不需要…

linux 使用paho C库实现mqtt客户端

一、下载 github 下载paho mqtt c库源码&#xff0c;编译安装库文件。 地址&#xff1a;https://github.com/eclipse/paho.mqtt.c 关键API&#xff1a;Paho Asynchronous MQTT C Client Library: MQTTAsync.h File Reference 说明&#xff1a;paho客户端库是纯c库&#xff…

Linux实验二报告

北京电子科技学院&#xff08;BESTI&#xff09; 实 验 报 告 课程&#xff1a;信息安全系统设计基础 班级&#xff1a; 201352 姓名&#xff1a;池彬宁 贺邦 学号&#xff1a;20135212 20135208 成绩&#xff1a; 指导教…

[react] 在react中什么是合成事件?有什么用?

[react] 在react中什么是合成事件&#xff1f;有什么用&#xff1f; 是一个跨浏览器原生事件包装器。 它具有与浏览器原生事件相同的接口&#xff0c;包括 stopPropagation() 和 preventDefault() &#xff0c;除了事件在所有浏览器中他们工作方式都相同。 个人简介 我是歌谣…

重学数据结构007——二叉查找树

之前的博客中提到过&#xff0c;我学习采用的参考书是《数据结构与算法分析——C语言描述》。这门书的组织安排与国内广泛实用的教材《数据结构——C语言版》比较不同。这本书描述了一些树和二叉树的概念&#xff0c;举例讲解了什么是树的三种遍历之后&#xff0c;就开始重点讲…

无线网卡共享Internet访问到电脑有线接口注意事项

一、共享网卡访问 网卡属性--共享--以太网 Note: 观察有线以太网的IPv4是否有Internet访问权限。Note&#xff1a;配置IPv4的NDS与无线网卡WLAN的属性一致。 二、有线网卡配置 Note&#xff1a;连接到有线网卡上的外接设备需要配置IP地址为192.168.137.xxx&#xff0c;处于同…

Nginx 多进程连接请求/事件分发流程分析

Nginx使用多进程的方法进行任务处理&#xff0c;每个worker进程只有一个线程&#xff0c;单线程循环处理全部监听的事件。本文重点分析一下多进程间的负载均衡问题以及Nginx多进程事件处理流程&#xff0c;方便大家自己写程序的时候借鉴。 一、监听建立流程 整个建立监听socket…

[react] useState和this.state的区别是什么?

[react] useState和this.state的区别是什么&#xff1f; useState内部基于 useReducer 实现&#xff0c;方法返回 state 本身以及一个修改 state 的方法。 通过 setXXX 修改数据&#xff0c;不会和 setState 一样进行对象属性合并&#xff0c;会直接覆盖。Hooks 函数组件中&a…

h264检测是I帧还是P帧

From: http://blog.csdn.net/zgyulongfei/article/details/7558031 今天在网上找了一些资料&#xff0c;知道了如何检测h264中的帧类型&#xff0c;在这里记录下来。 首先&#xff0c;贴出nal单元类型定义&#xff08;图从《新一代视频压缩编码标准H.264》摘录&#xff09;&am…

经典排序算法 - 鸡尾酒排序Cocktail sort

经典排序算法 - 鸡尾酒排序Cocktail sort 鸡尾酒排序基于冒泡排序,双向循环 还是看例子吧,给定待排数组[2 3 4 5 1] 第一趟过去时的每一步 第一步迭代,2 < 3不换 [2 3 4 5 1] 第二步迭代,3 < 4不换 [2 3 4 5 1] 第三步迭代,4 < 5不换 [2 3 4 5 1] 第四步迭代,5 > 1…

[react] 举例说明在react中怎么使用样式

[react] 举例说明在react中怎么使用样式 all in js 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

C#之out和ref区别

out与ref的区别总结&#xff1a;1.两者都是通过引用来传递。2.两者都按地址传递的&#xff0c;使用后都将改变原来参数的数值。3.属性不是变量&#xff0c;因此不能作为 out或ref 参数传递。4.若要使用 ref 或 out,方法定义和调用方法都必须显式使用 out、ref 关键字。5.rel可以…

一次ssh登录不成功的解决经历

一、列出解决过程中所有报错信息 ssh connection refused port 22Stopped OpenBSD Secure Shell server. Failed to start OpenBSD Secure Shell server.OpenSSL version mismatch. Built against 1010104f, you have 101000cf Unable to fetch some archives, maybe run apt-…

IOS自动化打包介绍

摘要 随着苹果手持设备用户的不断增加&#xff0c;ios应用也增长迅速&#xff0c;同时随着iphone被越狱越来越多的app 的渠道也不断增多&#xff0c;为各个渠道打包成了一件费时费力的工作&#xff0c;本文提供一种比较智能的打包方式来减少其带来的各种不便。 TAG Ios打包&…