javaWeb-----HTML和CSS

1.web概念概述

1.1 JavaWeb介绍:

学习web前端开发基础技术需要掌握:HTMLCSSJavaScript语⾔。

HTML是⽹⻚内容的载体。内容就是⽹⻚制作者放在⻚⾯上想要让⽤户浏览的信息,可以包含⽂字、图⽚、视频等

CSS样式是表现。就像⽹⻚的外⾐。⽐如,标题字体、颜⾊变化,或为标题加⼊背景图⽚、边框等`。所有这些⽤来改变内容外观的东⻄称之为表现。

JavaScript是⽤来实现⽹⻚上的特效效果。如:⿏标滑过弹出下拉菜单。或⿏标滑过表格的背景颜⾊改变。还有焦点新闻(新闻图⽚)的轮换。可以这么理解,有动画的,有交互的⼀般都是⽤JavaScript来实现的

总结

  • HTML:用于搭建基础网页,展示页面的内容
  • CSS:用于美化页面,布局页面
  • JavaScript:控制页面的元素,让页面有一些动态的效果

1.2软件架构:

1.2.1 C/S: Client/Server 客户端/服务器端

在用户本地有一个客户端程序,在远程有一个服务器端程序
* 如:QQ,迅雷…

优点
1. 用户体验好

缺点
1. 开发、安装,部署,维护 麻烦
*

1.2.2. B/S: Browser/Server 浏览器/服务器端

只需要一个浏览器,用户通过不同的网址(URL),客户访问不同的服务器端程序
优点
1. 开发、安装,部署,维护 简单

缺点
1. 如果应用过大,用户的体验可能会受到影响
2. 对硬件要求过高
*

1.2.3 B/S架构详解

资源分类:静态资源,动态资源

1. 静态资源:

使用静态网页开发技术发布的资源。
特点

  • 所有用户访问,得到的结果是一样的。

如:文本,图片,音频、视频, HTML,CSS,JavaScript

  • 如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器。浏览器中内置了静态资源的解析引擎,可以展示静态资源

2. 动态资源(重点):

使用动态网页及时发布的资源。
特点

  • 所有用户访问,得到的结果可能不一样。

如:jsp/servlet,php,asp…
* 如果用户请求的是动态资源,那么服务器会执行动态资源,转换为静态资源,再发送给浏览器

结论:我们要学习动态资源,必须先学习静态资源!

在这里插入图片描述

2. HTML

2.1. HTML简介

HTML是⽤于创建⽹⻚的语⾔。我们通过使⽤HTML标记标签创建html⽂档来创建⽹⻚。HTML代表超⽂本标记语⾔。HTML是⼀种标记语⾔,它具有标记标签的集合

2.2概念:

HTML: Hyper Text Markup Language 超文本标记语言,是最基础的网页开发语言。

超文本:

  • 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本.

标记语言

  • 由标签构成的语言。<标签名称> 如 html,xml
  • 标记语言不是编程语言
2.3. 快速入门:
语法:
  1. html文档后缀名 .html 或者 .htm

  2. 标签分为
    1. 围堵标签:有开始标签和结束标签,
    标签中间的文字就是标签所包含的内容。如
    2. 自闭和标签:开始标签和结束标签在一起。如

  3. 标签可以嵌套:
    需要正确嵌套,不能你中有我,我中有你
    错误:<a> <b> </a></b>
    正确: <a><b> </b></a>

  4. 在开始标签中可以定义属性。属性是由键值对构成,值需要用引号(单双都可)引起来

  5. html的标签不区分大小写,但是建议使用小写。< h1>和< H1 >是⼀样的。浏览器会识别 < CODE>和< code>,甚⾄ < CoDe >作为代码元素的起始标签

3. 标签学习:

1. 文件标签:构成html最基本的标签

html:根标签

html文档的根标签,顶层标签。所有的变迁都放在该标签里面的

head:头标签

头标签。用于指定html文档的一些属性。引入外部的资源。
标签⽤于定义⽂档的头部,它是所有头部元素的容器。头部元素有<title>、<script>、<style>、<link>、 <meta>等标签,

title:标题标签

表示该页面的主题。

body:体标签

<body>和</body>标签之间的内容是⽹⻚的主要内容,如<h1>、<p>、<a>、<img>等⽹⻚内容标签,在这⾥的标签中的内容会在浏览器中显示出来

< !DOCTYPE >:声明版本

作用:<!DOCTYPE> 声明帮助浏览器正确地显示⽹⻚。

  • Web 世界中存在许多不同的⽂档。只有了解⽂档的类型,浏览器才能正确地显示⽂档。HTML 也有多个不同的版本,只有完全明⽩⻚⾯中使⽤的确切 HTML 版本,浏览器才能完全正确地显示出 HTML ⻚⾯。

  • 是 HTML 标签。它为浏览器提供⼀项信息(声明),即 HTML 是⽤什么版本编写的

HTML5:

<!DOCTYPE html>

HTML 4.01

<h!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

XHTML 1.0:

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

HTML 5的实例

< meta charset=“utf-8”>

作用:HTML乱码解决
当⽹⻚出现乱码时,在<head></head>标签之间添加: <meta charset="utf-8">设置字符集在这里插入图片描述
注意:如果HTML文件里面没有指定字符集可能会乱码,如果是中文科目采用GBK来解码,所以就会乱码。
*

2. 文本标签:和文本有关的标签

注意:换行的制表符都会被解析成空格

  1. 文件标签:构成html最基本的标签
    * html:html文档的根标签
    * head:头标签。用于指定html文档的一些属性。引入外部的资源
    * title:标题标签。
    * body:体标签
    * :html5中定义该文档是html文档
    1. 文本标签:和文本有关的标签
      • 注释:
      • < h1> to < h6>:标题标签
        • h1~h6:字体大小逐渐递减
      • < p>:段落标签
      • < br>:换行标签
      • < hr>:展示一条水平线
        • 属性:
          • color:颜色
          • width:宽度
          • size:高度
          • align:对其方式
            • center:居中
            • left:左对齐
            • right:右对齐
      • < b>:字体加粗
      • < i>:字体斜体
      • < font>:字体标签
      • < center>:文本居中
        • 属性:
          • color:颜色
          • size:大小
          • face:字体
2.1 注释**:

< !-- 注释内容 – >

2.2 .< h1> 标题内容 < /h6 >:标题标签 **

标题(Heading)是通过<h1> - <h6>等标签进⾏定义的。
<h1>定义最⼤的标题。<h6>定义最⼩的标题。

<html>
<body>
     <!--标题标签:h1~h6-->
     <h1>Html</h1>
     <h2>Html</h2>
     <h3>Html</h3>
     <h4>Html</h4>
     <h5>Html</h5>
     <h5>Html</h5>
</body>
</html>
2.3 < p>:段落标签
  • 浏览器会⾃动地在标题的前后添加空⾏。
  • 默认情况下,HTML 会⾃动地在块级元素前后添加⼀个额外的空⾏,⽐如段落、标题元素前后。
  • 请确保将 HTML heading 标签只⽤于标题。不要仅仅是为了产⽣粗体或⼤号的⽂本⽽使⽤标题。 应该将h1⽤作主标题(最重要的),其后是 h2(次重要的),再其次是 h3,以此类推。
<html>
	<body>
		<!--段落标签<p></p>-->
		<p>段落1</p>
		<p>段落2</p>	
	</body>
</html>

在这里插入图片描述

2.4 < br>:换行标签

如果希望在不产⽣⼀个新段落的情况下进⾏换⾏(新⾏),请使⽤ < br />标签:
< br/>标签作⽤相当于word⽂档中的回⻋

<html>
	<body>
how are you <br /> i'm fine
	</body>
</html>

在这里插入图片描述
< br>还是< br />?
< br> 与 < br /> 很相似。
在 XHTML、XML 以及未来的 HTML 版本中,不允许使⽤没有结束标签(闭合标签)的 HTML 元素。即使
在所有浏览器中的显示都没有问题,使⽤
也是更⻓远的保障

2.5.< hr>:展示一条水平线

< hr/>标签和< br/>标签⼀样也是⼀个空标签,所以只有⼀个开始标签,没有结束标签。

属性:

  • color:颜色
  • width:宽度
  • size:高度
  • align:对其方式
    * center:居中
    * left:左对齐
    * right:右对齐
<html>
	<body>
how are you <hr /> i'm fine
	</body>
</html>

在这里插入图片描述

2.6强调标签

如果想在⼀段话中特别强调某⼏个⽂字,这时候就可以⽤到< em>或< strong>标签。

但两者在强调的语⽓上有区别:

  • < em> 表示强调,< strong> 表示更强烈的强调。
  • 并且在浏览器中< em>默认⽤斜体表示,< strong> ⽤粗体表示。推荐使⽤< strong>表示强调
<html>
	<body>
		<em>em 标签</em><br />
		<strong>strong 标签</strong>
	</body>
</html>

在这里插入图片描述

2.7 字体标签
字体属性:
  • < b>:字体加粗
  • < i>:字体斜体
  • < font>:字体标签
  • < center>:位置标签
		<!--
        	字font体标签:
        	color:字体的颜色
        	width:字体的宽度
        	size:字的大小
        	face:字体
        -->
        <font color=pink width=900 size=10 face=微软雅黑 >
			BOBO
		</font>

在这里插入图片描述

  • < b>字体加粗
		<font color=pink width=900 size=10 >
			<b>BOBO</b>
		</font>

在这里插入图片描述

  • < i>:字体斜体
		<font color=pink width=900 size=10 >
			<i>BOBO</i>
		</font>

在这里插入图片描述

  • < center>< /center>
			 <font color=pink width=900 size=10 face=微软雅黑 >BOBO</font><br/>
  • 属性定义:
    * color:
    1. 英文单词:red,green,blue
    2. rgb(值1,值2,值3):值的范围:0~255 如 rgb(0,0,255)
    3. #值1值2值3:值的范围:00~FF之间。如: #FF00FF
        <font color=pink width=900 size=10 face=微软雅黑 >BOBO</font><br/>
        <font color="252326" width=900 size=10 face=微软雅黑 >BOBO</font><br/>
        <font color=FF00AB width=900 size=10 face=微软雅黑 >BOBO</font><br/>
		<br/>
特殊标签

在这里插入图片描述

  • width:
    1. 数值:width=‘20’ ,数值的单位,默认是 px(像素)
    2. 数值%:占比相对于父元素的比例
		how are you <hr color="pink" width=50 size="10"/> i'm fine
		how are you <hr color="pink" width="50%" size="10"/> i'm fine
		

3. 图片标签:

  • img:展示图片
    属性:
    * src:指定图片的位置
  • 相对路径
    * 以.开头的路径
    * ./:代表当前目录(一个点) ./image/1.jpg
    * …/:代表上一级目录(两个点)
	<!--img:展示一张图片
		src:图片的位置
		align:对其方式
		alt: 当图片加载错了,显示文字信息
		
		-->
		<img src="img/HBuilder.png"  alt="HBUilder"/>
	<!--
		相对路径
		以.开头的路径
		   ./  :代表当前路径    例子:./img1.jsp
		   。../ : 代表上一级路径
	-->
     	<img src="./img/HBuilder.png"/>
    	<img src="../img/HBuilder.png"/>
	```
#### 4. 列表标签:
####  有序列表:
* ol:  有序列表始于 < ol> 标签
*  li:  每个列表项始于 < li> 标签
<!--
有序列表
ol:列表的开始标签
li:列表项的 开始标签
type:列表项的开始属性  
    1:数字
    A:大写字母
    a:小写字母
    i:小写罗马数字
    I:大写罗马数字
start:从列表项的第几项开始
-->
<ol type="I">
	<li>看书</li>
	<li>打篮球</li>
	<li>跑步</li>
	<li>听英语</li>
</ol>
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190619221106768.png)

*  无序列表:
			* ul: ⽆序列表始于< ul> 标签。
			* li: 每个列表项始于 < li>。
```html
<!--
		无序列表
    	ul:无序列表的开始
    	li:无序列表项
    	    cricle:圆点显示
    	    square:正方形显示
    	    disc:圆圈显示
    -->
	
	<ul type="square">
		<li>看书</li>
		<li>打篮球</li>
		<li>跑步</li>
		<li>听英语</li>
	</ul>
	

在这里插入图片描述

5. 链接标签:

< a>< /a>:定义一个超链接
属性:

  • href:指定访问资源的URL(统一资源定位符)
  • target:指定打开资源的方式
    _self:默认值,在当前页面打开
    _blank:在空白页面打开
		<!--
        	超链接:<a></a>
        	属性:
        	   href:指定访问资源的 URL(统一资源定位符)
        	           可以访问网络上的网站
        	           可以访问本地网页
        	      
        	   target:
        	        _self:本页面显示(默认)
        	        _blank:新页面显示
        -->
        <!--显示超链接-->
        <a href="www.baidu.com">百度</a>
        <!--显示本地网页-->
        <a href="index.html">index页面</a> 
        
        	
        <!--本页显示-->
        <a href="www.baidu.com" target="_self">本页显示</a> 
        
        <!--新页面显示-->
        <a href="www.baidu/com" target="_blank">新页面显示</a> 
        
        <!--超链接和图片一起显示-->
        <a href="index.html"><img src="img/HBuilder.png"></a> 
        
6. div和span:
  • div:每一个div占满一整行。块级标签
  • span:文本信息在一行展示,行内标签 内联标签
		<!--
        	span:文本信息在一行显示,行内标签,内敛标签
        -->
		<span>哈哈哈</span>
		<!--
		    div:每个div占一行。会计标签
		-->
		<div>hehehe</div>

7. 语义化标签:html5中为了提高程序的可读性,提供了一些标签。

  1. < header> < /header>:页眉
  2. < footer>< footer>:页脚

8. 表格标签:

  • table:定义表格
    * width:宽度
    * border:边框
    * cellpadding:定义内容和单元格的距离
    * cellspacing:定义单元格之间的距离。如果指定为0,则单元格的线会合为一条、
    * bgcolor:背景色
    * align:对齐方式
  • tr:定义行
    * bgcolor:背景色
    * align:对齐方式
  • td:定义单元格
    * colspan:合并列
    * rowspan:合并行
  • th:定义表头单元格,会变粗体居中
    * < caption>:表格标题
    * < thead>:表示表格的头部分
    * < tbody>:表示表格的体部分
    * < tfoot>:表示表格的脚部分,会在表格最后显示
		<table border="2" width="50%" cellpadding="0" cellspacing="0" bgcolor="aquamarine" align="center">
			<thead>
			<caption>班级表</caption>
			<tr>
				<th rowspan="2">编号</th>
				<th>班级</th>
				<th>学号</th>
			</tr>
			</thead>
			<tbody>
			<tr>
				<td>1</td>
				<td>计算机</td>
				<td>001</td>
			</tr>
			<tr>
				<td colspan="2">1</td>
				<td>计算机</td>
				<td>002</td>
			</tr>
			</tbody>
			<tfoot>
				<tr>
				<td>1</td>
				<td>计算机</td>
				<td>002</td>
			</tr>
			</tfoot>
		</table>

HTML标签:表单标签

表单:

概念:用于采集用户输入的数据的。用于和服务器进行交互。

表单标签 < from>< /from>

< form>< /from>:用于定义表单的。可以定义一个范围,范围代表采集用户数据的范围。只有在from标签内的数据才会被提交

  • 属性:
    * action:指定提交数据的URL
    * method:指定提交方式
    method分类:一共7种,2种比较常用(post,get)
Post 和get的区别

1. get

  1. 请求参数会在地址栏中显示。会封装到请求行中,出现在地址栏里面。
  2. 请求参数大小是有限制的,URL最多为2KB。
  3. 不太安全,因为所发送的数据是URL的一部分。
  4. 可见性:数据在URL里面是对所有用户都是可见的
  5. 缓存:可以被缓存,收藏为书签
  6. 数据类型:只能为ASCII字符

2.post:

  1. 请求参数不会再地址栏中显示。会封装在请求体中,保存到body里面

  2. 请求参数的大小没有限制。

  3. 较为安全,因为参数不会保存到浏览器历史或者web日志中。

  4. 可见性:相比get较为隐蔽,因为在按F12j进入开发者页面里面可以看见

  5. 缓存:不能被缓存

  6. 数据类型:没有限制,数据也可以是二进制数据

    表单项中的数据要想被提交:必须指定其name属性

get提交
在这里插入图片描述
post提交
在这里插入图片描述

表单项标签:

< input / >:可以通过type属性值,改变元素展示的样式
type属性:
  • text:文本输入框,默认值。 它以显示的方式出现。
    • placeholder:指定输入框的提示信息,当输入框的内容发生变化,会自动清空提示信息

在这里插入图片描述

  • password:密码输入框,会以圆点方式出现
    在这里插入图片描述
  • radio:单选框
    注意:
    1. 要想让多个单选框实现单选的效果,则多个单选框的name属性值必须一样。
    2. 一般会给每一个单选框提供value属性,指定其被选中后提交的值。
    3. checked属性,可以指定默认值(默认被选中)
  • checkbox:复选框
    • 注意:
      1. 一般会给每一个单选框提供value属性,指定其被选中后提交的值
      2.checked属性,可以指定默认值(默认被选中)
      在这里插入图片描述
      在这里插入图片描述
  • file:文件选择框:可以通过该属性提交文件
    *在这里插入图片描述
  • hidden:隐藏域,用于提交一些信息。隐藏域不会显示在页面上但是,他的value会被提交
  • email:它会做正则的校验,必须要匹配到格式正确的邮箱,否则不予通过
    在这里插入图片描述
  • 按钮:button
    • submit:提交按钮。可以提交表单
    • button:普通按钮
    • image:图片提交按钮
      * src属性指定图片的路径
  • date 和 datetime-local
    • data:提交格式是 年-月-日
    • datatime-local:提交格式是 年-月-日 小时:分钟
label:指定输入项的文字描述信息
  • 注意:
    • label的for属性一般会和 input 的 id属性值 对应。如果对应了,则点击label区域,会让input输入框获取焦点。
      在这里插入图片描述
select: 下拉列表
  • 子元素:option,指定列表项
    • 默认项:selected:默认选择它
textarea:文本域
  • cols:指定列数,每一行有多少个字符
  • rows:默认多少行。行不够了会自动扩容
	<body>
		<form action="#" method="get">
			<label>用户名:<input name="username"  placeholder="输入用户名"/><br/></label>
			密码:<input type="password"  name="=password" /> <br/>
			性别:<input type="radio" name="sex" value ="boy"/> 男孩
			      <input type="radio" name="sex" value= "gril"/> 女孩<br/>
			爱好:<input type="checkbox" name="hobby" value="游泳" />游泳
			      <input type="checkbox" name="hobby" value="看书" />看书
			      <input type="checkbox" name="hobby" value="跑步" />跑步
		       隐藏域:<input type="hidden" name="id" value="ABCDS" >      
		       生日:<input type="date" name="brithday"/><br/>
		       生日:<input type="datetime-local" name="brithday"/><br />
		       邮箱:<input type="email" nmae="email"/><br />
		      上传文件<input type="file" name="file" /><br />
		       取色器:<input type="color" name="color" /><br/>
	    	  省份:<select>
		         	<option>请选择</option>
		        	<option value="1">北京</option>
	          	  	<option value="2">上海</option>
	        	  	<option value="3" selected>深圳</option>
	        	  </select><br/>
		  
		      自我介绍<textarea cols="10" rows="5" name="discrition"></textarea><br>
		        <input type="submit" value="登录" /><br/> 
		        <input type="button" value ="一个button" />
		        <!--src:里面放的图片的路径-->
		        <input type="image" src="img/HBuilder.png" />	   
		</form>
	</body>

3. CSS:页面美化和布局控制

3.1 概念: Cascading Style Sheets 层叠样式表

  • 层叠:多个样式可以作用在同一个html的元素上,同时生效

3.2 好处:

  • 1.功能强大
  • 2.将内容展示和样式控制分离
    • 降低耦合度。解耦
    • 让分工协作更容易.分别写HTML和css,然后再和一起
    • 提高开发效率

3. 3 CSS的使用:CSS与HTML结合方式

3.3.1 内联样式(不推荐)

  • 在标签内使用style属性指定css代码
    *如:< div style=“color:red;”>hello jojo< /div>

3.3.2. 内部样式(推荐)

  • 在head标签内,定义style标签,style标签的标签体内容就是css代码
  • 如:
<html>
	<head>
		<!--Css代码-->
		<style>
			div{
				color:pink;
			}
		</style>
	</head>
	<body>
		<div>hello CSS</div>
	</body>
</html>

3. 外部样式(推荐)

  • 1 定义css资源文件。

  • 2.在head标签内,定义link标签,引入外部的资源文件
    如:

      * a.css文件:
      		div{
      		    color:green;
      		}
      	< link rel="stylesheet" href="css/a.css">
      	< div>hello css< /div>
      	< div>hello css< /div>
    
    • 注意:
      • 1,2,3种方式 css作用范围越来越大
      • 1方式不常用,后期常用2,3
      • 3种格式可以写为:

4. css语法:

4.1 格式:
`**选择器 {
		属性名1:属性值1;
		属性名2:属性值2;
		...
	}**
  • 选择器:筛选具有相似特征的元素
  • 注意:
    * 每一对属性需要使用;隔开,最后一对属性可以不加

4.2选择器:筛选具有相似特征的元素对其样式进行改变

4.2.1分类:
1. 基础选择器**
  • 1. id选择器:选择具体的id属性值的元素.建议在一个html页面中id值唯一
    * 语法:#id属性值{ 属性的样式 }
    * 注意:id选择器优先级最高

  • 2. 元素选择器:选择具有相同标签名称的元素
    * 语法: 标签名称{ 属性样式 }
    * 注意:id选择器优先级高于元素选择器

  • 3. 类选择器:选择具有相同的class属性值的元素。
    * 语法:.class属性值{}
    * 注意:类选择器选择器优先级高于元素选择器

<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		
		<style >
		/*-id选择器-*/
			#div1{
				color:greenyellow
			}
		/*元素选择器	*/
			p{
				color: royalblue;
			}
		/*类选择器*/	
			.class{
				color: blue;
			}
			
		</style>
	</head>
	<body>
		
		<div id="div1">Html</div>
		<div>CSS</div>
		
		<p>hello HTML</p>
		<p class="class">hello HTML</p>
	</body>
</html>
4. 扩展选择器:**
  • 1. 选择所有元素
    * 语法: *{}

  • 2. 并集选择器
    * 选择器1,选择器2{}

  • 3. 子选择器:筛选选择器1元素下的选择器2元素
    * 语法: 选择器1 选择器2{}

  • 4. 父选择器:筛选选择器2的父元素选择器1
    * 语法: 选择器1 > 选择器2{}

  • 5. 属性选择器:选择元素名称,属性名=属性值的元素,一般用于input标签
    * 语法: 元素名称[属性名=“属性值”]{}
    例子:input [ type =‘text’ ] { }

  • 6. 伪类选择器:选择一些元素具有的状态
    * 语法: 元素:状态{}
    * 如:
    * 状态:
    * link:初始化的状态
    * visited:被访问过的状态
    * active:正在访问状态
    * hover:鼠标悬浮状态

<html>
	<head>
		<style>
			a:link{
				color: black;
			}
			a:hover{
				color: bisque;
			}
			a:active{
				color: green;
			}
			a:visited{
				color: red;
			}
		</style>
	</head>
	<body>
		<a href="#" >Test</a>
	</body>
</html>

4.3. 属性

1. 字体、文本
  • font-size:字体大小
  • color:文本颜色
  • text-align:对其方式
  • line-height:行高
2. 背景
  • background:
3. 边框
  • border:设置边框,复合属性
4. 尺寸
  • width:宽度
  • height:高度
5. 盒子模型:控制布局
  • margin:外边距
  • padding:内边距
    • 默认情况下内边距会影响整个盒子的大小
    • box-sizing: border-box; 设置盒子的属性,让width和height就是最终盒子的大小
    • float:浮动
      * left
      * right

在这里插入图片描述


版权声明:本文为qq_40955824原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。