实际开发网站过程中边碰壁边积累了一些div+css布局相关的小技巧,在这里做一些整理与大家一起探讨。本文章将间歇性更新。

1.div+css布局综述

div+css布局个人观点就是“盒子套盒子”的关系,body作为整个页面是最大的盒,而在这个最大的盒里面的第一层子盒们构成了全局布局,在这些子盒内部,又可能分出若干个盒以形成局部布局。因此,在规划一个网页的布局时,先区分出有哪些大的板块作为处于全局布局一级的大盒,再在这些大盒内部进行局部小盒子的布局以最终实现想要达到的页面布局效果。

例如,上面的布局图是比较常见的网页布局方式,A代表body,也即整个页面。这里强调整个页面是因为随着浏览器大小在用户的拖放下发生变化,body的大小长宽也在跟着改变,注意这一点有利于我们避免一些问题(如使用绝对定位(position:absolute)却忽略了body的可变性导致在拖放下网页结构发生变化),同时这一点也可以被我们所利用(下面会讲到)。其次,我们可以比较明显地知道第一层子盒总共有三个,分别为B、C、D盒,他们占据了网页的上、中和下部分。

一般而言,B部分常用于网页的页眉,显示logo和导航菜单等,C部分作为网页主体,是网页主要内容所在的位置,D部分作为页尾,提供关于版权备案信息及相关连接等信息。我们注意到,这三个部分并没有占满整个body,这是正常的,我们无法假设用户的屏幕大小以及其浏览器的实际显示大小,因此,合理的解决方案应该是让全局布局中的这些盒子居中放置,并给予呈现内容所需要的并且是合适的宽度值(为什么不需要高度值呢,因为网页是允许下拉滚动浏览的,而横向的滚动往往会引起用户的不满)。那么什么是合适的宽度值呢,笔记本电脑/台式机的屏幕一般横向的像素都可以达到1024px以上,因此,只要在这个范围内(比如980px这个常用的数值),都可以认为是合适的,然后让他们居中(通过设置margin:auto(或具体设置margin-left和margin-right:auto,在当前行只有一个元素时,设置auto可以让left和right一样大))。至于那些没有填满的部分,可以对body使用恰当的背景色或背景图片解决。

三个全局盒内部的布局通常称为局部布局(其实我们会发现,全局和局部都是相对而言的),他们是真正考验布局能力的地方,而这其间所涉及到的一些技巧也是我写这篇博客的原因。

2.关于div

div标签的用途在于将一个或若干个元素组合成一个块级(有关块级与非块级元素可以参考http://www.cnblogs.com/double-bin/archive/2011/12/19/2293090.html)整体,从而我们可以在布局中把一些元素作为一个整体集合来操纵(比如这些元素之间的相对位置要求固定,且他们与集合外元素之间的位置关系是通过这个集合来反应的),同时,这也有利于我们对这些元素之间的相对位置采取更方便的布局策略(比如,有一个<a>希望跟着一个<span>动而动,那么我们就应该为它们建立一个div以包裹他们从而实现对他们的绑定)。

注意到html/css中的很多属性都是相对父元素而言的(如使用百分比定义width、height时,与父元素直接接触元素的margin属性等),因此用一个div包裹一些元素也为利用这一点提供了条件(比如有时我们希望两个按钮(也可以是<a>)保持一定比率的大小关系,那么给他们一个div包裹起来,让width、height属性是父元素的百分比即可控制这一点)。此外,局部布局中,一个元素的定位也往往是通过跟父元素的margin关系得到。

div+css布局记扎的更多相关文章

  1. DIV+CSS布局中主要CSS属性介绍

    Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Float属性可以实现一行显示多个div的功能 ...

  2. DIV+CSS布局网站基本框架

    html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  3. DIV CSS布局中position属性用法深入探究

    本文向大家描述一下DIV CSS布局中的position属性的用法,position属性主要有四种属性值,任何元素的默认position的属性值均是static,静态.这节课主要讲讲relative( ...

  4. DIV+CSS布局-固定页面开度布局

    DIV+CSS布局中主要CSS属性介绍: Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Fl ...

  5. SEO为什么要求网页设计师用DIV+CSS布局网页?

    问:SEO为什么要求网页设计师用DIV+CSS布局网页? 答:通常情况下,SEOer非常喜欢把一个网站做到最细节,在网页设计方面,有时与设计师沟通时,通常会问到:SEO为什么要求网页设计师用DIV+C ...

  6. DIV+CSS布局问题:一个宽度不确定的DIV里面放三个水平对齐的DIV,左右两个DIV宽度固定为150px,中间那个DIV充满剩余的宽度

    一个入门的DIV+CSS布局问题:一个宽度不确定的DIV里面放三个水平对齐的DIV,左右两个DIV宽度固定为150px,中间那个DIV充满剩余的宽度. 说明:代码非真实情况下使用,所以直接简单. 没耐 ...

  7. 一小时搞定DIV+CSS布局-固定页面开度布局

    本文讲解使用DIV+CSS布局最基本的内容,读完本文你讲会使用DIV+CSS进行简单的页面布局. 转载请标明:http://www.kwstu.com/ArticleView/divcss_20139 ...

  8. (转)div+css 布局经验 - 最简单的 = 最不变形的(原创技巧)

    站酷几年了 一直饱受其恩泽 尤为感激 一直想奉献些什么 但是苦于水平 苦于奔波 今天静下心来 为大家奉献下 自己的div+css 经验 ,以下观点只代表 深海个人立场 希望为初学者提供一条" ...

  9. (转)一小时搞定DIV+CSS布局-固定页面开度布局

    本文讲解使用DIV+CSS布局最基本的内容,读完本文你讲会使用DIV+CSS进行简单的页面布局. 转载请标明:http://www.kwstu.com/ArticleView/divcss_20139 ...

随机推荐

  1. 【转】scapy 构造以太网注入帧

    1. 描述 使用scapy进行以太网帧的注入,相对于RAW_SOCKET还是比较简单的.在讲述packet注入之前,先了解一下scapy伪造以太网帧的相关知识.下图为以太网帧格式和scapy对应的封装 ...

  2. 跟踪OceanLotus的新下载程序KerrDown

    攻击的方法 两种方法将KerrDown下载器传递给目标.一个是使用带有恶意宏的Microsoft Office文档,另一个是包含带有DLL side-loading合法程序的RAR存档 .对于RAR存 ...

  3. 【API】检查进程是否存在 - CreateToolhelp32Snapshot

    1 学习目标 今天静态逆向mydocument病毒时,看到病毒代码为了防止自身被调试会先检测杀毒软件和调试工具的进程是否存在.如果没有杀毒软件则释放真正的病毒文件,提前熟悉一下枚举进程的反汇编代码. ...

  4. k64 datasheet学习笔记1---概述

    1.前言 k64 datasheet描述了Freescale MCU的特性.架构和编程模型,主要是面向使用MCU的系统架构和软件应用开发人员. 2.模块划分 datasheet主要按功能对模块进行划分 ...

  5. 字符驱动之二操作方法(struct file_operations)【转】

    转自:http://blog.chinaunix.net/uid-26837113-id-3157515.html 从上一篇我们看到了字符驱动的三个重要结构,那我现在跟大家详细的说说 struct f ...

  6. 深入理解node.js异步编程:基础篇

    ###[本文是基础内容,大神请绕道,才疏学浅,难免纰漏,请各位轻喷] ##1. 概述 目前开源社区最火热的技术当属Node.js莫属了,作为使用Javascript为主要开发语言的服务器端编程技术和平 ...

  7. C++ virtual函数重写,在继承的时候没有在函数前写virtual关键字也依然是虚函数吗?

    比如: class Base { Base() {}; ~Base() {}; virtual void Init(); }; class Derived:public Base { virtual ...

  8. nginx简单介绍

    代理服务器:一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为: 客户端首先与代理服务器创建连 ...

  9. sklearn学习笔记

    用Bagging优化模型的过程:1.对于要使用的弱模型(比如线性分类器.岭回归),通过交叉验证的方式找到弱模型本身的最好超参数:2.然后用这个带着最好超参数的弱模型去构建强模型:3.对强模型也是通过交 ...

  10. PYTHON-函数的定义与调用,返回值,和参数

    函数基础'''1. 什么是函数 具备某一功能的工具->函数 事先准备工具的过程--->函数的定义 遇到应用场景,拿来就用---->函数的调用 函数分类两大类: 1. 内置函数 2. ...