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 使用文本的更多相关文章

  1. JavaScript 基于HTML5 canvas 获取文本占用的像素宽度

    基于HTML5 canvas 获取文本占用的像素宽度   by:授客 QQ:1033553122 直接上代码   // 获取单行文本的像素宽度 getTextPixelWith(text, fontS ...

  2. zx-editor 移动端(HTML5)富文本编辑器,可与原生App混合(hybrid)开发

    ZxEditor 移动端HTML文档(富文本)编辑器,支持图文混排.引用.大标题.无序列表,字体颜色.加粗.斜体. 可用于独立web项目开发,也可以用于与原生App混合(hybrid)开发. 源码地址 ...

  3. html5 canvas在线文本第二步设置(字体边框)等我全部写完,我会写在页面底部

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

  4. HTML5 number类型文本框step属性的验证机制——张鑫旭

    我在下一盘很大的棋,本文只是其中的一个棋子. 需要提前知道的: 目前而言,对step雄起的浏览器为IE10+, Chrome以及Opera浏览器. 需要预先知道number类型input的一些基本知识 ...

  5. HTML5 Canvas绘文本动画(使用CSS自定义字体)

    一.HTML代码: <!DOCTYPE html> <html> <head> <title>Matrix Text - HTML5 Canvas De ...

  6. HTML5 Canvas Text文本居中实例

    1.代码: <canvas width="700" height="300" id="canvasOne" class="c ...

  7. 借助HTML5 Blob实现文本信息文件下载

    原理其实很简单,我们可以将文本或者JS字符串信息借助Blob转换成二进制,然后,作为<a>元素的href属性,配合download属性,实现下载. 代码也比较简单,如下示意(兼容Chrom ...

  8. 解决HTML5(富文本内容)连续数字、字母不自动换行

    最近开发了一个与富文本相关的功能,大概描述一下:通过富文本编辑器添加的内容,通过input展示出来(这里用到了 Vue 的 v-html 指令). 也是巧合,编辑了一个只有数字组成的长文本,等到展示的 ...

  9. HTML5内嵌文本编辑器

    1.这个编辑器用的是KindEditor 先看下效果: 2.准备: a):从官网下载KindEditor--->http://kindeditor.net/down.php b):解压到桌面测试 ...

随机推荐

  1. Qt::QObject类

    QObject 类是Qt 所有类的基类. QObject是Qt对象模型的核心.这个模型的中心要素就是一种强大的叫做信号与槽无缝对象沟通机制.你可以用 connect()函数来把一个信号连接到槽,也可以 ...

  2. tomcat输出servlet-api.jar - jar not loaded 解决办法

    tomcat输出servlet-api.jar - jar not loaded 解决办法 启动tomcat后,控制台输出信息:WEB-INF/lib/servlet-api.jar not load ...

  3. java 线程返回值

    1.传统方式需要新建一个接口类,然后在接口类中将结果在方法中作为参数进行处理 package de.bvb.test3; public class Test3 { public static void ...

  4. POJ 1459:Power Network(最大流)

    http://poj.org/problem?id=1459 题意:有np个发电站,nc个消费者,m条边,边有容量限制,发电站有产能上限,消费者有需求上限问最大流量. 思路:S和发电站相连,边权是产能 ...

  5. Comparable和Comparator的区别

    Comparable Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较 ...

  6. Mac中安装node.js和npm

    换了Mac需要安装noed.js和npm记录一下首先访问node.js官网(https://nodejs.org/en/download/) 点击下载完后,一路点安装 就安装完成了 然后打开-终端-输 ...

  7. MySQL中int类型的字段使用like查询方法

    方法参考自: http://stackoverflow.com/questions/8422455/performing-a-like-comparison-on-an-int-field 也就是使用 ...

  8. 4.添加对efcore的支持 ,并使用mysql数据库。

    1.添加并加入 在project.json中添加 "tools": { "Microsoft.EntityFrameworkCore.Tools": " ...

  9. 用户识别APP项目开发计划书

    用户识别APP项目开发计划书        项目介绍: 用户识别APP,通过在有限时间内引导用户A交互,提取用户的行为特征,然后将APP交给用户X(可能是A也可能是陌生人),在1分钟内引导X交互,判断 ...

  10. 关于node.js杂记

    https://gitlore.com/page/gitlore-git/nodejs/index.html[node.js中文文档] //////    https://gitlore.com/in ...