白话前端——HTML+css+javascript

    在web开发时,HTML相当于主体骨架,用于布局,而CSS是针对样式优化,进行结构尺寸调整,JavaScript则是外部链接资源,主要用于交互。前两者搭配就可以构建一个静态网页,三者结合则可生成一个动态网页。整合自己在学习时的一些资料,具体如下,以供后续学习:

一、HTML 是什么?

  • HTML 指的是超文本标记语言 (Hyper Text Markup Language)
  • HTML 不是一种编程语言,而是一种标记语言 (markup language)
  • 标记语言是一套标记标签 (markup tag)
  • HTML 使用标记标签来描述网页

二、HTML基本结构

1

2

3

4

5

6

7

8

<html>                             ----根控制标记

    <head>                             ---头控制标记

        <title>这是标题</title>       ----标题标记

    </head>                            ----头控制标记

    <body>

                             ----- 我是Body!!!

    </body>

</html>                            ----根控制标记

示例:

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
 
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
 
</body>
</html>

执行结果,

这里要介绍一下上述的编码代表的含义

标签基本格式:<标签名 *属性名1=“属性值” 属性名2=“属性值”* ……>文件内容</标签名>

<! DOCTYPE html>:用于代码开头指定html版本等信息

<html></html>:告知浏览器这是一个 HTML 文档,是 HTML 文档中最外层的元素

<head></head>:所有头部元素的容器,必须包含文档的标题(title),可以包含脚本、样式、meta 信息以及其他

<title></title>:定义文档的标题,定义浏览器工具栏中的标题,显示在搜索引擎结果中的页面标题

<body></body>:定义文档的主体,包含文档的所有内容(比如文本、超链接、图像、表格和列表等)

<h1></h1>:定义 HTML 标题,从<h1><h6>标题的重要程度逐渐降低,字体大小也逐渐减小

<p></p>:定义段落,浏览器会自动在其前后创建一些空白,很类似与我们写作时的段落<br>:一个简单的换行符,是一个空标签,意味着它没有结束标签。

<div></div>:定义 HTML 文档中的一个分隔区块或者一个区域部分。经常与 CSS 一起使用,用来布局网页。

三、标签

head部分的标签<title>、<base>、<link>、<meta>、<script> 以及 <style>


title

  • 定义浏览器工具栏中的标题
  • 提供页面被添加到收藏夹时显示的标题
  • 显示在搜索引擎结果中的页面标题

meta

 

右击你可以看到他head里面的详细信息:

  • 文档描述【网站在搜索时,进行描述。】
    • <meta name="description" content="汽车之家为您提供最新汽车报价,汽车图片,汽车价格大全,最精彩的汽车新闻、行情、评测、导购内容,是提供信息最快最全的中国汽车网站。">
  • 文档关键词【网站在搜索时,进行关键字匹配】
    • <meta name="keywords" content="汽车,汽车之家,汽车网,汽车报价,汽车图片,新闻,评测,社区,俱乐部">
  • 重定向【页面重定向】
    • <meta http-equiv="Refresh"content="2;URL=https://www.baidu.com">

link用于导入css

  • <link rel="stylesheet" type="text/css" href="mystyle.css" />

script用于导入js

  • <script type="text/javascript">document.write("Hello World!")</script>

style用于定义css

1

2

3

4

5

6

7

8

9

10

11

<style>

 

p {

 

background-color:red;

 

font-size:15px;

 

  }

 

</style>

base:定义页面上所有链接的默认地址或默认目标.

1

2

3

<base href="http://www.w3school.com.cn/i/" />

 

<img src="eg_smile.gif" /><br />  #引入图片时,会和base进行拼接后再查找图片。

 

body部分的标签(可以在网页上看到的内容)


1、排版标签:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<h1~h6>:从大到小. 表示标题.

 

<p>: 段落标签. 包裹的内容被换行.并且也上下内容之间有一行空白.

 

<b> <strong>: 加粗标签.

 

<strike>: 为文字加上一条中线.

 

<em>: 文字变成斜体.

 

<sup>和<sub>: 上角标 和 下角表.

 

<br/>:换行. 单标签

 

<hr>:水平线

 

<div> :块,主要用于布局

 

<span>:内联标签

(1)、标题标签 <h1></h1>

  • h 即 head 的简写
  • 有<h1>、<h2>、<h3>、<h4>、<h5>、<h6> 6种,从左到右字号依次变小。
  • 基本格式<h1></h1>
  • 像<h7>这种错误的标签在展示时不起作用

(2)、段落标签<p></p>

  • p 即 paragraph 的简写
  • 基本格式<p>段落内容</p>
  • 段落中的文本内容超出浏览器宽度之后会执行自动换行

(3)、水平线标签<hr />

  • hr 即 horizontal 的缩写
  • 其作用是在页面中插入一条水平线
  • 基本格式<hr />
  • 这是一个自闭合标签。(普通标签成对出现;自闭合标签不需要包裹内容,自己就执行了开始和结束的操作)

(4)、换行<br/>

      直接添加到后面,表示在此处换行。

(5)、容器标签 <div></div> 和 <span></span>

  • div 即 division 的缩写,分割、区分的意思,可以简单理解为列布局块。
  • span 即 span ,跨度、范围的意思,可以简单理解为行布局块。
  • 这俩本质上是一个容器,类似于 Android 中的ViewGroup
  • 基本格式<div>这是div标签中的内容</div> <span>这是span标签中的内容</span>

(6)特殊符号

       网页特殊符号有很多实用的地方哦,比如版权符号:© 商标注册符号: ® 关闭符号:×,字体一般要设置大点。常见的如下,

HTML 原代码        显示结果描述
&lt;    
 
<   小于号或显示标记
&gt;    
 
>   大于号或显示标记
&amp;  
 
 &    可用于显示其它特殊字符
&quot;    
 
“    引号
&reg;  
 
 ®   已注册
&copy;       © 版权
&trade;     ™  商标
&ensp;          半个空白位
&emsp;         一个空白位
&nbsp;        不断行的空白

补充:

块级标签和内联标签区别

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

块级标签和内联标签

 

块级标签:<p><h1><table><ol><ul><form><div>

 

内联标签:<a><input><img><sub><sup><textarea><span>

 

block(块)元素的特点

① 占一整行,新增元素新起一行;

② 高度,行高以及外边距和内边距都可调整;

③ 宽度缺省是它的容器的100%,除非设定一个宽度,一般都是占满一行。

④ 它可以容纳内联元素和其他块元素

 

inline(内联)元素的特点

① 和其他元素都在一行上;

② 高,行高及外边距和内边距不可改变;

③ 宽度就是它的文字或图片的宽度,不可改变

④ 内联元素只能容纳文本或者其他内联元素

 

对inline元素,需要注意如下

设置宽度width 无效。

设置高度height 无效,可以通过line-height来设置。

设置margin 只有左右margin有效,上下无效。

设置padding 只有左右padding有效,上下则无效。注意元素范围是增大了,但是对元素周围的内容是没影响的。

2、图像标签:

  • img 即 image 的缩写
  • 基本格式<img src="图片URI/URL" />
  • <img />常用属性如下:
属性属性值属性含义
srcURI/URL图像的路径
alt文本图像无法正常显示时的提示文本
title文本鼠标悬停于图像时显示的文本
width像素(XHTML 不支持按页面百分比显示)图像的宽度
height像素(XHTML 不支持按页面百分比显示)图像的高度
border数字设置图像边框的宽度
  • 设置图像的宽高时,如果想等比缩放,则只设置其中一个即可

补:

插入视频:

<video src="gameplay.mp4" controls preload="auto" poster="violet.jpg"></video>

插入音频:

<audio src="FlowerFire.mp3" controls></audio>

3、超链接标签:

(1)、超链接标签<a></a>

  • anchor 的缩写
  • 基本格式 <a href="跳转目标url" target="目标窗口的弹出方式">超链接文本或图像</a>
    • href 即 HyperText Reference , 指定要跳转的URL地址
    • target , 指定目标窗口的打开方式。取值为 self / blank , self 为默认值,blank 表示新窗口打开

注意:

  • 外链需要添加 http:// 或 https:// 前缀
  • 内部链接 直接链接内部页面名称即可,如 <a href="index.html">首页</a>
  • 如果当时没有确定链接目标时,可以为 href 赋值 为 “#” ,即 href="#",表示一个空连接
  • 各种网页元素,如 文本、图像、表格、音频、视频等都可以作为超链接的载体
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>超链接文本示例</title>
</head>
<body>
    <a href="https://www.jianshu.com/u/414acf7abc2b" target="_blank">CnPeng简书</a>
    <br/>
    <a href="https://blog.csdn.net/north1989">CnPeng CSDN</a>
    <br/>
    <a href="aTag.html" target="_blank">内部链接--再打开一个aTag.html</a>
    <br/>
    <a href="#">空的超链接</a>
</body>
</html>

(2)、锚点

  • 通过创建锚点,可以快速定位到目标内容区域
  • 创建锚点分为两步
    • 为目标内容(即锚点)创建id 并赋值
    • 将超链接文本与锚点的id 关联,<a href="#id名称"> 超链接文本 </a>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="#createAnchor">点击跳转到锚点位置</a>
    <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>

    <h3 id="createAnchor">创建锚点分为两步</h3>
    <hr/>
        为目标内容(即锚点)创建id 并赋值
    <br/>
        将超链接文本与锚点的id 关联,&lt;a href="#id名称"&gt; 超链接文本 &lt;/a&gt;
</body>
</html>

4、列表标签:<ul><ol><dl>:

  • <ul>: 无序列表
  • <ol>:有序列表
  •    <li>:列表中的每一项.
  • <dl> 定义列表
  •    <dt> 列表标题
  •    <dd> 列表项
<dl>
<dt>First term</dt>
    <dd>Definition</dd>
<dt>Next term</dt>
    <dd>Definition</dd>
</dl>
<ul type="circle" style="background:pink">
    <li>无序列表1</li>
    <li>无序列表2</li>
    <li>无序列表3</li>
    <li>无序列表4</li>
        <li>无序列表5</li>        
</ul>

<ol type="a" style="background:green">
    <li>有序列表1</li>
    <li>有序列表2</li>
    <li>有序列表3</li>
    <li>有序列表4</li>
    <li>有序列表5</li>
</ol>

 效果图如下: 

 注意:

ul:type 有:circle 空心圆,disc 实心圆,square 实心正方形, none :前面无符号;
ol:type 有:1 :表示有序的1,2,3; a :表示有序的a,b,c;i :罗马数字i,ii,iii;虽然还可以定义为:circle、disc、square、none但现实都为1,2,3等序列;

5 、表格标签: <table>

  • border: 表格边框.
  • cellpadding: 内边距,content和边框的距离;
  • cellspacing: 外边距,content和content之间的距离;
  • width: 像素 百分比.(最好通过css来设置长宽)
  • <tr>: table row 表示一行
  •     <th>: table head cell 表头
  •     <td>: table data cell  表数据
  • rowspan: 单元格竖跨多少行
  • colspan:  单元格横跨多少列(即合并单元格)
  • <th>: table header <tbody>(不常用): 为表格进行分区.
<table border="1" cellpadding="20px" cellspacing="10px" style="background:green">
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <tr >
                <td colspan="2" style="color:red">胖子 男占2列</td>
                <td>男</td>
            </tr>
            <tr>
                <td rowspan="2" style="color:red">高个占2行</td>
                <td>11</td>
                <td>男</td>
            
            </tr>
            <tr >
                <td>qq</td>
                <td>女</td>
            
            </tr>
        </table><br/>

 

  效果图如下:

注意事项:

1、标签、标签的属性、标签的样式、一个元素

 

2、cellspacing和cellpadding

6、表单标签:<form>

<form enctype="multipart/form-data" action="admin/login" method="post">
    <fieldset>
       <legend>用户信息</legend>
           用户名:<input type="text" id='username' name="username" value="defaultname"><br/>
           密码:<input type="password" id='password' name="password"><br/>
            性别:男<input type="radio" name="sex" value="男">
                 女<input type="radio" name="sex" value="女"><br/>
            兴趣:篮球<input type="checkbox" name="hobby" >
                 足球<input type="checkbox" name="hobby" >
                 水球<input type="checkbox" name="hobby" >
                 玻璃球<input type="checkbox" name="hobby" ><br/>
            上传文件:<input type="file" name="file" ><br/>
            所属部门:<select name="department" multiple> 
                    <optgroup  label="研发部">
                        <option value="de_01">研发1部</option>
                        <option value="de_02" selected="selected">研发2部</option>
                        <option value="de_03">研发3部</option>
                    </optgroup>
                    <optgroup label="技术部">
                        <option value="mercedes">运维</option>
                        <option value="audi">开发</option>
                     </optgroup>
                </select><br/>
            个人说明:<textarea cols="100" rows="10">这是个人说明个人说明</textarea><br/>
            <button type="button">提交</button>
         </fieldset>
    </fieldset>
</form>

效果图如下:

注意:

1、input的type可以为text、password、raido、checkbox。

2、id为唯一区分标志符,而name是作为传入后端接受数据的名称,可以重复。比如flask里面 request.form.get('username‘)获取用户名。

3、raido单选框,name必须一样,这样才会互斥。

4、file 提交文件:form表单设置属性enctype="multipart/form-data"

5、对于readonly="readonly"这样的属性,可以简写为readonly。

6、下拉列表中的multiple,可以选中多个。

7、textarea里面可以设置默认高度和宽度,通过cols和rows设置。

8、form表单的url和action,url为数据交互的目标URL,action为get或post,get方式提交数据后url变为http://www.test.com/admin/login?username="admin"&password="123456",用户名和密码都显示传输,不安全;post方式通过后台方式,不会显示在页面上,便于隐藏,安全,即post密文传输更安全。

9、表格是用来放数据的,表单是用来提交到下一页的,例如登录、注册等功能,两者之间可以相互嵌套。

7、框架:<frameset> 

<frameset cols="25%,50%,25%">
<frame src="/example/html/frame_a.html">
<frame src="/example/html/frame_b.html">
<frame src="/example/html/frame_c.html">
</frameset>

 效果图如下:

 

注意:

1、使用frameset标签时,注意要去掉外层的<body></body>标签。

8、布局:<div+css>

<div> 元素常用作布局工具,因为能够轻松地通过 CSS 对其进行定位,css主要实现对页面部件的样式进行布局。而引入样式表的常用方式有三种,即行内式、内嵌式、外链式,具体语法如下:

  • 行内式:<标记名 style= ”属性1:属性值1;属性2:属性值2;属性3:属性值3;">
  • 内嵌式:
<head>

    <style type="text/css">

        选择器 {属性1:属性值1;属性2:属性值2;属性3:属性值3;}

    </style>

</head>
  • 外链式:<head><1ink href="css文件的路径" type="text/css" re1="stylesheet" /></head>

具体示例如下:

<!DOCTYPE html>
<html>

<head>
<style>
body {
    margin:0;
    }
#header {
    background-color:black;
    color:white;
    text-align:center;
    padding:1px;
}
#nav {
    line-height:30px;
    background-color:#eeeeee;
    height:100px;
    width:100px;
    float:left;
    padding:5px;          
}
#section {
    width:350px;
    float:left;
    padding:10px;          
}
#footer {
    background-color:black;
    color:white;
    clear:both;
    text-align:center;
   padding:5px;          
}
</style>
</head>

<body>

<div id="header">
<h4>中国</h4>
</div>

<div id="nav">
北京<br>
上海<br>
深圳<br>
</div>

<div id="section">
<h2>上海</h2>
<p>
上海市总面积6340平方公里,辖16个市辖区,属亚热带湿润季风气候,四季分明,日照充分,雨量充沛。
</p>
<p>
上海,简称“沪”或“申”,是gcd的诞生地,中华人民共和国直辖市,国家中心城市,超大城市,国际经济、金融、贸易、航运、科技创新中心[1]  ,首批沿海开放城市。上海地处长江入海口,是长江经济带的龙头城市,隔东中国海与日本九州岛相望,南濒杭州湾,北、西与江苏、浙江两省相接。

</p>
</div>

<div id="footer">
www.example.com
</div>

</body>
</html>

效果图如下:

注意:

1、 设置body的margin为0,默认值为8px,不然右上角会有一点点空白;

2、选择器id设置css用“#”,class用“.”;

3、一般使用div进行布局,比较好控制;

4、margin、padding、boder、content等概念是在CSS盒子模型时会学到

      Box model

5、float属性

     float属性常用的语法是:float:left|right|none;多用于浮动布局,对应的就是定点布局(position)

      hover选择器

  • 用法1:这个表示的是:当鼠标悬浮在a这个样式上的时候,a的背景颜色设置为黄色
a:hover

    {
        background-color:yellow;
    }
  • 用法2:使用a 控制其他块的样式
使用a控制a的子元素 b:
.a:hover .b 
{
    background-color:blue;
}

9、javascript

作为网页脚本语言,不需要特殊的准备或编译即可运行。浏览器中的 JavaScript 可以完成下面这些事:

  • 在网页中插入新的 HTML,修改现有的网页内容和网页的样式。
  • 响应用户的行为,响应鼠标的点击或移动、键盘的敲击。
  • 向远程服务器发送网络请求,下载或上传文件(所谓 AJAXCOMET 技术)。
  • 获取或修改 cookie,向访问者提出问题、发送消息。
  • 记住客户端的数据(本地存储)。

引入jsp脚本的方式常见有以下几种方式

  1. 内嵌,放置在<script>和</script>标签之间  (少)<script type="text/vbscript">...</script>
  2. 放置在有<script>标签的src属性指定的外部文件中  (多);
  3. 放置自HTML事件处理程序中,该事件处理程序由onclick或onmouseover这样的HTML属性值指定它  (很少);
  4. 放在一个URL里,这个URL使用特殊的协议”javascript“协议  (很少);

示例如下:

####case 1
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			select{
				width:100px;
			}
		</style>
		
		
	</head>
	<body>
		省:
		<select id="sheng" οnchange="selectShi()">
			<option value="">请选择省份</option>
			<option value="0">河北省</option>
			<option value="1">山东省</option>
			<option value="2">河南省</option>
			<option value="3">山西省</option>	
		</select>
		市:
		<select id="shi">
			<option value="">请选择市</option>
		</select>
	</body>
	<script type="text/javascript">
		var arrs = [];
		arrs[0] = ["秦皇岛","保定","石家庄","唐山"];
		arrs[1] = ["济南","临沂","青岛","威海"];
		arrs[2] = ["洛阳","郑州","开封","周口"];
		arrs[3] = ["太原","大同","运城","忻州"];
		
		function selectShi(){
			var sheng = document.getElementById('sheng').value;
			var shi = document.getElementById("shi");
			
			var shis = arrs[sheng];
			//清空原来的信息
			//获取市的option属性
			var shi_opts = shi.getElementsByTagName("option");
			//遍历删除市中的option
			
			
			for(var i= shi_opts.length - 1; i >= 1; i--){
				var shi_opt = shi_opts[i];
				shi.removeChild(shi_opt);
			}
			
			
			for(var i = 0; i < shis.length; i++){
				var textNode = document.createTextNode(shis[i]);
				var opt = document.createElement("option");
				opt.appendChild(textNode);
				shi.appendChild(opt);
			}
		}
	</script>
</html>



####case 2
<!DOCTYPE html>
<html>
	<head>
		<title>web4</title>
		
	</head>
	<body>
		<fieldset>
			<legend>跳转</legend>
			<span>请选择要跳转的网址:</span><br><br>
		<from onchange="peal()">
			<table>
				<tr>
					<td>
					<select id="website">
						<option value="" selected></option>
						<option name="website1" value="www.baidu.com">百度</option>
						<option name="website2" value="www.163.com">网易</option>
                        <option name="website3" value="www.qq.com">腾讯</option>
                        <option name="taobao" value="www.taobao.com">淘宝</option>
					</select>
					</td>
					<td>
						<input type="text" name="websiteText" id="websiteText">
					</td>
					<td>
						<button value="跳转" onclick="jump()">跳转</button>
					</td>
				</tr>
			</table>
		</from>

		</fieldset>
	</body>
	<script type="text/javascript">
		var website;
			function peal(){
				website = document.getElementById("website").value;
				document.getElementById("websiteText").value= website;
			}
			function jump(){
				if(website==null){
					alert("请选择要跳转的网址");
				}else{
					window.open("http://"+website);
				}
				
			}
			
		</script>  
</html>

四、标签的属性

  • 基本格式:<标签名 属性1=”属性值1“ 属性2=”属性值2“></标签名>
  • 标签可以拥有多个属性
  • 属性必须写在开始标签中,位于标签名后面
  • 属性之间不区分顺序
  • 标签名与属性、属性与属性之间使用空格隔开
  • 任何属性都有默认值,省略该属性表示使用默认值

五、前端开发框架

      html+css+js是前端的基础结构,而现实开发中大家往往借助前端框架来实现开发,常见的三大底层框架有React、Vue和Angular,除此还有Bootstrap、jQuery UI、BootMetro、AUI等,Web前端框架就是为了节约开发成本和时间,一般开发一个项目都会用到前端框架(除非自己有前端开发团队),详情可参考2019年几大主流的前端框架(UI/JS)框架

 

参考链接:

https://www.cnblogs.com/skyflask/p/8325035.html

https://www.jianshu.com/p/da18c2fd033a

https://blog.csdn.net/jianghao233/article/details/81319324

https://blog.csdn.net/enweitech/article/details/89316979(2019年几大主流的前端框架(UI/JS)框架)

https://blog.csdn.net/fallwind_of_july/article/details/93187621(HTML入门学习-含代码和配套资料)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值