第五章 CSS内容排版

5.1 文字排版

5.1.1 通栏排版

  进行网页通栏排版时,只要直接将段落文字放置于p或者其他对象中,再对段落文字应用间距、行距、字号等样式控制,便形成了排版雏形。

5.1.2 分栏排版

  CSS2技术对普通段落文字不能够直接实现分栏排版,如果需要实现类似报纸那样的双栏或者三栏排版,则必须借助于二列布局那样的两个div浮动定位而形成二列控件,然后再将文字分别填充此二列之中。XHTML代码如下:

 <div id="layout">
<div class="col">...</div>
<div class="col">...</div>
</div>

  对于二列式排版,在包含容器#layout中放置了两个div。CSS代码如下:

 [css]

 p {
line-height: 180px;
font-size: 12px;
} #layout {
width: 700px;
margin: 0px auto;
} .col {
width: 300px;
padding: 0 10px;
float: left;
}

  直接对用于分栏的.col编写宽度、内边距,向左浮动,从而实现了二栏式排版要求,这与二列式布局的原理是一致的。

  使用CSS2分栏排版并非很好的解决,将文字分成两段放置在两个div中,并不能很好地保证以后的扩展性。对于段落CSS3已经提供了分栏属性column-count和column-width。

5.2 图文混合排版

  传统的表格式布局中,往往通过插入一个表格,再在表格中插入图片,并对表格应用align属性来控制图片居中、居左或居右显示。而在CSS布局中,会有更多的实现效果。

5.2.1 图片基础控制

  text-align属性用于控制对象里的内容居中显示,应用这个属性后,img对象在div中也能保持居中状态。在实际应用中,有时会使文字绕图片排版,这时就可以使用浮动定位的方法,通过设定对象的float属性来使文字内容流入对象的旁边。

5.2.2 不规则文字环绕

  一种特殊的文字环绕排版方式,即希望文字能够沿着图片不规则边缘进行环绕。但是div和img都是以方块形式被插入到页面中,而且浏览器也没有办法识别图片的边缘,这时就需要使用一些技巧性的手段。

  因为图片本身是方块状的,排版无法改变其状态,所以单独插入图片在段落中是行不通的,只有将图片以背景形式放置在文本中。背景与文本是二层挂你想,使用div对象来创建接近不规则的性质,需要插入一些div在段落之前。 XHTML代码如下:

 <div id="layout">
<h1>CSS FAQ</h1>
<div id="11"></div>
<div id="12"></div>
<div id="13"></div>
<div id="14"></div>
<div id="15"></div>
<div id="16"></div>
<div id="17"></div>
<div id="18"></div>
<div id="19"></div>
<p>...</p>
</div>

  这里插入了9个div对象,并且保持其内容为空的状态,希望9个div方块各自拥有自己的宽高,最终形成一个类似于不规则的边缘效果。CSS代码如下:

 [css]

 #11, #12, #13, #14, #15, #16, #17, #18, #19 {
float: left;
clear: left;
} #11 { width: 0px; height: 20px; }
#12 { width: 100px; height: 38px; }
#13 { width: 150px; height: 20px; }
#14 { width: 220px; height: 38px; }
#15 { width: 240px; height: 38px; }
#16 { width: 240px; height: 38px; }
#17 { width: 190px; height: 38px; }
#18 { width: 150px; height: 40px; }
#19 { width: 120px; height: 20px; }

  首先9个方块都采用了float: left;进行排列,同时每个方块又采用clear: left;,使其左边不允许出现浮动对象,这样每个div之间都不会互相浮动。由于文本没有clear属性,所以就贴近所有div的右边。

5.3 全图排版

  使用CSS布局进行全图排版的核心在于,对浮动定位的控制,而且具有很好的灵活性,可以通过CSS随时改变全图排版的样式。XHTML代码如下:

 <div id="layout">
<div>
<img src="sun.jpg" width="100" height="69" />
<h2>Title: Sun</h2>
<h3>Date: 2014-4-29</h3>
<div>
<div>
<img src="wind.jpg" width="100" height="69" />
<h2>Title: Wind</h2>
<h3>Date: 2014-4-29</h3>
<div>
<div>
<img src="cloud.jpg" width="100" height="69" />
<h2>Title: Cloud</h2>
<h3>Date: 2014-4-29</h3>
<div>
<div>
<img src="rain.jpg" width="100" height="69" />
<h2>Title: Rain</h2>
<h3>Date: 2014-4-29</h3>
<div>

  在上述代码中,以#layout作为主容器,并使用div来放置图片。使用div的目的在于。方便控制图片的宽度。除了添加图片还可以添加一些其他信息,如图片名称与拍摄时间等。CSS代码如下:

 [css]

 #layout div {
border: 1px solid #aaa;
margin: 3px;
padding: 2px;
width: 126px;
height: 126px;
text-align: center;
float: left;
overflow: hidden;
} h2, h3 {
font-size: 11px;
font-family: arial;
margin: 0px;
padding: 0px;
} h3 {
font-weight: normal;
color: #777;
}

  在上述CSS代码中,给每个#layout下的div图片区域加上了1px的边框线,并且全部采用float: left;让图片可以顺序排列,设置外边距可以控制与其他图像的间距效果;设置div的宽度和高度,使其排列变得整齐有序;设置padding内边距使得图片与边缘有一定的空间;为了保证因文本过长而导致div被拉高的问题发生,可以设置overflow: hidden;来访问内容扩大的对象;最后在设置文字的样式。

5.4 表格排版

5.4.1 充分使用表格标签

  在传统的表格式布局设计中,往往使用的是表格的3个标签table、tr和td。XHTML还提供了许多表格专用标签,前一章已讲述,这里就不再说明了。

5.4.2 表格样式控制

  表格的样式与其他对象的样式没什么区别。还是使用margin、padding、border、background等属性来对表格进行操作。

5.4.3 表单表格设计

  由于表单中的排版也是通过表格来实现的,因此可以简单地通过表格的样式设计来完成表单设计。

《CSS网站布局实录》学习笔记(五)的更多相关文章

  1. 《CSS网站布局实录》学习笔记(一)

    今天开始,认真学习前端技术,哈哈哈~~~加油~~~ 推荐这本<CSS网站布局实录>(第2版)给初级入门选手,虽然这本书年代有点久远,不过很经典. 注明一下:这里讲述的CSS均为CSS 2. ...

  2. 《CSS网站布局实录》学习笔记(六)

    第六章 CSS高级应用与技巧 6.1 id与class 6.1.1 什么是id id是XHTML元素的一个属性,用于标识对象名称.无论是class还是id,都是XHTML所支持的公共属性,并且也是其核 ...

  3. 《CSS网站布局实录》学习笔记(四)

    第四章 CSS网站元素设计 4.1 网站导航 网站导航是网站中最重要的元素.从形式上看,网站导航主要分横向导航.纵向导航.下拉及多级菜单导航灯3种常见形式. 横向导航:作为门户网站的设计而言,主导航一 ...

  4. 《CSS网站布局实录》学习笔记(三)

    第三章 CSS网页布局与定位 3.1 div 几乎XHTML中的任何标签都可以用于浮动与定位,而div首当其冲.对于其他标签而言,往往有它自身存在的目的,而div元素存在的目的就是为了浮动与定位. 3 ...

  5. 《CSS网站布局实录》读书笔记

    从Web标准.HTML标记.CSS语法基础介绍到实用技巧,事无巨细.实体书已不印刷,只能下载电子版 书的背景: 国内第一本web标准的CSS布局书,2006年9月第一版,作者李超. 环境背景: 当时主 ...

  6. 《css网站布局实录》(李超)——读书札记

    1.web表现层技术 2.HTML链接设计思想 3.对信息进行合理的分析.分类与处理来创造商业价值. 4.头部描述浏览器所需信息,主体包含所需要展现的具体内容. 5.HTML(XHTML)XML 6. ...

  7. 《CSS网站布局实录》学习笔记(二)

    第二章 XHTML与CSS基础 2.1 XHTML基础 XHTML是网页代码的核心内容,标准XHTML代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  8. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  9. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

随机推荐

  1. 利用Php ssh2扩展实现svn自动提交到测试服务器

    1.安装ssh2扩展 (1)window . 下载 php extension ssh2 下载地址 http://windows.php.net/downloads/pecl/releases/ssh ...

  2. Seajs教程

    API 快速参考 该页面列举了 Sea.js 的常用 API.只要掌握这些用法,就可以娴熟地进行模块化开发. seajs.config 用来对 Sea.js 进行配置. seajs.config({ ...

  3. vector list array deque

    因此在实际使用时,如何选择这三个容器中哪一个,应根据你的需要而定,一般应遵循下面 的原则:   1.如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector   2.如果你需要大量的插入和 ...

  4. 线程间操作无效: 从不是创建控件“textBox2”的线程访问它

    如何:对 Windows 窗体控件进行线程安全调用 线程间操作无效: 从不是创建控件的线程访问它的三种方法 如果使用多线程处理来提高 Windows 窗体应用程序的性能,则你必须确保以线程安全的方式调 ...

  5. gnu cc扩展和ABI

    gnc cc扩展标准c的语法,非常强大!!!详情请见: http://uw714doc.sco.com/cgi-bin/info2html?%28gcc.info%29C%2520Extensions ...

  6. Keil增量编译build异常

    装完MDK4.6/4.7a,发现没有修改源文件的情况下,单击build,每次都是重新编译,之前测试过重新建立工程/装回4.22,解决了该问题,当时并没多想原因.这次又出现了这个问题,重装了很久,也都这 ...

  7. 关于LEA指令(单周期就可以做简单的算术计算)

    堆栈种分配的局部变量所谓的“标号”,你以为是什么?(都是那些该死的宏惹的祸,大家要都是老老实实写代码,就不会有这些疑问了).      比如你用local在栈上定义了一个局部变量LocalVar,你知 ...

  8. VitamioBundle-master

    1. 下载资源 (1) 核心插件 VitamioBundle 下载地址:https://github.com/yixia/VitamioBundle (2) 官方示例 VitamioDemo 下载地址 ...

  9. 【HDOJ】5131 Song Jiang's rank list

    STL的使用. /* 5131 */ #include <iostream> #include <map> #include <cstdio> #include & ...

  10. Miller_Rabin素数判断,rho

    safe保险一点5吧.我是MR: ; int gcd(int a,int b){return !b?a:gcd(b,a%b);} int mul(int a,int b,int p){ )*p); ? ...