[小白笔记]HTML 基本元素

150 阅读8分钟

一.网页的基本元素

1.1文档声明

<!DOCTYPE html>
  • HTML文档声明告诉浏览器当前页面是HTML5页面,让浏览器用HTML5的标准去解析识别HTML文档
  • 必须放在HTML文档的最前面,不能省略,否则会出现兼容性问题
  • HTML5的文档声明比HTML 4.01、XHTML 1.0简洁非常多(XHTML语法严格)
<!DOCTYPE   HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

1.2 html元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Title</title>
</head>
<body>
    
</body>
</html>
  • html元素是HTML文档的根元素,一个文档只能有一个,其他所有元素都是它的后代元素

  • W3C标准建议为html元素增加一个lang属性

    浏览器会读取lang属性,根据浏览器设置的语言,判断是否提示用户翻译网页

    • 帮助语言合成工具确定要使用的发音

    • 帮助翻译工具确定要使用的翻译规则

    • lang="en"告诉浏览器,这个HTML文档的语言是英文,chrome浏览器有如下提示:

    • lang="zh"告诉浏览器,这个HTML文档的语言是中文

1.3 head元素

  • head元素里面的内容是一些"元数据",用来描述数据的数据

  • 一般用于描述网页的各种信息,比如字符编码、网页标题、网页图标

    • 以下列出的元素大多数情况下都是在head元素内部使用

    • title元素:网页标题

    • meta元素:设置网页的字符编码

      • 可以用于设置网页的字符编码,让浏览器更精准的显示每一个文字,不设置或者设置错误会导致乱码

      • 一般都是用UTF-8编码,涵盖了世界上几乎所有的文字

      • 在HTML5之前,meta标签的写法也是比较复杂的

      • <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
        
    • style:样式

    • link:

      • 引入外部css文件
      • 设置网页小图标 :
    • base

    • script

    • noscript:用来定义在脚本未被执行时的替代内容(文本),此标签可被用于可识别 noscript 标签但无法支持其中的脚本的浏览器。

<head>
    <meta charset="UTF-8">
    <title>网页标题</title>
    <link rel="stylesheet" href="index.css">
    <style>
        div {
            color:red;
        }
    </style>
    <script src="index.js"></script>
    <noscript>你的浏览器不支持JavaScript</noscript>
    <base target="_blank">
</head>

字符编码

  • 作用:将文字存储到计算机中,之后解析出来显示
  • 应用:所有的网页目前都需要采用UTF-8编码,所以浏览器在解析时,我们也需要告诉浏览器当前我们使用UTF-8,浏览器才能正常的解析出来文字
    • 计算机中所有的东西最终都是0101表示
    • kobe -> 1110 0101 1101 0001
    • k -> 1110 o -> 0101 b -> 1101 e -> 0001
    • ASCII
    • 中文: GB2312 -> GBK(生僻字) ->
    • Unicode -> 规则:
    • utf-16/utf-32/utf-8
<!DOCTYPE html>
<html lang="en">
<head>
    <!-- 字符编码设置不正确会导致乱码 -->
    <meta charset="GBK">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>标题</title>
</head>
<body>
    <h1>哈哈哈哈</h1>
</body>
</html>
  • 哈哈哈 -> UTF-8(编码) 0101 0101 0011 -> GBK(解码) -> 乱码

1.4 body元素

  • body元素里面的内容是你在浏览器窗口中看到的东西,也就是网页的具体内容和结构

二.基本元素

h元素

表示网页的标题

h1~h6共规定了6个等级的标题

<!-- 1.h元素:h1~h6-->
<h1>我是h1标题</h1>
<h2>我是h2标题</h2>
<h3>我是h3标题</h3>
<h4>我是h4标题</h4>
<h5>我是h5标题</h5>
<h6>我是h6标题</h6>

h元素和SEO

h元素有助于网站的SEO(Search Engine Optimization中文:搜索引擎优化[百度/搜狗/360/Google])优化,可以促进关键词排名

建议在网页中最多只有1个h1元素

乱用h元素不仅不会给网站带来好的权重,同时也可能被搜索引擎认为作弊,最后导致K站

p元素

段落

<!-- p元素:段落(paragraph) -->

<p>
    Eyewear II支持语音接收,可以接电话、听歌。它配备半开放式扬声器,搭配定制的高振幅扬声器驱动单元,声音清晰透亮。
    同时,这款智能眼镜搭载全新的逆声场声学系统,可以降低佩戴者双耳周围的漏音情况。即使身处安静的电梯或者会议室,
    也无需担心旁人听到你独享的音乐或电话那头的小秘密。
</p>
<p>
    在操作上,Eyewear II操控便捷,轻滑镜腿即可完成切歌、调节音量等操作;双击任意镜腿,可接听或挂断电话,也可暂停
    或播放音乐;双击左镜腿,可轻松唤醒语音助手,操作一步到位。这样的设计不仅为消费者带来更加智能的交互体验,而且
    显得科技感满满。
</p>
<p>
    值得一提的是,作为华为跟时尚眼镜品牌合作推出的产品,Eyewear II外观时尚,适合作为日常穿搭单品。这款智能眼镜推出了
    多个版本,包括经典光学系列、金属光学系列、SMART设计系列、New FLATBA墨镜系列,可以满足不同消费者的需求。
</p>

strong元素

加粗

<p>
    这是一个<strong>重要</strong>的内容
</p>

img元素

显示图片

属性 src:图片路径

  • img:img元素专门用来显示图片(image)
    • img元素是单标签
    • 属性:src 用来设置图片路径(URL) 【网络图片/本地图片:[相对路径/绝对路径]】
      • 绝对路径:完整的描述文件位置的路径
      • 相对路径:由这个文件所在的文件夹引起的跟其他文件的路径关系
      • 对于网页来说,不管什么操作系统,路径分隔符都是/,而不是\
    • 属性: alt 当图片失效(加载失败)时显示的文本,HTML5规范中为必要属性
    • 属性:width/height,默认单位像素px
<!-- 
    src:
        * 远程图片地址
        * 本地图片地址(路径)
            绝对路径:E:/Test/HTML/img/timg.jpg
                特点:从根路径下面开始找
                缺点:一旦位置发生改变,那么就有可能出现(图片)找不到的情况
            相对路径:
                规则:
                    . 当前路径
                    .. 上一层路径(目录)
-->
<p>网络图片地址</p>
<img src="http://n1.sinaimg.cn/news/1_img/upload/c4b46437/100/w1500h1000/20191128/e246-iixnuaa0665289.jpg" alt="">

<p>本地图片地址(绝对路径)</p>
<img src="E:/Test/HTML/img/timg.jpg" alt="">

<p>本地图片地址(相对路径)</p>
<img src="../img/timg.jpg" alt="">


<!-- alt属性:当图片失效(加载失败)时显示文本 -->
<img src="aa.jpg" alt="图片加载失败时显示">


<!-- width属性(不常用) -->
<img 
    src="../img/test_01.jpg" 
    alt=""
    width="100">

Web常用的图片格式

  • png:静态图片,支持透明
  • jpg/jpeg:静态图片,不支持透明
  • gif:动态图片、静态图片,支持透明 gif分解

像素(pixel)

  • 像素(px)是图像显示的最小单位
  • 每个像素都能表示一种颜色
  • 计算机显示出来的图像都是由一堆像素组成的
  • 组成图片的像素越多,显示越清晰

image-20200918112758299

  • 视网膜屏幕

a元素

定义超链接,用于打开新的URL

  • 常用属性
    • href(Hypertext Reference):指定要打开的URL
    • target:在哪里打开URL
    • 如何打开本地页面:使用相对路径
<!-- 14_a元素的基本使用.html -->
<!-- 1.基本使用 href:超链接 -->
<p>打开外部网站</p>
<a href="http://www.baidu.com">百度一下</a>

<p>打开自己的网页</p>
<a href="./b.html">打开图片网站</a>
<br>


<!-- 
    2.target:
        _self(默认值):在当前窗口打开URL
        _blank:在一个新的窗口中打开URL

        和iframe一起使用时,才有效果
        _parent:在父窗口中打开URL
        _top:在顶层窗口中打开URL
        具体iframe的name:在某个iframe中打开URL
-->
<p>target属性:(_self)</p>
<a href="http://www.baidu.com" target="_self">百度一下</a>

<p>target属性:(_blank)</p>
<a href="http://www.baidu.com" target="_blank">百度一下</a>

<p>target属性:(_parent)</p>
<a href="http://www.baidu.com" target="_parent">百度一下</a>

<p>target属性:(_top))</p>
<a href="http://www.baidu.com" target="_top">百度一下</a>

iframe中嵌套a

<!-- 点击target属性:(_parent)下的a标签,会在当前页面打开新的网页 -->
<iframe src="./14_a元素的基本使用.html" 
        frameborder="1"
        width="1000"
        height="600">
</iframe>

iframe中嵌套iframe

<iframe src="./iframe.html" 
        width="1200"
        height="600"  
        frameborder="1">
</iframe>

base元素

  • 标签为页面上的所有链接规定默认地址或默认目标。
  • a元素和base元素结合使用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <base href="http://www.baidu.com" target="_blank">
</head>
<body>
    <a href="">百度一下</a>
    <a href="/img/bd_logo1.png">百度logo</a>
    <a href="/s?wd=vue">搜索vue</a>

    <a href="http://www.taobao.com">淘宝</a>
</body>
</html>

iframe元素

    <iframe src="http://www.baidu.com"
            width="1000",
            height="600" 
            frameborder="1">
    </iframe>

    <iframe src="http://www.taobao.com"
            width="1000",
            height="600" 
            frameborder="1">
    </iframe>

    <iframe src="./a标签.html"
            width="1000",
            height="600" 
            frameborder="1">
    </iframe>

锚点连接

跳转到网页中的具体位置

<a href="#one">go</a>

点击Go会定位到

  • id值为one的元素

  • name值为one的a元素

  • 如何跳转到其他页面的特定位置:

  • <a href="index.html#one">首页第一节</a>
    
<a href="#title1">标题1</a>
<a href="#title2">标题2</a>
<a href="#title3">标题3</a>

<h2 id="title1">标题1</h2>
<p>我是内容1</p>
<p>我是内容1</p>
<p>我是内容1</p>
<p>我是内容1</p>
<p>我是内容1</p>
<p>我是内容1</p>
<p>我是内容1</p>
<p>我是内容1</p>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<h2 id="title2">标题2</h2>
<p>我是内容2</p>
<p>我是内容2</p>
<p>我是内容2</p>
<p>我是内容2</p>
<p>我是内容2</p>
<p>我是内容2</p>
<p>我是内容2</p>
<p>我是内容2</p>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<h2 id="title3">标题3</h2>
<p>我是内容3</p>
<p>我是内容3</p>
<p>我是内容3</p>
<p>我是内容3</p>
<p>我是内容3</p>
<p>我是内容3</p>
<p>我是内容3</p>
<p>我是内容3</p>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>

伪链接

  • 有时候点击链接的时候不希望打开新的URL,而是希望干点别的事情,这是可以使用伪链接

  • 没有指明具体链接地址的链接

  • 点击链接后,具体要做什么事情,需要编写对应的JavaScript代码

    • 如果暂时不做任何事,可以先写成下面的形式

      <a href="#" onclick="return false;">伪链接1</a>
      <a href="javascript:">伪链接2</a>
      
    • 所以有时候可以把连接当作按钮来使用

<!-- 普通链接 -->
<a href="http://www.baidu.com">百度一下</a>

<!-- 链接:href的值#:点击返回顶部 -->
<a href="#">百度一下</a>
<a href="">百度一下</a>

<!-- 伪链接 -->
<a href="javascript:alert('Hello World')">弹出弹窗</a>

<a href="" onclick="alert('Hello HTML')">弹出弹窗</a>
  • a元素与img元素结合:img元素和a元素一起使用,可以实现图片链接

a元素的其他用途

<!-- 下载 -->
https://github.com/sripathikrishnan/redis-rdb-tools/archive/master.zip

<!-- 邮箱 -->
mailto:12345@qq.com

<!-- ed2k -->
ed2k://|file|%5BCsharp%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B%28%E7%AC%AC6%E7%89%88%29%5D.%EF%BC%88%E7%....

<!-- 迅雷下载 -->
thunder://QUFmdHAlM0ElMkYlMkZ5Z2R5OCUzQXlnZHk4JTQweTIxOS5keWR5dHQubmV0JTNBODI0MCUyRiU1QiVFOSU5OCVCMy....

span

  • 默认情况下,跟普通的文本没有区别
  • 用于区分特殊文本和普通文本,比如用来显示一些关键字

示例1:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .text {
            color:red;
            font-size: 30px;
        }
        
        .new-price {
            color:red;
            font-size: 30px;
        }
        .old-price {
            color:grey;
            text-decoration: line-through;
        }
        
    </style>
</head>
<body>
    <!-- 总结:span主要作用是对普通的文本进行归类 -->
    <!-- 换行符会导致空格 -->
    我是一段文本 
    <span class="text">我是也一段文本</span>
    
    <!-- 价格的显示 -->
    <p>
        <span class="new-price">¥69</span>
        <span class="old-price">¥99</span>
    </p>
</body>
</html>

div

  • 一般作为其他元素的父容器,把其他元素包住,代表一个整体
  • 用于把网页分割为多个独立的部分
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .box1 {
            float:left;
        }

        .box2 {
            float:right;
        }
    </style>
</head>
<body>

    <!-- 对多个标签或者区域进行统一的操作 -->
    <div class="box1">
        <h1>哈哈哈哈</h1>
        <p>hahahahahahaha</p>
    </div>
    
    <div class="box2">
        <h2>呵呵呵呵</h2>
        <p>hehehehehehhehe</p>
    </div>
    
</body>
</html>

code

<!-- code:显示代码 -->
<!-- 等宽字体:hl -->
<p>
    只是一段代码 <code>function test() {}</code> 代码结束
</p>

<!-- span代替 -->
<p>
    只是一段代码 <span style="font-family: monospace;">function test() {}</span> 代码结束
</p>

br:(break)

<!-- 换行 -->
<p>
    文字内容一<br>
    文字内容二<br>
    文字内容三<br>
    文字内容四<br>    
</p>

hr

<!-- 分割线 -->
<hr color="red">

<div style="height: 5px;background-color:red;"></div>
<!-- 通过边框:border -->
<div class="box"></div>

pre标签:可以保留空格