Web开发学习心得4——CSS盒模式与排版

首先简单讲一下盒模式,所谓盒模式,是CSS看待元素的方式,CSS将每个单一的元素都看作一个盒子,如下图所示:

开发学习心得4——CSS盒模式与排版-">
之所以叫它盒模式,是因为它跟我们日常生活中的盒子非常相似,这里不多说了。CSS中大部分的属性都是用来控制content的,比如width、height、color等;padding、border、margin都是可选的,其中,padding、margin表示的是一片空白区域,只能控制其大小,border是一个可见的边框,可以控制其边框样式、粗细、颜色等。

下面主要讲一下排版。

在正常情况下,浏览器从HTML文件的开头开始,从头到尾依次呈现各个元素,块元素从上到下依次排列,内联元素在块元素内从左到右依次排列。而CSS的某些属性却能够改变这种呈现方式,这些属性就是这里要讲的,主要是float与position属性,另外还有clear属性以协助float,z-index属性协助position。这些属性值均无法继承。

float属性定位:

float属性值可以为left、right、none。none为默认值,表示不漂移该元素,浏览器以正常方式显示之,不必多说。若设置为left或right,则表示将该元素漂移到左方或右方。那什么叫漂移?

简单地说,漂移是指将某元素从正常流中抽出,并将其显示在其父元素的左方或右方的一个过程。这样说想来你还不一定明白,那么我们就分步骤来看一下浏览器是如何来漂移某元素的。

假设我们有以下html,为了能更清楚地看到布局,我们将各个部分都加上了一个红色的边框,并给段落加上橙色的背景色,源代码如下:

html
<body>
<div id="header">
<h1>
这里是头部。</h1>
</div>
<div id="content">
<div id="leftbar">
<ul>
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
<li>第四项</li>
</ul>
</div>
<div id="main">
<p>
这里是主区域。</p>
<p>
这在阳光明媚、春暖花开的日子里,我窝在家里跟大家分享我Web开发的学习心得,这是一种什么精神?!</p>
<p>
这在阳光明媚、春暖花开的日子里,我窝在家里跟大家分享我Web开发的学习心得,这是一种什么精神?!</p>
<p>
这在阳光明媚、春暖花开的日子里,我窝在家里跟大家分享我Web开发的学习心得,这是一种什么精神?!</p>
</div>
</div>
<div id="footer">
<p>
这里是脚部。</p>
</div>
</body>#header, #footer, #content, #leftbar, #main
{}{
border: solid 1px red;
}

p
{}{
background-color: Orange;
}

这段html在浏览器中将显示如下:

时间: 2025-01-01 08:16:05

Web开发学习心得4——CSS盒模式与排版的相关文章

Web开发学习心得3——CSS的语法与层叠

这篇主要讨论CSS的语法及层叠的概念,有关CSS布局方面的内容下篇讨论. 如前两篇文章所述,CSS是专门用来负责文档的展现的,那既然如此,CSS就一定能够控制每种元素的展现,于是,就有了第一类语法--元素选择符. 元素选择符语法如下: element { 样式规则 } 这个非常好理解,所谓元素选择符,就是说文档中所有该元素,都以该样式规则显示. 非常好,有了元素选择符,就能够很大程度上控制文档的展现了.然而,人们很快就碰到了新的问题:我有两个相同的元素,但是我希望两个元素以不同的样式展现.为了满

Web开发学习心得5——Asp.net的设计思想

自从有了html与http,就有了浏览器与Web服务器,并有了Web应用,最初的交互模式是这样的: 开发学习心得5--Asp.net的设计思想-">该模式很好地运行了很多年.然而,随着计算机应用的发展,人们越来越不满足于只有静态内容的页面,而由某种机制动态产生html等代码的需求越来越迫切,于是,很多技术就应运而生,Asp.net就是这样一种技术.从本质上讲,Asp.net就是一种服务器端动态产生html.css.javascript等浏览器认识的代码的技术.Asp.net的交互模式如下:

Web开发学习心得6——HttpApplication管线研究

经过Asp.net设计思想的研究,我们对HttpApplication的管线已经有了一个本质的了解.所谓管线,实际上就是生产流水线,由一系列的步骤所组成,而HttpContext,就是这条流水线上待加工的产品.现在,我们来对这条生产流水线进行更进一步的了解. 首先请看ApplicationStepManager.BuildSteps方法. 开发学习心得6--HttpApplication管线研究-">1.ValidatePathExecutionStep:负责对请求的路径进行安全检查,禁止

Web开发学习心得1——什么是HTML,XHTML

Web世界发现到现在,已经有了一套比较完善的体系,这套体系的基础就是HTML+CSS. 最初的HTML不仅标记结构,也标记网页如何展现.因此,就出现了如<p>这样的表示结构的元素与<center>这样的表示展现的元素混杂的局面.那个时候还没有CSS. 后来有了专门表示展现的CSS,人们发现,应该把HTML进行一番清洗整理,使HTML只表示结构,而把如何展现的责任完全交给CSS.该设想得到了绝大多数的支持,因此,W3C在1999年末制定了HTML4.01(也是目前的最新版本),该标准

Web开发学习心得2——HTML的结构

现在我们来学习HTML的结构(我们只讨论严格型的,也包括XHTML). 首先给出一份严格的HTML的一些常见的规则: 1.网页总以一个DOCTYPE开始,紧接着,<html>元素必须出现在网页的开头和结尾. 2.只有<head>.<body>元素可以直接包含于<html>中,其他任何元素都必须包含于<head>或<body>中. 3.必须给<head>元素一个<title>元素. 4.只能在<body&g

Web开发学习心得7——MasterPage的实现原理

MasterPage是Asp.net2.0引入的一个非常实用的特性,怎么用,我想不用我说,基本上大家都会,这里要讲的是,它是如何实现的. 在深入源代码去探索MasterPage之前,我以为MasterPage的实现应该是比较复杂的,也一直纳闷为什么MasterPage类会继承于UserControl类,感觉这两者好像差得很远.昨天晚上,我专门抽出时间,阅读了部分与MasterPage有关的源代码,终于明白了是怎么回事,在那突然明白的那一刻,真有如醍醐灌顶,拍案叫绝,不得不佩服微软的那些guys.

Perl + FastCGI 做web开发学习笔记

Hello World 一个简单的hello world例子:  代码如下 复制代码 #!/usr/bin/env perl use strict; use warnings; use CGI::Fast; while(my $q = new CGI::Fast) {  print $q->header("text/plain");  print "Hello World"; } 和CGI的区别仅在于多了一个循环来接受请求,CGI::Fast对象和CGI接口是

PHP模块开发学习心得

最近在学习PHP模块开发相关的知识, 再看了dl()函数的流程之后, 对模块加载的处理流程做一个总结, 希望可以在PHP模块开发上帮助到大家. 进入正题. PHP的代码架构 上图摘自Extending and Embedding PHP(Sams). 从图中可以看出, PHP所有的部分都处在一个被称为TSRM的层中, TSRM层是负责线程安全管理的. 最底下的SAPI是对外提供服务的接口, 比如命令行的sapi为cli, php-fpm则是fastcgi的sapi, apache的模块方式也是一

Java Web开发模式

一 Java Web开发模式的变迁 1 最初的Java web服务器端编程技术是Servlet,利用Servlet就可以开发出一个Web应用程序. 2 为了解决Servlet缺陷,SUN推出了JSP技术.但是开发人员又走向了另一个极端就是完全放弃了Servlet.   在JSP页面混合使用HTML标记和java代码编写的脚本元素标记来开发Web程序.采用这种方法虽然可以编写JSP页面变得简单,直观,然而,他只适合于业务流程简单,系统规模较小的应用系统.   如果系统较大的话,就会出现两个严重的缺