HTML 基础

Posted 知其黑、受其白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML 基础相关的知识,希望对你有一定的参考价值。

阅读目录

html基础(框架)

HTML (HyperText Markup Language) 不是一门编程语言,而是一种用于定义内容结构的标记语言,用来描述网页内容,文件格式为.html。

HTML 由一系列的元素(elements)组成,这些元素用来实现不同的内容。

HTML5 是 HTML 新的修订版本,2014年由W3C制定发布,增加了很多语义化标签。

网页结构

H5 版本申明:<!DOCTYPE html>,文档(第一行)必备的文档类型申明,避免浏览器怪异行为,这不是一个标签。

主根元素<html><html>整个网页</html>,定义html文档,也限定了文档的开始和结束点。

头部元素<Head><head>网页头部信息,当前网页的一些元数据信息</head>,用于描述文档的各种属性和信息,包括文档标题。这部分内容是给浏览器、开发者使用的,不用向用户显示。

内容根元素 <body><body>网页内容区域</body>,文档内容的主体,包含文档所有的正式内容,用于给用户显示。

body 有两个设置背景色 bgcolor、前景色 text 的属性,不过样式一般用 css 管理。

<!DOCTYPE html>
<html>
  <head>
    <!-- 头部,网页的一些元数据信息 -->
  </head>
  <body bgcolor="blue" text="red">
    <!-- 我们看到的网页内容区域 -->
  </body>
</html>

头部标签

<meta>:用于描述HTML文档的属性、关键词等元数据的元素,如文档编码字符集charset。

<title>:网页标题,出现在浏览器标签上。是 head 中唯一必须包含的元素,有利益SEO优化。

<link>:引入外部资源,常用的如css资源。
<script>:内部js代码,或引入外部js文件。script必须是双标签。
<base>:文档根 URL 元素,每个文档只能一个,指定当前文档的根URL地址。

<head>
<!-- 头部,网页的一些属性申明信息 -->
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="http://www.example.com/">
<title>网页标题-HTML学习</title>
<link rel="stylesheet" href="css文件路径"/>
<script src="js文件路径" type="text/javascript" charset="utf-8"></script>
无标签的不规范内容,这行文字会被自动处理到body中
</head>

<meta> 元数据

<meta charset="UTF-8">
<meta name="description" content="淘宝网 - 亚洲较大的网上交易平台,提供各类服饰、美容… ">
<meta name="keyword" content="淘宝,掏宝,网上购物,C2C,在线交易,交易市场,网上交易...">
<!-- viewport:设置视口大小及缩放 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes">
<!-- 如果目标更加安全,则发送完整 URL。否则不发送referrer -->
<meta name="referrer" content="no-referrer-when-downgrade">
<!-- format-detection:禁用(ios)上的电话号码、邮箱检测 -->
<meta name="format-detection" content="telephone=no, email=no">
<!-- 浏览器内核:webkit -->
<meta name="renderer" content="webkit">
<!-- 网站类型(百度定义的),pc,mobile -->
<meta name="applicable-device" content="pc">
<!-- 淘宝自己定义的元数据,用于跟踪电商数据 -->
<meta name="spm-id" content="a21bo">

<!-- 文档编码类型Content-Type -->
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
<!-- 过期时间:立即过期 -->
<meta http-equiv="expires" content="0">
<!-- 浏览器兼容性设置:优先使用 IE 最新版本和 Chrome -->
<meta http-equiv="X-UA-Compatible" content="IE=10,chrome=1">    
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- no-transform主要是用在 proxy 服务器,不允许进行格式转换 -->
<meta http-equiv="Cache-Control" content="no-transform">
<!-- 是早期百度提供的禁止将网页进行转码的代码 -->
<meta http-equiv="Cache-Control" content="no-siteapp">

<div> 及语义 <header/footer...> 块元素

<div> 是一个容器元素,是一个 “纯粹的”、“无任何语义的” 容器,用来把不同的内容分区管理。

本身无任何表现效果,配合css使用。

在HTML5中增加了和 div 相同作用的语义化块布局元素标签,这些元素定义了一个大概的语义范围,并没有一个严格的界限。

语义块元素可读性更好,也更有利于SEO。

⚠️ 注意:语义化块元素在一些古老的浏览器存在兼容性问题,如IE8。

元素/属性
描述
<div> 块元素
块级无语义元素(division 分区)
align
内部内容的对齐方式,已废弃
<header> IE9 块元素
页眉:文档头部相关区域
<nav> 块元素
导航栏:主导航相关区域
<footer> 块元素
页脚:底部相关区域,如页面下面的版权信息、文章后面的申明信息等
<aside> 块元素
侧边栏:页面内容以外的区域,如侧边栏、呼出框等
<main> 块元素
主内容:文档主内容区域
<article> 块元素
文章,表示一个独立的、可重复的内容块,如一篇博客、一条评论、一篇帖子
<section> 块元素
段落部件,文档中的章节、页眉、页脚,把article分为多个section
<h2>div布局</h2>
<div style="height: 280px;">
		<div class="header">div class="header" </div>
		<div class="nav">div class="nav"</div>
		<div style="height: calc(100% - 140px);">
				<div class="left">div class="left"</div>
				<div class="right">div class="right"</div>
		</div>
		<div class="footer">div class="footer"</div>
</div>

<h2>语义布局</h2>
<div style="height: 280px;">
		<header class="header">header class="header" </header>
		<nav class="nav">div class="nav"</nav>
		<main style="height: calc(100% - 140px);">
				<aside class="left">aside class="left"</aside>
				<article class="right">article class="right"</article>
		</main>
		<footer class="footer">footer class="footer"</footer>
</div>

<!--样式-->
<style>
		.header,
		.footer 
				background-color: antiquewhite;
				height: 40px;
				text-align: center;
				line-height: 40px;
				float: none;
		

		.nav 
				background-color: aquamarine;
				height: 40px;
				line-height: 40px;
				text-align: center;
		

		.left 
				background-color: rgb(201, 223, 215);
				float: left;
				width: 150px;
				height: 100%;
				text-align: center;
		

		.right 
				background-color: rgb(238, 252, 206);
				float: left;
				height: 100%;
				width: calc(100% - 150px);
				text-align: center;
		
</style>

<table> 表格

<table> 是一个嵌套组合的标签集合,一个表格 table,有多个行,每行有多个单元格组成,常用于展示集合数据。

<table> 包含多种特有的子元素,构成表格的各个部分。

表格元素结构/顺序:
<table> ► <caption> ► <colgroup> ► <thead> ► <tbody>/<tr> ► <tfoot>

<table border="2" width="500px" bgcolor="#F5F5F5" align="center" style="border-collapse:collapse;font-size: large;">
	<colgroup>
		<col>
		<col width="30%" style="background-color: azure;">
		<col class="col" span="2">
	</colgroup>
	<thead height="40px">
		<tr>
			<th width="30%">name</th>
			<th>age</th>
			<th colspan="2">birthday</th>
		</tr>
	</thead>
	<tr align="center">
		<!--数据行-->
		<td align="right" bgcolor="lightblue" rowspan="2">zhangsan</td>
		<td>22</td>
		<td colspan="2">2000-12-12</td>
	</tr>
	<tr align="left">
		<!--数据行-->
		<td align="center">23</td>
		<td>2000-12-12</td>
		<td>多了一格</td>
	</tr>
</table>
<style>
	.col 
		border: 2px solid red;
		width: 200px;
	
</style>

<embed/object> 过时的嵌入元素

<embed><object> 元素用来嵌入多种外部内容的通用嵌入工具,如 Java 小程序、Flash、PDF、浏览器插件,甚至视频,SVG 和图像等类型。

现代的WEB技术已比较成熟了,就像IE一样,插件也将逐步称为历史。

<object type="application/pdf" width="500" height="800" data="https://mdn.github.io/learning-area/html/multimedia-and-embedding/other-embedding-technologies/mypdf.pdf">
		<p>You don't have a PDF plugin, but you can <a href="mypdf.pdf">download the PDF file.</a></p>
</object>

表单元素

<style>
		#form fieldset 
				border: 1px solid skyblue;
				padding: 20px 10px;
				border-radius: 5px;
				text-align: center;
				margin: 10px 0px;
		
		#form fieldset legend 
				font-size: 1em;
				border: 1px solid rgb(236, 175, 43);
				border-radius: 1em;
				padding: 3px 15px;
		
</style>
<form id="form" action="#" target="_self" method="post">
		<fieldset>
				<legend>登录</legend>
				<input type="text" name="uname" placeholder="请输入用户名" required maxlength="36">
				<input type="password" name="upwd" required maxlength="12" placeholder="输入密码">
				<input type="submit" value="submit-登录">
		</fieldset>
</form>


注意 <form> 提交数据时参数名为表单控件的 name,因此表单控件须设置 name 属性。

get、post 区别


因此:

数据有安全性要求的时候,建议用POST并且加密(HTTPS)。

获取数据(如查询)的的时候,一般用GET;提交数据(添加、修改、删除)时一般用POST。

<input> 表单元素

表单元素 <input> ,主要用于输入各种类型数据。
包含多个控件类型 type:文本框、复选框、单选框、按钮等。

注意:

一般浏览器对不支持的 type,都默认降级为 text。

文件选择框如通过表单提交,表单需设置属性 enctype="multipart/form-data" 设置表单数据编码为多种数据组合,同时设置提交方式为 post,才可以上传文件(二进制)。

<input>支持的常规属性

<style>
	.iform 
		text-align: right;
		display: grid;
		grid-template-columns: 80px 200px 80px 200px;
		gap: 10px 5px;
	

	/* 重写radio的样式 */
	.iform input[type="radio"] 
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		border-radius: 50%;
		width: 20px;
		height: 20px;
		border抽象工厂模式

香蕉派怎么做好吃又简单的做法

Python描述 LeetCode 875. 爱吃香蕉的珂珂

比树莓派配置好接地气的香蕉派上手初体验

香蕉为什么能做随机数生成器?因为,它是水果界的“辐射之王”

python基础18 ---多态与绑定方法