[HTML/HTML5]4 使用文本
4.1 组织文本
在已经采用结构化方式将页面划分为多个关键内容区域(content area)并添加相应的标题之后,就可以进一步对这些内容区域中的文本进行组织。
4.1.1 段落
p元素的具体功能是作为段落的一个容器。因此,请在段落的开始处使用P元素的开始标记<p>,在段落的结尾使用结束标记</p>。
<div class="nurseryRhyme">
<p>Jack and Jill went up a hill</p>
<p>To fetch a pail of water</p>
<p>Jack fell down and broke hie croen</p>
<p>and Jill came tumbling after</p>
</div>
在默认情况下p标记会在段落前或段落后各强制产生一个空行,但它并不会自动地对文本进行缩进。
在HTML中没有专门表示缩进的标记,要缩进一个段落的第一行,可以在样式表中使用text-indent属性。
<p style="text-indent:25px">This is the first sentence in my paragraph</p>
上面这个例子是内联样式表,它仅能影响这一个段落,可以把相同的声明添加到一个内部样式表中或一个外部样式表中,从而影响一个页面或整个网站中的所有段落。例如在样式表中添加如下声明:
normalChapter p{text-indent:25px;} /* 通过在normalChapter选择器之后放入p标记,告诉浏览器仅对页面上normalChapter部分中的那些段落才进行缩进 */
相关的HTML代码如下:
<section class="normalChapter">
<p>This paragraph's first line will be indented</p>
</section>
4.1.2 换行符
在HTML页面中,可以使用br标记来添加换行符。br标记会导致浏览器在该行上停止输出文本,并换到页面上的下一行继续输出。
<p>
Jack and Jill went up a hill<br>
To fetch a pail of water<br>
Jack fell down and broke hie croen<br>
and Jill came tumbling after<br>
</p>
在页面代码中,按Enter或Return键就可以在浏览器呈现的页面中产生换行符,只有唯一一种情形,就是使用了pre标记。
pre是preformat(预格式化)的简写,pre标记将完全按照输入的文本格式在浏览器中将其呈现出来。
为什么不使用pre标记来定义页面上的一切呢?主要有以下两个原因:
- pre标记并不保证按照设想的方式输出。即使在pre标记中可以使用table键来格式化文本,但是不同的浏览器可能会将一个table键解释为不同数量的空格字符,要么比文本编辑器的空格多,要么少。这可能会导致创建的表格不能正确呈现。
- pre标记通常以等宽字体来显示文本,如Courier字体,这使文本看起来有种类似于打字机打印的效果。虽然这可能适合应用于程序设计语言代码的例子,但是整个网站看起来就不那么美观了。
即便如此,对于显示代码示例,甚至创建字符形式的图标,pre标记还是非常有用:
<pre>
This text will display exactly as i type it.Watch this x | x | o
--------------------
x | x |
--------------------
o | | x </pre>
4.1.3 引用块
blockquote元素用于分隔从其它源引用的内容。默认情况下,该元素将同时对整个引用文本的左右两边都进行缩进,另外还会在引用文本之前和之后分别添加一个空行。缩进的准确数量将由浏览器来决定,因此对于不同的浏览器,引用文本左右两边的缩进会有所不同。
<p>Hello,World!
<blockquote>
Hello,World!Hello,World!Hello,World!Hello,World!Hello,World!Hello,World!
</blockquote>
</p>
4.1.4 Box属性
Web页面中的每一个元素都包含在一个盒(box)模型之中,或者至少从代码角度将其视为一种盒模型。因此,通过调整框的维度就可以格式化页面上的内容,或者指定该内容与浏览器的间距应该是多少。
现在HTML5/CSS3允许我们控制浏览器如何解释盒模型,即首先使用box-sizing属性精确地指定应该使用哪种解释盒模型的方法。
- box-sizing:content-box(default);padding和border不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和,即 ( Element width = width + padding + border )。此属性表现为标准模式下的盒模型。
- box-sizing:border-box;padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值,即使定义有border和padding也不会改变对象的实际宽度,即 ( Element width = width )。此属性表现为怪异模式下的盒模型。

(1)高度和宽度(height and width)
在指定使用哪一种box-sizing属性后,可能还想确定该盒模型的高度和宽度,最常用的度量单位是px(像素),另一种就是%(占容器框模型的百分比)。如果想指定nav框应该占据页面的整个宽度,但只占页面高度的20%,应该使用下面代码:
nav{
box-sizing:border-box;
width:100%;
height:20%;
}
(2)内边距(padding)
在样式表中,可以使用padding属性在内容周围设置一个空白的缓冲区域(可以分别设置一边、两边、三边或者四边),在下面的例子中对blockquote标记设置样式:
p{
box-sizing:border-box;
padding-top:25px;
padding-right:15px;
padding-bottom:20px;
padding-left:35px;
}
如果四条边上都使用相同的内边距值,可以使用快捷方式简化代码:
p{padding:25px;}
如果各条边的内边距值不一样,一种更为快捷的编码方式为:
p{padding:25px 15px 20px 35px;} /* 从上开始,顺时针 */
(3)外边距(margin)
margin属性影响框边界外部的缓冲空间,因此不会从内容框的总尺寸长减去外边距值。与padding属性一样,可以分别定义盒模型一边、两边、三边或者四边的外边距值:
p{
box-sizing:border-box;
margin-top:25px;
margin-right:15px;
margin-bottom:25px;
margin-left:15px;
}
如果四条边上都使用相同的外边距值,可以使用快捷方式简化代码:
p{margin:25px;}
如果各条边的外边距值不一样,一种更为快捷的编码方式为:
p{margin:25px 15px 20px 35px;} /* 从上开始,顺时针 */
(4)边框(border)
盒模型既可以包含水平边框(border),也可以包含垂直边框。可以使用边框来包围所有类型的页面元素——比如:图片或文本段落。例如:
<p style="border-bottom-width:1px; border-style:solid; border-color:black">
定义边框宽度(可以使用长度单位和关键字thin、medium或thick):
p{
border-top-width:thin;
border-right-width:6px;
border-bottom-width:thick;
border-left-width:4px;
}
如果四条边框宽度相等,可以使用快捷方式简化代码:
p{border-widtn:medium;}
定义边框样式:
p{border-style:solid;}
定义边框颜色:
p{border-color:red;}
边框样式的快捷方式:
<p style="border:1px solid red;">
4.1.5 对齐
样式表属性text-align允许采用下列任意方式,在页面上重新对齐文本:
- left(左对齐)
- right(右对齐)
- center(居中对齐)
- justify(两端对齐)
例如:
#aboutMe{text-align:justfy;}
相应的HTML代码:
<section id="aboutMe">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
</section>
在样式表中还可以使用vertical-align属性在垂直方向上对齐文本。
4.2 标记文本
文本级语义定义在页面上如何使用受语义影响的文本,而不是定义如何显示这些文本。
例如,如果你正在编写本段落中第一个句子的HTML代码,就应该使用dfn元素来告诉浏览器应该将短语“text-level semantics”作为一个已定义的术语突出显示。
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<p>
<dfn>Text-level semantics</dfn>define how the affected text will be used on the page,not how it will be displayed.
</p>
</body>
</html>
这里着重介绍一下<strong>、<b>、<em>和<i>。
虽然<strong>和<b>的效果都是对文本进行加粗,<em>和<i>的效果都是对文本进行倾斜,但是两者还是有所区别。
<b>和<i>属于实体标记(物理标记),只是改变文本的样式,<b>中的b是bold粗体的缩写,<i>中的i是italic斜体的缩写。
<strong>和<em>属于逻辑标记,是带有语义的标记,表示对显示的内容进行强调作用,<strong>比<em>的强调语气更强。
W3C规范更倾向于使用带有语义的标记,所以通常<strong>代替<b>来使用,<em>代替<i>来使用。
4.3 定义文本样式
4.3.1 字体名称
在样式表中,使用font-family属性来指定字体的名称。实际上,可以使用font-family属性来指定你所能想到的任何字体名称,但是当用户访问你的Web网页时,除非用户的计算机已经装载了你所指定的字体,否则用户将无法看到按照你设置的字体进行显示的Web页面。
所以可在font-family属性中指定几个备用字体。如果浏览器无法在访问计算机的字体列表中找到第一种字体名称,它将查找第二种、第三种、第四种字体名称,直到找到匹配的字体名称。
<p style="font-family:'gill sans','verdana','arial';"></p>
4.3.2 字体大小
我们还可以使用样式表中的font-size属性来改变字体的大小。font-size的属性值可以采用关键字、相对大小以及度量值来表示。
- 关键字:xx-small、x-small、small、medium、large、x-large或者xx-large
- 相对大小:smaller或larger
- 度量值:数值后面加上度量单位,比如:12px(12像素)或者8pt(8英镑)
<p style="font-size:12px;"></p>
4.3.3 字体颜色
样式表中的color属性可以用来设置Web页面中的任何元素的前景色,也包括文本的前景色。相应的,也可以使用background-color属性来设置Web页面中任何元素的背景色。
<p style="color: red; background-color: blue; ">Hello,world!</p>
[HTML/HTML5]4 使用文本的更多相关文章
- JavaScript 基于HTML5 canvas 获取文本占用的像素宽度
基于HTML5 canvas 获取文本占用的像素宽度 by:授客 QQ:1033553122 直接上代码 // 获取单行文本的像素宽度 getTextPixelWith(text, fontS ...
- zx-editor 移动端(HTML5)富文本编辑器,可与原生App混合(hybrid)开发
ZxEditor 移动端HTML文档(富文本)编辑器,支持图文混排.引用.大标题.无序列表,字体颜色.加粗.斜体. 可用于独立web项目开发,也可以用于与原生App混合(hybrid)开发. 源码地址 ...
- html5 canvas在线文本第二步设置(字体边框)等我全部写完,我会写在页面底部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- HTML5 number类型文本框step属性的验证机制——张鑫旭
我在下一盘很大的棋,本文只是其中的一个棋子. 需要提前知道的: 目前而言,对step雄起的浏览器为IE10+, Chrome以及Opera浏览器. 需要预先知道number类型input的一些基本知识 ...
- HTML5 Canvas绘文本动画(使用CSS自定义字体)
一.HTML代码: <!DOCTYPE html> <html> <head> <title>Matrix Text - HTML5 Canvas De ...
- HTML5 Canvas Text文本居中实例
1.代码: <canvas width="700" height="300" id="canvasOne" class="c ...
- 借助HTML5 Blob实现文本信息文件下载
原理其实很简单,我们可以将文本或者JS字符串信息借助Blob转换成二进制,然后,作为<a>元素的href属性,配合download属性,实现下载. 代码也比较简单,如下示意(兼容Chrom ...
- 解决HTML5(富文本内容)连续数字、字母不自动换行
最近开发了一个与富文本相关的功能,大概描述一下:通过富文本编辑器添加的内容,通过input展示出来(这里用到了 Vue 的 v-html 指令). 也是巧合,编辑了一个只有数字组成的长文本,等到展示的 ...
- HTML5内嵌文本编辑器
1.这个编辑器用的是KindEditor 先看下效果: 2.准备: a):从官网下载KindEditor--->http://kindeditor.net/down.php b):解压到桌面测试 ...
随机推荐
- Java 邮件发送
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId&g ...
- 161229、SpringMVC的各种参数绑定方式
1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int co ...
- UMLl类图实例
下面是类图的实例(好像大话设计中有): UML中类图实例 接口:空心圆+直线(唐老鸭类实现了‘讲人话’):依赖:虚线+箭头(动物和空气的关系):关联:实线+箭头(企鹅需要知道气候才迁移):聚合:空心四 ...
- CSS中的浮动
这是一个重点内容,在做网页布局的时候,经常用到,所以在这里单独将其列出来小结!
- clover 在win10下工作不正常
1. 右键兼容性, 选win8 2. 文件夹选项:在同一个窗口中打开每个文件夹
- [DataBase] MongoDB (8) 副本集
MongoDB 创建副本集 MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. 复制还允许您从 ...
- Android卸载程序之后跳转到指定的反馈页面
一个应用被用户卸载肯定是有理由的,而开发者却未必能得知这一重要的理由,毕竟用户很少会主动反馈建议,多半就是用得不爽就卸,如果能在被卸载后获取到用户的一些反馈,那对开发者进一步改进应用是非常有利的.目前 ...
- java 调用axis2 webservice
import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apach ...
- python之路4
迭代器&生成器 迭代器: 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么, 因为人们很少在迭代途中往后 ...
- 使用Fusioncharts实现后台处理进度的前台展示
本文要解决两个问题: 1.在ajax的数据交互中,如何获得后台的处理进度? 2.在前台界面中,如何使用图形化的方式展示后台处理进度? 关于第一个问题,不是本文的重点,简单说一下思路.因为HTTP协 ...