SpringSide开发实战(三):漫谈CSS和页面布局

这篇随笔不是专门针对SpringSide,却只得每个程序员一看。

还记得胡戈调侃《无极》中的王城布局为“圈圈套圈圈”娱乐城,也还记得我刚开始做 Web开发时“表格套表格”的页面布局。在大部分的程序员中,可能还在使用表格进行布局 ,使用表格进行布局的巨大缺点就是当页面进行一点点修改的时候,都有可能完全打乱页面 的外观,而且非常不利于和美工的配合。当然了,很多美工人员也在使用表格进行布局,他 们在图形软件中设计好页面,然后使用切片工具一切就完事,却给我们需要在网页网页中动 态增加内容的程序员带来了麻烦。在CSS盛行的今天,我们早就该让表格只做它的本分工作 了。

网上也有不少使用div + css进行布局的教程,却存在很多缺陷,一是对css的布局模型 讲解不清楚,让人很难理解相对定位、浮动等概念;二是虽然避免了“表格套表格”的缺点 ,却带来了“div 套 div”的缺点,过量使用div标签;三是class过多,造成class灾难。

要正确使用css,对css的基本只是就不能够不了解。既然是漫谈,我这里就只讲四个方 面,最后给出xkland项目作为实例。

一、CSS中的块模型

在CSS的定义中,有的html标签被浏览器当成一个块来显示,比如div、table、p、ul等 等,我们称之为块元素;有的html标签被浏览器显示在文本行之类,如a、span、font等等 ,我们称之为行内元素。行内元素我这里就不讲了,只讲讲块元素的模型。

每一个块元素都可以分为context、padding、boder和margin几个部分,我们常说的宽和 高,指的只是context的宽和高,padding代表内容和边框之间的填充,margin代表边框之外 的空白,如下图:

这几个部分都是可以通过CSS进行指定的,当然,CSS还可以控制背景,因此,我们可以 通过CSS来灵活控制我们页面的外观。

二、CSS中的文档流模型

所有的块元素在html文档中是按照它们出现在文档中的先后顺序排列的(当然,嵌套不 在此列),每一个块都会另起一行。如下图:

时间: 2024-11-02 04:13:40

SpringSide开发实战(三):漫谈CSS和页面布局的相关文章

SpringSide开发实战(八):不是结局的结局,谈谈程序员的境界

SpringSide是个好东西,对我来说,它的好主要体现在两个方面:一.它提供了一个敏 捷开发的框架,省去了我自己整合Spring.Hibernate.Struts.ActiveMQ等等开源组件的 时间,而且还是最佳实践:二.它指导了我的学习目标,在SpringSide中整合的各种组件, 都是在同一类组件中最优秀的,而且要想熟练使用这些组件,都必须对它们进行深入的系统 的学习. 本来以为我会在SpringSide开发实战系列中写更多的文章,但是写到现在,我认为应该 要写结局了,为什么呢?因为在使

Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程式开发

原文 Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程式开发 前言 大部份的Andr​​oid 都具有实体或虚拟的Back键. 因此在处理多页面应用程式时, 与先前所介绍的iOS Navigation controller 比较起来会简单许多. 1. 开启Visual Studio 并新增Android Application 专案并命名为Lab4-MultiScreen   2. 在Layout资料夹中新增Second.axml   在Second

SpringSide开发实战(四):打通数据持久层的任督二脉

在这里,将创建一个简化的用户管理模块,演示怎样利用SpringSide提供的数据持久层 的功能,包括怎样通过Hibernate的Annotation来配置多对一映射和多对多映射. 大家都知道,现在最流行用户管理模型的是RBAC,也就是基于角色的访问控制模型,在 这种模型中,可以划分多个层次,如用户-角色-资源.用户-角色-权限-资源.用户-角色- 角色组-权限-资源.用户-角色-角色组-权限-操作-资源等等,因此,想要创建一个完善而 复杂的用户管理模块,是相当具有难度的.在Web2.0时代,有一

SpringSide开发实战(七):在项目中整合FCKeditor

Web 2.0时代时代的Web项目,是无论如何也少不了一个在线编辑器的,因此在我们的项 目中整合一个Web编辑器就显得至关重要.在这里,我依然以前面的xkland项目为例,来探 讨在项目中整合FCKeditor的方方面面. 一.关于用户发表文章的功能设计 用户发表文章的功能,大家见过不少,也用过不少,最简单的,莫过于提供一个文本框 ,数据提交后直接写入数据库了事,稍复杂一点的最少也要提供一个输入标题和选择分类的 功能.当然,我们也可以把我们的功能设计得更有特色.在这个示例项目中,我假设开发的 是

SpringSide开发实战(六):AJAX,在地狱中漫步

说到AJAX,每个人都不会陌生,毕竟这两年它太流行了.然而,真正哪些地方需要AJAX ,并不是每个人都能够把握得很好.使用AJAX可以开发豪华的基于浏览器的富客户端界面, 然而其开发量的庞大和调试的艰难,让每一个程序员如同生活在地狱中一般. 我认为,真正需要AJAX的不外乎两种情况: 1.用户不希望他关注的信息离开他的视线的时候.比如填写某些表单的时候,有时候辛 辛苦苦填写的东西,一点提交按钮,全没了,如果某个字段验证失败,则所有的东西都要从 头再填,着实让人郁闷.虽然设计较好的网站可以保留用户

SpringSide开发实战(二):修改数据库、字符编码和快速部署应用

SpringSide默认的数据库是hsql,但是大部分开发人员熟悉的数据库是MySql,因此在实 际开发过程中,遇到的第一件事往往是修改数据库.在SpringSide中修改数据库很简单,还 是以前一篇中创建的xkland项目为例,首先修改src\main\resources\config文件夹下的 jdbc.properties文件,注释掉1.2行,解注释7.8行,并修改10.11行的用户名和密码, 如下: 1#jdbc.driverClassName=org.hsqldb.jdbcDriver

SpringSide开发实战(一):使用Eclipse让SpringSide跑起来

自2000年Struts框架发布,到2001年底Hibernate的诞生,再到2004年Spring的流行, Java社区的开源软件哲学是:"只做好一件事情,只做最擅长的事情,其他事情留给别人去 做."但是到了2005年,Java开源出现了框架整合的大趋势,整个Java开源社区雨后春笋般 出现了一批又一批的full-stack框架,比较著名的有RIFE,Grails,JBoss Seam,Trails和 Able等等.SpringSide也是这样一个整合框架,常逛BlogJava的人肯

SpringSide开发实战(五):兵马未动,粮草先行

本篇讨论的问题是对项目中遇到的难题进行技术穿刺. 做过项目的人都知道,在构思完一个项目的功能之后,紧接着的事情就是考虑这些构思 的功能如何实现,对于自己不熟悉的领域,要进行技术穿刺.我的穿刺方法为先查找有无比 较好的开源组件可用,如果没有,就查找相关的文档,自己编写和测试代码. 在这一篇,我主要解决三个问题. 1.解决字符串加密的问题,在前面一篇中,我们设计用户模块的时候,准备将用户的密 码字段以MD5加密的方式保存,因此,这里需要写一个对字符串加密生成MD5字符串的方法: 2.解决生成图像缩略

网页标准学习之详细讲解CSS网页页面布局

css|标准|网页|页面 用CSS 来布局很容易.如果你已经习惯用表格布局的话,起先会感觉比较困难.其实不难,只不过动机不同,并且在实践中更有意义. 你可以把这一页面的各个部分当作独立的版块来看待,无论你选择哪一块.你可以绝对或相对地用彼块取代此块. 定位 定位属性position用于定义一个元素是否absolute(绝对),relative(相对),static(静态),或者fixed(固定). static值是元素的默认值,它会按照普通顺序生成,就如它们在HTML的出现一般. relativ