下面将分别总结HTML中标题(h1~h6)、段落(p)和列表(ul、ol)的使用。
标题
HTML里面表示标题的是h1、h2、h3、h4、h5、h6标签,通过编写以下代码:
<body>
<h1>这是标题 1</h1>
<h2>这是标题 2</h2>
<h3>这是标题 3</h3>
<h4>这是标题 4</h4>
<h5>这是标题 5</h5>
<h6>这是标题 6</h6>
</body>
浏览器的显示效果图如下,可以看到从h1到h6,标题逐渐变小,并且文字加粗:
需要注意的是,不要为了得到一定大小的文字而使用标题,为了文档结构具有语义以及搜索引擎优化,只有当需要一个标题的时候才应用h1到h6标签,如果单纯在正文中想要一定大小的文字,可以使用CSS来达到目的。
段落
p标签很常见,用来表示一串文字段落。
<p>这是一个段落。</p>
在html学习篇(一)的时候有讲过,p标签和h1~6标签都是块级元素,它们在网页中独占一行,可以编写以下代码:
<body>
<p>这是一个段落1。</p>
<p>这是一个段落2。</p>
<p>这是一个段落3。</p>
<p>这是一个段落4。</p>
</body>
在浏览器中显示效果如下:
这里跟上面h1~h6标签的效果一样,各个段落分别独占一行,而且跟代码中是否换行没有关系,编写以下代码。
<body>
<p>这是一个段落1。</p><p>这是一个段落2。</p><p>这是一个段落3。</p><p>这是一个段落4。</p>
</body>
即使像上面这样编写也是一样的效果:
也就是代码中标签之间(注意不是指标签内的内容之间)是否换行与页面的内容是否换行是没有绝对关系,而是要看标签属于什么样的元素,是块级元素就显示为一行,而行内元素就合并在一行内,如果其内容超出一行范围则剩余部分切换到下一行。
上一篇html学习篇(一)还讲到一个HTML关键特性——嵌套,块级元素除了可以嵌入其他块级元素外,还可以嵌入行内元素,但行内元素则不能嵌入块级元素,只能嵌入其他行内元素。下面分别对比下,块级元素分别嵌入块级元素与行内元素之间的对比:
<!--块级元素p嵌入了另一个块级元素p-->
<body>
<p>这是一个<p>这是一个段落2。</p>段落1。</p>
</body>
上面代码在浏览器中将显示为:
可以看到上图段落(1)被段落(2)截断了,这里验证了行内元素独占一行的特性(前后自动换行)。
既然这样,赶紧再来看看块级元素嵌入行内元素的情况:
<!--块级元素p嵌入了行内元素a-->
<body>
<p>这是一个<a href="https://www.baidu.com/">这是一个百度超链接。</a>段落。</p>
</body>
很明显,有下划线的这个超链接作为行内元素,并没有自动换行的特性,所以被包含在标签p的内容里。
虽然这里只使用了标签p和a来做示例,但对于其他块级元素和行内元素来说结果应该会是一样的。
上面提到“代码中标签之间是否换行与页面的内容是否换行是没有关系”,那么如果是标签内的内容之间换行呢?
<body>
<p>这是一个段落。
换行,这是下一行</p>
</body>
可以看到标签的内容换行是不起作用的,换行需要用br标签:
<body>
<p>这是一个段落。<br>
换行,这是下一行</p>
</body>
另外,一个标签内连续多个(2个或以上)空格都会被当成一个空格来处理。
如需在标签的内容中的多个空格和换行都正确显示在页面上,可以使用pre标签
列表
列表有三种,分别是无序列表ul、有序列表ol和定义列表dl
1.无序列表
ul标签代表无序列表,列表项由li标签嵌入,列表项不分先后顺序,默认前置标记为实心圆点:
<ul>
<li>苹果</li>
<li>香蕉</li>
<li>橙子</li>
</ul>
无序列表可以通过设置CSS样式list-style-type来更改前置标记为其他形状,也可以标记为无标记(none)。
2.有序列表
ol标签代表有序列表,列表项同样是li标签,列表项按顺序放,默认是阿拉伯数字从1开始:
<ol>
<li>苹果</li>
<li>香蕉</li>
<li>橙子</li>
</ol>
有序列表同样可以通过设置CSS样式list-style-type来前置顺序标记为其他,可参考list-style-type。
3.定义列表
dl标签代表定义列表,列表项由dt和dd标签来组成,dt标签表示列表项标题,dd标签表示列表项内容。dl标签包含了1个或多个的dt和dd,而dt和dd之间不是嵌套关系,而是兄弟节点关系。
<dl>
<dt>标题1</dt>
<dd>内容1</dd>
<dd>内容1.1</dd>
<dt>标题2</dt>
<dd>内容2</dd>
</dl>
可以看到,多个dt和dd标签为同一级标签,而且是一对多的关系。