整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

6.HTML 标题、段落和文本格式

网页设计中,标题、段落和文本格式是构成页面内容的基石。它们不仅有助于传达信息,还能通过组织和强调内容来提升用户体验。本文将详细介绍这些元素的使用方法,并提供实际例子。

标题(Headings)

标题是用来定义网页中不同部分的标题。在HTML中,标题标签从<h1>到<h6>,其中<h1>表示最高的层级,通常用于主标题,而<h6>表示最低的层级。为了保证良好的SEO实践和无障碍访问,应保证标题层级的逻辑顺序。

使用实例:

<h1>欢迎来到我的博客</h1>
<h2>最新文章</h2>
<h3>Web开发的未来趋势</h3>
<h4>前言</h4>
<h4>主要内容</h4>
<h4>结论</h4>
<h3>如何提高JavaScript技能</h3>

在这个例子中,<h1>用于最主要的标题,<h2>用于区分页面中的主要部分,<h3>用于文章标题,<h4>用于文章内部的小节。

段落(Paragraphs)

段落是文本的基本单元,用于组织和展示连续的文本内容。在HTML中,<p>标签用于定义段落。合理的段落分割有助于读者更好地理解和吸收信息。

使用实例:

<p>在今天的数字时代,网页开发已经成为了一个不断演变的领域。随着新技术的出现,开发者需要不断学习和适应。</p>

<p>JavaScript是构建现代网页不可或缺的一部分。为了成为一名更优秀的前端开发者,提高JavaScript技能是非常重要的。</p>

在这个例子中,两个<p>标签分别定义了两个独立的段落,每个段落都是一个完整的思想单元。

文本格式

文本格式用于强调或区分网页中的文本内容。HTML提供了多种标签来改变文本的样式和意义,包括但不限于加粗、斜体、下划线、上标和下标等。

加粗(Bold)

<strong>和<b>标签用于加粗文本,但<strong>通常表示重要性,而<b>仅用于视觉上的加粗。

使用实例:

<p>重要提示:<strong>请不要在任何情况下泄露您的密码。</strong></p>
<p>这是一个<b>加粗</b>的文本示例。</p>

斜体(Italic)

<em>和<i>标签用于斜体文本,<em>表示强调,而<i>仅用于斜体样式。

使用实例:

<p>当我们谈论<em>用户体验</em>时,我们指的是用户与产品交互的整体感受。</p>
<p>这是一个<i>斜体</i>的文本示例。</p>

下划线和删除线

``标签用于下划线文本,而<del>标签用于显示文本已被删除或更改。

使用实例:

<p>请阅读使用条款了解更多信息。</p>
<p>原价<del>99.99美元</del> 现价69.99美元。</p>

上标和下标

<sup>和<sub>标签用于创建上标和下标文本,常用于科学公式和脚注。

使用实例:

<p>水的化学式是H<sub>2</sub>O。</p>
<p>爱因斯坦的质能方程式E=mc<sup>2</sup>。</p>

结论

合理使用标题、段落和文本格式可以极大地提升网页内容的可读性和专业性。通过明确的层级结构和强调重要内容,你可以帮助用户快速找到他们需要的信息。记住正确使用这些基本元素,你的网页将更加吸引人且功能强大。

、标签理解

1.HTML标签由尖括号包围关键词。通常是成对出现的,称为双标签。例如<html>(开始标签)和</html>(结束标签)。有些特殊标签为单个标签,称为单标签。例如<br/>

2.标签关系有包含关系和并列关系

3.标签的含义(语义):标签是用来干嘛的。(在适合的地方给一个合理的标签可以使页面结构更清晰)

4.每个网页都会有一个基本的结构标签(也称为骨架标签),HTML页面也称为HTML文档

二、基本结构标签



1.<html>标签是根标签,页面中最大的标签

2.<head>标签是文档的头部,在<head>标签内必须设置<title>标签

3.<title>标签是文档的标题,网页的标题

4.<body>标签是文档的主体,文档的所有内容,网页内容



三、常见标签

1.标题标签<h1>-<h6>(head的缩写)

(1) 语义:作为标题使用,并依据重要性递减(2) 特点:a.加了标题标签文字会变粗,字号依次变大 b.一个标题独占一行


2.段落标签<p>(paragraph的缩写)

(1) 语义:可以把HTML文档分割为若干段落

(2) 特点:a.一个段落根据浏览器窗口的大的自动换行 b.段落之间有大的空隙


3.换行标签<br/>(break的缩写)

(1) 语义:强制换行

(2) 特点:a.<br/>是个单标签 b.<br/>只是简单重新开始一行与段落不同


4.文本格式标签(为文字设置粗体,斜体或下划线等效果,语义:突出重要性)

(1) 加粗:<strong></strong>或<b></b> 推荐使用<strong>标签,语义更强烈

(2) 倾斜:<em></em>或<i></i> 推荐使用<em>标签,语义更强烈(emphasize)

(3) 删除线:<del></del>或<s></s> 推荐使用<del>标签,语义更强烈(delete)

(4) 下划线:<ins></ins>或<u></u> 推荐使用<ins>标签,语义更强烈(insert)


5.<div>和<span>标签(没有语义,是一个盒子,用来装内容 division span)

特点:a.<div>标签用来布局,一行只能放一个<div>,是个大盒子 b.<span>标签用来布局,一行可以有多个<span>,是个小盒子

三种常用的代码分离方法:

  • 入口起点:使用 entry 配置手动地分离代码。
  • 防止重复:使用 CommonsChunkPlugin 去重和分离 chunk。
  • 动态导入:通过模块的内联函数调用来分离代码。

1、入口起点

这是迄今为止最简单、最直观的分离代码的方式。不过,这种方式手动配置较多

webpack.config.js


  1. const path = require('path');
  2. const HTMLWebpackPlugin = require('html-webpack-plugin');
  3. module.exports = {
  4. entry: {
  5. index: './src/index.js',
  6. another: './src/another-module.js'
  7. },
  8. plugins: [
  9. new HTMLWebpackPlugin({
  10. title: 'Code Splitting'
  11. })
  12. ],
  13. output: {
  14. filename: '[name].bundle.js',
  15. path: path.resolve(__dirname, 'dist')
  16. }
  17. };

这将生成如下构建结果


  1. Hash: 309402710a14167f42a8
  2. Version: webpack 2.6.1
  3. Time: 570ms
  4. Asset Size Chunks Chunk Names
  5. index.bundle.js 544 kB 0 [emitted] [big] index
  6. another.bundle.js 544 kB 1 [emitted] [big] another
  7. [0] ./~/lodash/lodash.js 540 kB {0} {1} [built]
  8. [1] (webpack)/buildin/global.js 509 bytes {0} {1} [built]
  9. [2] (webpack)/buildin/module.js 517 bytes {0} {1} [built]
  10. [3] ./src/another-module.js 87 bytes {1} [built]
  11. [4] ./src/index.js 216 bytes {0} [built]

正如前面提到的,这种方法存在一些问题:

  • 如果入口 chunks 之间包含重复的模块,那些重复模块都会被引入到各个 bundle 中。
  • 这种方法不够灵活,并且不能将核心应用程序逻辑进行动态拆分代码。

2、防止重复

CommonsChunkPlugin 插件可以将公共的依赖模块提取到已有的入口 chunk 中,或者提取到一个新生成的 chunk。让我们使用这个插件,将之前的示例中重复的 lodash 模块去除:

webpack.config.js


  1. const path = require('path');
  2. + const webpack = require('webpack');
  3. const HTMLWebpackPlugin = require('html-webpack-plugin');
  4. module.exports = {
  5. entry: {
  6. index: './src/index.js',
  7. another: './src/another-module.js'
  8. },
  9. plugins: [
  10. new HTMLWebpackPlugin({
  11. title: 'Code Splitting'
  12. - })
  13. + }),
  14. + new webpack.optimize.CommonsChunkPlugin({
  15. + name: 'common' // 指定公共 bundle 的名称。
  16. + })
  17. ],
  18. output: {
  19. filename: '[name].bundle.js',
  20. path: path.resolve(__dirname, 'dist')
  21. }
  22. };

这里我们使用 CommonsChunkPlugin 之后,现在应该可以看出,index.bundle.js 中已经移除了重复的依赖模块。需要注意的是,CommonsChunkPlugin 插件将 lodash 分离到单独的 chunk,并且将其从 main bundle 中移除,减轻了大小。执行 npm run build 查看效果:


  1. Hash: 70a59f8d46ff12575481
  2. Version: webpack 2.6.1
  3. Time: 510ms
  4. Asset Size Chunks Chunk Names
  5. index.bundle.js 665 bytes 0 [emitted] index
  6. another.bundle.js 537 bytes 1 [emitted] another
  7. common.bundle.js 547 kB 2 [emitted] [big] common
  8. [0] ./~/lodash/lodash.js 540 kB {2} [built]
  9. [1] (webpack)/buildin/global.js 509 bytes {2} [built]
  10. [2] (webpack)/buildin/module.js 517 bytes {2} [built]
  11. [3] ./src/another-module.js 87 bytes {1} [built]
  12. [4] ./src/index.js 216 bytes {0} [built]

以下是由社区提供的,一些对于代码分离很有帮助的插件和 loaders:

  • ExtractTextPlugin: 用于将 CSS 从主应用程序中分离。
  • bundle-loader: 用于分离代码和延迟加载生成的 bundle。
  • promise-loader: 类似于 bundle-loader ,但是使用的是 promises。

CommonsChunkPlugin 插件还可以通过使用显式的 vendor chunks 功能,从应用程序代码中分离 vendor 模块。

3、动态导入

当涉及到动态代码拆分时, 一般使用使用webpack提供的符合 ECMAScript 提案 的 import() 语法。

new Vue({


  1. el: '#app',
  2. components: {
  3. AsyncComponent: () => import('./AsyncComponent.vue')
  4. }
  5. });

实施代码分割并不难,难在搞清楚在什么时候、什么地方进行。

Vue.js 单页应用进行代码分割有三种思路:

  • 按页面分割
  • 使用折叠
  • 按条件分割

1. 按页面

按页面来进行代码分割,是最明显的一种方式。

如果能确保每个单文件组件代表一个页面,如 Home.vue, About.vue 以及 Contact.vue,那么我们就可以使用 Webpack 的 "动态导入" 函数 (import) 来将它们分割至单独的构建文件中。之后后,当用户访问一个新页面的时候,Webpack 将异步加载该请求的页面文件。

如果用到了 vue-router,由于页面已经分割成了单独的组件,实施起来会非常方便。


  1. const Home = () => import(/* webpackChunkName: "home" */ './Home.vue');
  2. const About = () => import(/* webpackChunkName: "about" */ './About.vue');
  3. const Contact = () => import(/* webpackChunkName: "contact" */ './Contact.vue');
  4. const routes = [
  5. { path: '/', name: 'home', component: Home },
  6. { path: '/about', name: 'about', component: About },
  7. { path: '/contact', name: 'contact', component: Contact }
  8. ];

代码编译完成后,通过查看生成的统计数据得知:每个页面都有自己单独的文件,同时有多出来一个名为 build_main.js 的打包文件。里面包含一些公共的代码以及逻辑,用来异步加载其它文件,因此它需要在用户访问路由之前加载完成。

2. 折叠

“折叠” 是指页面初次加载时,视图的不可见部分。用户通常会花费 1~2 秒来浏览可视区域,特别是第一次访问网站的时候(可能更久),之后才开始向下滑动页面。

这个时候,可以异步加载剩余的内容。

3. 条件展示内容

代码分割另一种比较好的备选方式,是按条件展示。比如:模态框、标签页、下拉菜单之类。

如果我们需要一个模态框,给模态框设置 v-if 属性,绑定了 show 变量。一方面用来控制模态框是否显示,同时也决定了是否应该渲染模态框组件。当页面加载的时候,它的值为 false,模态框的代码只有当它显示的时候才会被加载。如果用户永远不打开这个模态框,这部分代码就永远不会被下载。缺点是,可能会增加很小的用户体验成本:用户点击按钮后,需要等待代码文件下载完成。