标签:之一 内容 cte art 编辑 method 编码格式 存在 侧边栏
W3C : 万维网联盟!(World Wide Web Consortium ) | |
创建于1994年,是web技术领域最权威最具有影响力的标准机构! | |
W3C规定了web技术领域相关技术的标准! | |
官网地址: | |
www.w3c.org | |
www.chinaw3c.org | |
XML :负责数据的存储 | |
Html :结构化标准,负责数据的显示 | |
CSS :表现标准 | |
JavaScript:行为标准 | |
Html概念: | |
01.超文本标记语言(Hyper Text Markup Language) | |
超文本:包含除了文本之外的视频,音频,图片等。 | |
标记:html也是有多个节点组成的! | |
int a =5; 通过a找到5 | |
<student id="1"><student> | |
<student id="2"><student> | |
id就是我们的标记 | |
02.文件名以html或者htm结尾的文件我们称之为html! | |
发展史: | |
93年诞生HTML! | |
00年改名XHTML! | |
13年改名HTML5! | |
HTML5的优势: | |
01.世界知名浏览器厂商的支持! | |
02.市场的需求 | |
03.跨平台 | |
HTML网页的基本结构 | |
<!DOCTYPE html> 只是告诉浏览器使用了html的规范 | |
<html> 根节点 | |
<head></head> 头部信息 | |
<body></body> 主体部分 | |
</html> | |
我们怎么使用html呢? | |
01.记事本(文本编辑器) | |
02.DreamWeaver | |
03.WebStorm |
<!DOCTYPE html><!-- 声明当前的文件是H5的页面--> | |
<html> <!--根节点--> | |
<head lang="en"> <!--头部信息 lang="en"使用的语言是英语--> | |
<title>这是我的第一个H5页面</title><!--网页的标题--> | |
<meta charset="utf-8"> <!--设置页面的编码格式--> | |
<meta http-equiv="keywords" content="第一次,h5"> | |
<!-- | |
meta:设置网页相关的元信息(meta-information)! | |
比如:设置编码格式,搜索关键字,描述信息,页面跳转等。。。。 | |
meta常用的属性和属性值: | |
01.charset:编码格式 | |
02.http-equiv:把content属性关联到我们的http头部! | |
常用的属性值: | |
001.keywords : 搜索关键字 | |
002.description:描述当前页面的信息 | |
003.refresh :跳转页面 | |
<meta http-equiv="refresh" content="3;url=http://www.github.com/xiaodoufu/"> | |
03.content:定义和http-equiv或者name属性的对应值 | |
--> | |
<style type="text/css"></style><!--设置当前页面的样式--> | |
<script type="text/javascript"></script> <!--设置当前页面的行为--> | |
</head> | |
<body> <!--网页中所有的数据 必须书写的位置--> | |
这是我的第一个页面! | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>标题标签</title> | |
<!-- | |
标题标签: h1-h6 其他的都没有效果! | |
会自动换行!块元素(自己独占一行的元素)! | |
--> | |
</head> | |
<body> | |
<h1>1级标题</h1> <h2>2级标题</h2> <h3>3级标题</h3> | |
<h4>4级标题</h4> | |
<h5>5级标题</h5> | |
<h6>6级标题</h6> | |
<h7>7级标题</h7> | |
8级标题 | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>段落标签</title> | |
<!-- | |
段落之前有空行!p标签也是块元素! | |
自闭合标签 | |
<br/> 换行 | |
<hr/> 水平线 | |
<h1> <p> </h1> </p> 错误的! 标签的不正确嵌套! | |
<p> <h1> </h1></p> 正确! | |
--> | |
</head> | |
<body> | |
<p> | |
北京欢迎你,有梦想谁都了不起!<br/> | |
有勇气就会有奇迹。 | |
</p> | |
<hr/> | |
<p> | |
北京欢迎你,为你开天辟地<br/> | |
…… | |
</p> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>特殊字符的使用</title> | |
<!-- | |
虽然有些特殊字符我们可以在页面上显示!但是不允许直接书写! | |
需要特殊的符号来代替我们的特殊字符! | |
特殊符号对照表:http://www.jb51.net/onlineread/htmlchar.htm | |
--> | |
</head> | |
<body> | |
大于号(>):> <br/> | |
小于号(<):<<br/> | |
引号(""):"<br/> | |
单引号(‘):'<br/> | |
版权符号(?):©<br/> | |
<!-- | |
想让一行中的某些字体 凸显出来,我们通常使用 | |
em 斜体 不建议使用i | |
strong 加粗 不建议使用b | |
尽量使用的标签 语义化(让计算机便于解析,让码农易于阅读)! | |
--> | |
大家辛苦了<strong><em>吗?</em></strong> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>图片标签</title> | |
<!-- | |
常见的图片格式: | |
bmp,gif,png,jpg! 压缩(率)比! | |
img标签 也是一个 行内元素(内联元素)! | |
src :指的是 图片的位置! 绝对不能写成绝对路径! | |
项目中需要的所有文件,都在项目中的images文件夹中保存! | |
src就写成项目的相对路径! | |
title:鼠标放在图片上的悬停文字,如果没有alt属性,图片不显示时,显示title | |
alt:不显示图片的时候 替换文字 | |
height:高度 | |
width: 宽度 | |
--> | |
</head> | |
<body> | |
<img src="../images/a.jpg" height="200px" width="200px" | |
title="这是一幅画" alt="多么美丽的画面"> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>超链接</title> | |
<!-- | |
01.普通的超链接 | |
02.锚链接 | |
03.功能性链接 | |
src:我们一般指的是 文件的地址!路径! 从哪里来 | |
href:是指向,引用! 到哪里去 | |
target:目标页面的设置!指的是 我们点击超链接之后的页面显示窗口的位置! 默认是当前窗口! _self | |
_blank:在新创建的窗口中显示! | |
--> | |
</head> | |
<body> | |
<a href="http://www.baidu.com" target="_blank">百度</a> <br/> | |
<a href="http://www.taobao.com" target="_self">淘宝</a> <br/> | |
<a href="http://www.jd.com">京东</a> <br/> | |
<!-- | |
把图片嵌套在超链接中! | |
--> | |
<a href="http://www.github.com/xiaodoufu" target="_blank"> | |
<img src="../images/a.jpg" width="200px" height="200px" alt="这是一个美丽的画面"> | |
</a> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>锚链接本页面跳转</title> | |
<!-- | |
锚链接: | |
01.从本页面的A位置 跳转本页面的B位置 使用 #+标记名称 | |
02.从本页面的A位置 跳转其他页面的B位置 使用 页面名+#+标记名称 | |
name:标记的名称 | |
--> | |
</head> | |
<body> | |
<div><a href="#flag" >跳转至第8个画面</a></div> | |
<div><a href="08锚链接需要的页面.html#flag" >跳转至需要页面的第8个画面</a></div> | |
<img src="../images/a.jpg" title="这是第1个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第2个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第3个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第4个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第5个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第6个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第7个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第8个画面" alt="以前有个画面"> | |
<!-- name="flag" flag标记名称 --> | |
<a name="flag" href="#">这是第8个画面的标记</a> <!-- #返回本页面的最初位置--> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>锚链接需要的页面</title> | |
</head> | |
<body> | |
<img src="../images/a.jpg" title="这是第1个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第2个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第3个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第4个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第5个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第6个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第7个画面" alt="以前有个画面"> | |
<img src="../images/a.jpg" title="这是第8个画面" alt="以前有个画面"> | |
<a name="flag">这是需要界面的 第8个画面标记</a> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>块元素和内联元素</title> | |
<!-- | |
块元素:自身独占一行! | |
可以设置盒子大小! | |
h1 - h6 p div | |
内联元素:元素在一行显示! | |
不可以设置盒大小! | |
a img span子 | |
块元素和内联元素可以互相转换! 通过display属性设置! | |
--> | |
</head> | |
<body> | |
<div style="width: 50px;height: 50px;border: 1px solid red;display: inline"> | |
我是一个小盒子 | |
</div> | |
<a href="#" style="width: 50px;height: 50px;border: 1px solid red;display: block">这是内联元素</a> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>无序列表</title> | |
<!-- | |
什么是列表 | |
列表就是信息资源的一种展示形式。它可以使信息结构化和条理化,并以列表的样式显示出来, | |
以便浏览者能更快捷地获得相应的信息! | |
01.前面有默认的实心圆 | |
02.每个li独占一行 | |
03.适用于我们的新闻列表,导航栏 | |
--> | |
</head> | |
<body> | |
<ul> | |
<li>好好学习</li> | |
<li>好好学习</li> | |
<li>好好学习</li> | |
</ul> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>有序列表</title> | |
<!-- | |
01.有顺序,前面默认是阿拉伯数字 | |
02.适用与试卷 和问卷调查! | |
--> | |
</head> | |
<body> | |
<ol> | |
<li>好好学习</li> | |
<li>好好学习</li> | |
<li>好好学习</li> | |
</ol> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>自定义列表</title> | |
<!-- | |
01.每个dt dd都独占一行 | |
02.默认前面没有任何标记 | |
03.适用于一个标题下,有多个列表项的场景 | |
--> | |
</head> | |
<body> | |
<dl> | |
<dt>C盘</dt> | |
<dd>文件1</dd> | |
<dd>文件2</dd> | |
<dt>D盘</dt> | |
<dd>文件1</dd> | |
<dd>文件2</dd> | |
</dl> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>表格</title> | |
<!-- | |
01.简单易用,便于阅读 | |
02.结构简单 | |
table中的属性: | |
01.border: 边框的像素 | |
02.cellpadding 设置内容和单元格之间的距离 | |
03.cellspacing 设置单元格和单元格之间的距离 | |
04.bgcolor 整个表格的背景色 #ffc0cb :代表的是16进制的颜色码 | |
05.width 表格在浏览器中的宽度比 | |
td节点中的 | |
align="left" 默认 | |
align="right" | |
align="center" | |
--> | |
</head> | |
<body> | |
<table border="1px" cellpadding="5px" cellspacing="5px" | |
bgcolor="pink" width="50%"> | |
<tr> | |
<td>第1行的第1列</td> | |
<td>第1行的第2列</td> | |
<td>第1行的第3列</td> | |
</tr> | |
<tr> | |
<td>第2行的第1列</td> | |
<td>第2行的第2列</td> | |
<td>第3行的第3列</td> | |
</tr> | |
</table> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>跨行跨列</title> | |
<!-- | |
都必须写在td中 | |
rowspan :跨行 | |
colspan:跨列 | |
--> | |
</head> | |
<body> | |
<table border="1px" cellpadding="5px"> | |
<tr> | |
<td colspan="3" align="center"> 学生成绩表</td> | |
</tr> | |
<tr> | |
<td rowspan="2">张三</td> | |
<td>math</td> | |
<td>80</td> | |
</tr> | |
<tr> | |
<td>java</td> | |
<td>90</td> | |
</tr> | |
<tr> | |
<td rowspan="2">李四</td> | |
<td>math</td> | |
<td>85</td> | |
</tr> | |
<tr> | |
<td>java</td> | |
<td>95</td> | |
</tr> | |
</table> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>高级表格</title> | |
</head> | |
<body> | |
<table border="1" cellspacing="0" width="70%"> | |
<caption>年终数据报表</caption> <!--标题--> | |
<thead bgcolor="red"> <!--页眉--> | |
<tr> | |
<th>月份</th> | |
<th>收入</th> | |
</tr> | |
</thead> | |
<tbody bgcolor="pink"> <!--主体--> | |
<tr> | |
<td>1月份</td> | |
<td>5000</td> | |
</tr> | |
<tr> | |
<td>2月份</td> | |
<td>5000</td> | |
</tr> | |
<tr> | |
<td>3月份</td> | |
<td>6000</td> | |
</tr> | |
<tr> | |
<td>4月份</td> | |
<td>8000</td> | |
</tr> | |
</tbody> | |
<tfoot bgcolor="green"> <!--页脚--> | |
<tr> | |
<td>平均月收入</td> | |
<td>6000</td> | |
</tr> | |
<tr> | |
<td>总收入</td> | |
<td>24000</td> | |
</tr> | |
</tfoot> | |
</table> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>音频标签</title> | |
<!-- | |
audio:音频标签 | |
controls:是否显示 控制条 | |
autoplay:是否自动播放 | |
--> | |
</head> | |
<body> | |
<audio controls autoplay> | |
<source src="../audio/music.mp3"> | |
</audio> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>视频标签</title> | |
<!-- | |
video:视频标签 | |
controls:是否显示 控制条 | |
autoplay:是否自动播放 | |
--> | |
</head> | |
<body> | |
<video controls autoplay src="../video/video.mp4"> </video> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>结构元素</title> | |
<!-- | |
用于网页的布局: | |
header: 头部区域 | |
section:html页面中的一块独立的部分 | |
footer:脚部区域 | |
nav:导航菜单 | |
article:独立的文章内容 | |
aside:常用于侧边栏 | |
--> | |
<style type="text/css"> | |
header{ | |
height: 20px; | |
border: 1px solid red; | |
} | |
section{ | |
height: 1000px; | |
border: 1px solid black; | |
} | |
footer{ | |
height: 50px; | |
border: 1px solid blue; | |
} | |
</style> | |
</head> | |
<body> | |
<header> | |
</header> | |
<section> | |
</section> | |
<footer> | |
</footer> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>内联框架</title> | |
<!-- | |
src :指的是 我们需要引入的外部文件地址 | |
需求: | |
用户点击不同的超链接,在iframe框架中 显示不同的页面! | |
--> | |
</head> | |
<body> | |
<a href="http://www.jd.com" target="myIframe">京东</a> | |
<a href="http://www.taobao.com" target="myIframe">淘宝</a> | |
<a href="http://www.baidu.com" target="myIframe">百度</a> | |
<iframe name="myIframe" src="http://www.baidu.com" scrolling="no" width="500" height="500"></iframe> | |
</body> | |
</html> |
css美化页面 | |||
如果在我们一行文字中,想让某个文字凸显出来,使用span! | |||
1.字体样式 | |||
font-style:字体的风格 italic normal | |||
font-weight:字体的粗细 normal(默认400) bold(700) bolder 最大到900 | |||
font-size:字体的大小 10px 2em rem pc pt | |||
font-family:字体的类型,比如我们的楷体,隶书,宋体。。。。。 | |||
font:风格 粗细 大小 类型 | |||
在一起设置属性的时候,四种属性顺序不能颠倒! | |||
2.文本样式 | |||
color:文本颜色 red 16进制颜色码 rgb rgba | |||
rgb(red,green,blue)正数取值 0-255 | |||
rgba(red,green,blue,alpha) | |||
alpha的取值必须是0-1 0不显示 1正常显示 | |||
text-align:文本元素的水平对齐方式 | |||
center left right justify(两端对齐) | |||
line-height:文本的行高! | |||
如果想设置文本的垂直居中line-height的值必须等于height的值 | |||
text-indent:设置首行缩进 | |||
p{ | |||
text-indent:2em; 设置p首行缩进2个字符 | |||
} | |||
text-decoration:文本的装饰 | |||
none:默认值 | |||
underline:下划线 | |||
overline:上划线 | |||
line-through:删除线 | |||
text-shadow:文本阴影 | |||
3.display 可以实现 块元素和行内元素的互换! | |||
inline inline-block block | |||
4.超链接伪类 | |||
结构伪类选择器: | |||
div:nth-of-type() :nth-child | |||
css伪类是一个特殊的类! 它针对于我们设置的css选择器起作用! | |||
css伪类的语法: | |||
选择器:伪类名{ | |||
属性:属性值; | |||
} | |||
:link ==> 还没有点击超链接的样式 | |||
:visited ==> 点击之后超链接的样式 | |||
:hover ==> 鼠标悬停在超链接的样式 | |||
:active ==> 鼠标点击未释放超链接的样式 | |||
love hate | |||
如果同时给一个选择器设置超链接伪类样式,那么顺序是必须不变的! | |||
5.列表样式 | |||
list-style-type 列表符号样式 | |||
none 无符号 | |||
disc 实心圆 | |||
circle 空心圆 | |||
decimal 数字 ..... | |||
list-style-image 列表图片 url | |||
list-style-position 列表符号是否被li包含,默认是ul包含 | |||
list-style 列表样式 | |||
如果同时设置了type和image 那么image会覆盖type!和书写先后顺序没关系! | |||
6.背景样式 | |||
"> | background-image:背景图片 | ||
background-position:背景位置 | |||
background-repeat:背景重复方式 | |||
repeat:默认方式 水平和垂直都平铺 | |||
no-repeat:不平铺,只有一个图片 | |||
repeat-x:水平平铺 | |||
repeat-y:垂直平铺 | |||
background: 背景色 背景图片 背景位置 平铺方式 | |||
虽然没有固定顺序,但是我们有个默认的写法! | |||
如果我们相对背景图片的大小进行设置!那么请使用background-size | |||
background-size:contain; | |||
background-size:背景图片的尺寸 | |||
auto:默认值,使用图片的大小 | |||
cover:让整个图片正好填充整个盒子 | |||
contain:让图片自动的方法或者缩小 适应盒子的大小 | |||
percentage:使用百分比 手动的校正图片在盒子中的大小 | |||
7.渐变属性 | |||
linear-gradient:(方向,color1,color2) | |||
to top :方向 | |||
red:第1个颜色 | |||
black:第2个颜色 | |||
IE浏览器是Trident内核,加前缀:-ms- | |||
Chrome浏览器是Webkit内核,加前缀:-webkit- | |||
Safari浏览器是Webkit内核,加前缀:-webkit- | |||
Opera浏览器是Blink内核,加前缀:-o- | |||
Firefox浏览器是Mozilla内核,加前缀:-moz- |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>span标签</title> | |
<!--span标签 | |
想让某些文字凸显出来 | |
--> | |
<style type="text/css"> | |
div:first-child span{ | |
color: red; | |
} | |
div:last-child span{ | |
color: green; | |
} | |
/*同时设置body中的子元素span的风格 粗细 大小 类型*/ | |
body>span{ | |
font: oblique bold 50px "楷体"; | |
color: red; | |
} | |
</style> | |
</head> | |
<body> | |
<div><span>今天</span>是个好日子!</div> | |
<div><span>明天</span>也是个好日子!</div> | |
<span>a</span>bcdefg | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>字体样式</title> | |
<style type="text/css"> | |
div{ | |
/*01.设置字体的类型*/ | |
font-family:"楷体" ; | |
/*02.设置字体的风格*/ | |
font-style: italic; | |
/*03.设置字体的大小 可以设置数值*/ | |
font-size:small; | |
/*04.设置字体的粗细 可以设置数值*/ | |
font-weight: bold; | |
} | |
/* 简写方式==》同时设置 字体的 风格,粗细,大小 ,类型 顺序不能发生变化*/ | |
span{ | |
font:italic bolder 60px "楷体"; | |
} | |
</style> | |
</head> | |
<body> | |
<div><span>今天</span>是个好日子!</div> | |
<div><span>明天</span>也是个好日子!</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>display属性</title> | |
<!-- 实现 块元素和 内联元素的相互转换 --> | |
<!-- 需求: | |
01.设置块元素2和3 在一行显示 | |
02.设置块元素2和3 的边框和宽度 高度 ==>因为已经变成了内联元素 所以宽度 高度 无效 | |
03.我们想块元素2和3 在一行显示 但是 还能设置 宽度 高度 ???display: inline-block; | |
04.把内联元素3 变成块元素 并且设置 宽度 高度 | |
--> | |
<style type="text/css"> | |
div:nth-of-type(2),div:nth-of-type(3){ | |
/* display: inline; 内联元素*/ | |
display: inline-block; /* 行内块元素*/ | |
border: 1px solid red; | |
height: 50px; | |
width: 50px; | |
} | |
span:nth-child(3){ | |
border: 1px solid red; | |
display:block;/*块元素*/ | |
height: 50px; | |
width: 50px; | |
} | |
</style> | |
</head> | |
<body> | |
<span>内联元素1</span> | |
<span>内联元素2</span> | |
<span>内联元素3</span> | |
<div>块元素1</div> | |
<div>块元素2</div> | |
<div>块元素3</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>文本样式</title> | |
<style type="text/css"> | |
/* 01.设置文本的颜色 | |
RGB: red green blue | |
rgb(red ,green,blue) 每个颜色的数值范围是0-255 | |
rgba(50,100,50,0.2) 最后一个参数 设置透明度 alpha 取值是0-1 | |
16进制的颜色码 #020202 | |
前两位代表R的分量 | |
中间两位代表G的分量 | |
后两位代表B的分量 | |
02.设置文本的对齐方式 | |
text-align center right left | |
03.设置文本的垂直居中 | |
我们设置的line-height的值要和 盒子的 height属性值一致! | |
04.文本的装饰 | |
text-decoration: line-through; 删除线 | |
text-decoration: underline; 下划线 | |
text-decoration: overline; 上划线 | |
05.文本的阴影 | |
text-shadow:red 2px 3px 1px ; | |
red:阴影的颜色 | |
2px:x轴的位移 | |
3px:y轴的位移 | |
1px:阴影的模糊范围 值越小 看到的文本越清晰 | |
*/ | |
div{ | |
/*color: rgb(50,100,50);只是设置文本颜色*/ | |
color: rgba(50,100,50,0.8); /*设置颜色的同时设置透明度*/ | |
text-align: left;/*水平居中方式*/ | |
text-indent: 2em;/*首行缩进*/ | |
border: 1px solid red; | |
height: 100px; | |
line-height:100px ; /*行高*/ | |
text-decoration: underline; | |
text-shadow:red 2px 2px 1px ;/*文本的阴影*/ | |
} | |
</style> | |
</head> | |
<body> | |
<div>现价 500</div> | |
<div>原价 900</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>超链接伪类</title> | |
<!-- | |
a:link 我们还没有访问超链接时的样式 | |
a:visited 访问之后超链接的样式 | |
a:hover 鼠标悬停在超链接上的样式 | |
a:active 鼠标点击未释放 | |
顺序一定不能有误! | |
--> | |
<style type="text/css"> | |
a:link{ | |
color: red; | |
} | |
a:visited{ | |
color: greenyellow; | |
} | |
a:hover{ | |
color: deeppink; | |
} | |
a:active{ | |
color: yellow; | |
} | |
div[id="haha2"]:hover{ | |
color: red; | |
text-shadow: pink 2px 2px 1px; | |
} | |
span:hover{ | |
background: red; | |
} | |
</style> | |
</head> | |
<body> | |
<span>haha</span> | |
<a href="#">大家辛苦了!</a> | |
<div id="haha">哈哈</div> | |
<div id="haha1">哈哈1</div> | |
<div id="haha2">哈哈2</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>列表样式</title> | |
<style type="text/css"> | |
/*01.去掉列表前面实心圆点 | |
list-style-type: none; | |
list-style-type:设置前面默认的样式 | |
02.把默认的小圆点换成图片 | |
list-style-image: url("../images/a.jpg"); | |
03.设置li和图标的关系 | |
li是否包含前面的小图标 | |
*/ | |
li{ | |
list-style-position: inside; | |
/* list-style-image: url("../images/a.jpg"); | |
list-style-type: disc;*/ | |
} | |
</style> | |
</head> | |
<body> | |
<ul> | |
<li>第1项</li> | |
<li>第2项</li> | |
<li>第3项</li> | |
<li>第4项</li> | |
</ul> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>背景样式</title> | |
<style type="text/css"> | |
div{ | |
border: 1px solid red; | |
height: 200px; | |
width: 200px; | |
background-color: aqua; /* 01.给div增加背景颜色*/ | |
background-image: url("../images/b.png"); /* 02.给div增加背景图片 图片会把颜色覆盖,其实颜色在图片后面*/ | |
background-repeat: no-repeat;/*03.设置图片的填充方式*/ | |
/* background-position: 20px 10px;04.设置图片定位 设置size时 需要 注释*/ | |
/* background:color image position repeat ; 简写的规范*/ | |
/* | |
background-size:contain; | |
background-size:背景图片的尺寸 | |
auto:默认值,使用图片的大小 | |
cover:让整个图片正好填充整个盒子 | |
contain:让图片自动的方法或者缩小 适应盒子的大小 | |
percentage:使用百分比 手动的校正图片在盒子中的大小 100%; | |
*/ | |
} | |
</style> | |
</head> | |
<body> | |
<div></div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>渐变属性</title> | |
<!-- | |
01.线性渐变 | |
颜色按照从上到下或者从左到右 等顺序发生的变化 | |
02.径向渐变 | |
不是按照直线的顺序! 圆形,椭圆!从一个点向所有的方向混合! | |
--> | |
<style type="text/css"> | |
div{ | |
border: 1px solid red; | |
height: 200px; | |
width: 200px; | |
background: linear-gradient(to left top,red,green); | |
/* to top :方向 | |
red:第1个颜色 | |
black:第2个颜色 | |
IE浏览器是Trident内核,加前缀:-ms- | |
Chrome浏览器是Webkit内核,加前缀:-webkit- | |
Safari浏览器是Webkit内核,加前缀:-webkit- | |
Opera浏览器是Blink内核,加前缀:-o- | |
Firefox浏览器是Mozilla内核,加前缀:-moz- | |
*/ | |
} | |
</style> | |
</head> | |
<body> | |
<div></div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title></title> | |
<style type="text/css"> | |
div{ | |
height: 50px; | |
border: 1px solid red; | |
line-height: 50px; | |
text-align: center; | |
} | |
</style> | |
</head> | |
<body> | |
<div>我想垂直居中</div> | |
</body> | |
</html> |
网页会根据块元素或者内联元素的特性,按照从左至右,从上到下的方式自然排序! | |
这种元素自然排列的方式,我们称之为====》标准文档流! | |
浮动 float | |
左浮动 | |
右浮动 | |
浮动之后 会脱离 标准文档流 | |
溢出 overflow | |
overflow: | |
01.visible:默认显示 | |
02.scroll:以滚动条的形式显示溢出部分 | |
03.hidden:溢出部分隐藏 | |
04.auto:自动跳转 | |
我们书写了一个页面,里面有很多块元素,默认排版就是标准文档流! | |
如果我们想让ul中的li能在一行显示! | |
01.display | |
02.浮动 | |
只要是元素设置了浮动就会脱离标准文档流! | |
如果我们的父元素容不下浮动元素! | |
可以选择是否显示溢出的元素! | |
使用overflow! | |
clear 清除浮动 | |
none 默认 | |
left 在左侧不允许浮动 | |
right 在右侧不允许浮动 | |
both 左右侧都不允许浮动 | |
防止父级边框塌陷的方式: | |
01.给父级盒子设置宽高! | |
02.在父级盒子的最后一个位置增加div没有内容 | |
<div class="clear"></div> | |
给这个div增加样式 | |
.clear{ | |
border: 1px solid black; | |
clear: both; | |
} | |
03.在父盒子中设置溢出处理 | |
overflow: hidden; | |
04.最终使用的方式 :after伪类 | |
在父盒子中增加一个class="clear" | |
.clear:after{ | |
display: block;/*在#main div的左后一个位置增加一个块元素*/ | |
content: ‘‘; /*块元素的内容什么都没有*/ | |
clear: both; /*清除浮动*/ | |
} |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>网页布局</title> | |
<!-- 网页会根据块元素或者内联元素的特性,按照从左至右,从上到下的方式自然排序! | |
这种元素自然排列的方式,我们称之为====》标准文档流!--> | |
</head> | |
<body> | |
<span>11111</span> | |
<span>22222</span> | |
<span>33333</span> | |
<div>33333</div> | |
<span>11111</span> | |
<span>22222</span> | |
<span>33333</span> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>浮动属性</title> | |
<style type="text/css"> | |
#main{/*大盒子*/ | |
height: 300px; | |
width: 300px; | |
border: 1px solid red; | |
/*针对于浮动之后 内容溢出的处理 | |
overflow: | |
01.visible:默认显示 | |
02.scroll:以滚动条的形式显示溢出部分 | |
03.hidden:溢出部分隐藏 | |
04.auto:自动调整 | |
*/ | |
overflow: scroll; | |
} | |
#a,#b,#c{ /*三个小盒子*/ | |
height: 150px; | |
width: 110px; | |
border: 1px solid red; | |
margin: 2px; | |
/*浮动之后 会脱离 标准文档流*/ | |
float: right; | |
} | |
</style> | |
</head> | |
<body> | |
<div id="main"> | |
<div id="a">这是第1个盒子</div> | |
<div id="b">这是第2个盒子</div> | |
<div id="c">这是第3个盒子</div> | |
</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>浮动属性</title> | |
<style type="text/css"> | |
#main{/*大盒子*/ | |
height: 300px; | |
width: 300px; | |
border: 1px solid red; | |
} | |
#a,#b,#c{ /*三个小盒子*/ | |
height: 50px; | |
width: 70px; | |
border: 1px solid blue; | |
margin: 2px; | |
float: left; | |
}/*第三个盒子清除左浮动 | |
#c{ | |
clear: left; | |
}*/ | |
/*清除第二盒子的左浮动*/ | |
#b{ | |
clear: left; | |
} | |
</style> | |
</head> | |
<body> | |
<div id="main"> | |
<div id="a">这是第1个盒子</div> | |
<div id="b">这是第2个盒子</div> | |
<div id="c">这是第3个盒子</div> | |
</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>防止父级边框塌陷</title> | |
<style type="text/css"> | |
#main{ | |
border: 1px solid red; | |
/*01.给父级div设置高度 | |
height: 500px;*/ | |
/* 03. 设置溢出处理 overflow: hidden;*/ | |
} | |
#a,#b,#c{ /*三个小盒子*/ | |
border: 1px solid red; | |
float: left; /* 01.因为 父级div没有设置高度和宽度! 子的div右浮动了?脱离文档流 位置没了*/ | |
} | |
/*02. 增加空div 防止父级边框塌陷 | |
.clear{ | |
border: 1px solid black; | |
clear: both; | |
}*/ | |
/*04.推荐使用 after伪类 */ | |
.clear:after{ | |
display: block;/*在#main div的左后一个位置增加一个块元素*/ | |
content: ‘‘; /*块元素的内容什么都没有*/ | |
clear: both; /*清除浮动*/ | |
} | |
</style> | |
</head> | |
<body> | |
<div id="main" class="clear"> | |
<div id="a"><img src="../images/b.png"></div> | |
<div id="b"><img src="../images/b.png"></div> | |
<div id="c"><img src="../images/b.png"></div> | |
<!--02. 增加空div 防止父级边框塌陷 <div class="clear"></div> --> | |
</div> | |
</body> | |
</html> |
css变形:transform 平移 translate(x,y) translateX translateY transform:translate(100px,0) 旋转 rotate(deg) 旋转多少度,不会改变元素的形状 缩放 scale(x,y) 如果只书写了一个值,默认第2个参数等于第一个值 scaleX scaleY 倾斜 skew(x,y) deg 会改变元素的形状 skewX skewY 如果说我们想给一个元素同时设置多个 变形属性! transform: 倾斜 缩放 旋转 ; 多个属性之间使用空格隔开! 我们上面的变形属性都是一瞬间就完成了!没有看到中间过程! 如果想看到!使用css过渡属性 transition==>是一个动画的转换过程! css过渡属性: transition:property duration timing-function delay property:过渡或者动画的css属性,例如color,width,如果想都设置使用all duration:完成过渡效果需要的时间 s为单位 timing-function: 过渡函数 ease:默认值 速度由快到慢 linear:匀速 ease-in:越来越快 ease-out:越来越慢 ease-in-out:先加速后减速 delay:过渡开始的延迟时间 s为单位 CSS动画 01.创建关键帧 @keyframes 名称(animates){ 0%{ css属性:属性值; } 50%{ css属性:属性值; } 100%{ css属性:属性值; } } 02.怎么调用关键帧 animation:关键帧的名称 3s linear 1s;
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>css3变形</title> | |
<style type="text/css"> | |
*{ | |
margin: 0px; | |
padding: 0px; | |
} | |
li{ | |
list-style: none; | |
float: left; | |
margin-left: 15px; | |
background: rgba(230,130,0,0.5); | |
border-radius: 5px;/*圆角属性*/ | |
} | |
li:hover{ | |
/*transform 变形属性*/ | |
/* transform:translate(4px,5px) ;平移*/ | |
transform: rotate(90deg) scale(1.5);/* 旋转的同时放大1.5倍*/ | |
/* transform: skewY(20deg); | |
transform: skewX(20deg); 倾斜属性*/ | |
} | |
a{ | |
text-decoration: none; | |
} | |
a:hover{ | |
background: rgba(150,230,100,0.5); | |
border-radius: 5px; | |
} | |
</style> | |
</head> | |
<body> | |
<ul> | |
<li><a href="#">服装城</a></li> | |
<li><a href="#">美妆馆</a></li> | |
<li><a href="#">超市</a></li> | |
<li><a href="#">全球购</a></li> | |
<li><a href="#">闪购</a></li> | |
<li><a href="#">团购</a></li> | |
<li><a href="#">拍卖</a></li> | |
<li><a href="#">金融</a></li> | |
</ul> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>CSS3过渡</title> | |
<style type="text/css"> | |
*{ | |
margin: 0px; | |
padding: 0px; | |
} | |
div{ | |
width: 100px; | |
height: 100px; | |
background-color: pink; | |
text-align: center; | |
line-height: 100px; | |
transition:all 3s linear 2s; | |
/** | |
all: transition-property | |
3s : transition-duration | |
linear: transition-timing-function | |
2s: transition-delay | |
*/ | |
} | |
div:hover{ | |
background-color: red; | |
font-size: 25px; | |
transform: rotate(90deg) scale(1.5); /*旋转的同时放大1.5倍 这两个效果 一次性到位*/ | |
/*transition属性的值: | |
01.transition-property:过渡的css属性的名称(color,font-size,background)等! | |
想给多个属性设置过渡效果,使用all! | |
02.transition-duration:过渡效果需要的时间! | |
03.transition-timing-function:设置速度曲线! | |
ease:慢速开始,之后变快! | |
linear:匀速! | |
ease-in:慢速开始! | |
ease-out:慢速结束! | |
04.transition-delay:过度效果开始前需要等待的时间!默认 0s! | |
*/ | |
} | |
</style> | |
</head> | |
<body> | |
<div> | |
大家辛苦了! | |
</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>CSS3动画</title> | |
<style type="text/css"> | |
div{ | |
height: 50px; | |
width: 50px; | |
background: pink; | |
/*调用动画*/ | |
animation:animates 5s linear 1s 2; | |
} | |
/*创建 关键帧*/ | |
@keyframes animates{ | |
0%{ | |
width: 0px; | |
transform: translate(50px,0); | |
} | |
25%{ | |
width: 25px; | |
height: 25px; | |
transform: translate(150px,0) rotate(90deg); | |
} | |
50%{ | |
width: 50px; | |
height: 50px; | |
transform: translate(300px,0) rotate(180deg); | |
} | |
75%{ | |
width: 25px; | |
height: 25px; | |
transform: translate(150px,0) rotate(270deg); | |
} | |
100%{ | |
width: 50px; | |
height: 50px; | |
transform: translate(50px,0) rotate(360deg); | |
} | |
} | |
</style> | |
</head> | |
<body> | |
<div></div> | |
</body> | |
</html> |
常见的表单元素: 文本框 type="text" 默认值 密码框 type="password" 单选按钮 type="radio" <input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女<br/> name属性值必须一致!否则会都能选择! value属性值必须设置!否则后台无法获取属性值! 后台只能获取一个值! 复选框 type="checkbox" name属性值必须一致!否则会都能选择! value属性值必须设置!否则后台无法获取属性值! 后台获取时,需要做非空验证! 单选按钮和 复选框 默认被选中使用checked 列表框 type="select" 默认被选中,在option中使用selected 按钮 type="button" 普通按钮 只是一个按钮 后面学了js可以绑定事件 type="reset" 重置按钮 把表单中所有的元素内容变为初始值 type="submit" 提交按钮 会把表单中的所有内容提交到服务器 多行文本域 type="textarea" 邮箱 type="email" 数字 type="number" 滑块 type="range" 搜索 type="search"
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>登录页面</title> | |
<!-- | |
form表单的意义: | |
01.获取用户的输入 ==》收集数据 | |
02.将用户的输入发送到服务器===》与服务器产生交互 | |
action:我们获取完用户的输入之后 提交到的服务器地址! | |
#:代表当前页面! | |
也可以不书写! | |
method:我们提交的方式! | |
可以理解成 我们 | |
普通人 说话 get | |
和 | |
聋哑人打手语 post | |
get和post的区别 安不安全 相对而言 | |
01.get会在url地址栏中显示我们输入的数据 | |
post会在请求头中显示用户的输入 | |
F12之后选择 network 向下拉到页面的最底部 有一个 form data | |
这里有post请求的数据! | |
02.http协议对get和post请求都没有长度限制 | |
如果对url的长度进行限制只有两种原因: | |
001.浏览器自身的设置 | |
002.服务器的设置 | |
input标签中的常用属性: | |
name:可以理解成标记! 用于服务器获取我们这个表单中的元素值! 必须的! | |
value: 用户在页面中输入的值! 我们一般可以不写! | |
maxlength:文本框的最大字节数量 | |
size:表单元素的初始长度! | |
比如说:<input type="text" name="userName" value=""> | |
那么再我们点击注册按钮的时候, | |
会提交到服务器的数据是 userName="value的属性值" | |
服务器根据 name的属性值,获取value的属性值! | |
placeholder:占位符,提示语!不是value的值! 只有在value属性值为空的时候显示! | |
--> | |
</head> | |
<body> | |
<form action="#" method="post"> | |
昵称: <input type="text" name="userName" size="100" placeholder="请输入用户名" maxlength="50"><br/> | |
密码: <input type="password" name="pwd"><br/> | |
性别:<input type="radio" name="sex" value="男" checked>男 | |
<input type="radio" name="sex" value="女">女<br/> | |
爱好:<input type="checkbox" name="love" value="足球" checked>足球 | |
<input type="checkbox" name="love" value="乒乓球">乒乓球 | |
<input type="checkbox" name="love" value="羽毛球">羽毛球 | |
<input type="checkbox" name="love" value="篮球">篮球<br/> | |
民族:<select name="nation" size="1"> | |
<option value="" >请选择</option> | |
<option value="汉族" selected>汉族</option> | |
<option value="满族">满族</option> | |
<option value="维吾尔族" >维吾尔族</option> | |
</select><br/> | |
协议:<textarea name="protocol" rows="20" cols="20"> | |
xxx xxx | |
xxx xxx | |
xxx xxx | |
</textarea> | |
<br/> | |
文件上传: <input type="file"> | |
选择颜色: <input type="color"> | |
日期: <input type="date"> | |
时间: <input type="time"> | |
邮箱:<input type="email" name="email"><br/> | |
数字:<input type="number" name="num" max="50" min="1"><br/> | |
滑块:<input type="range" max="200" value="150" step="50"><br/> | |
搜索:<input type="search" name="search"><br/> | |
QQ只读:<input name="qq" value="501804292" readonly><br/> | |
隐藏域: <input type="hidden" name="hidden" value="a"><br/> | |
<label> 密码: <input type="password" name="pwd"></label> | |
<label for="pwd"> 密码: <input type="password" name="pwd" id="pwd"></label> | |
<br/> | |
正则验证手机号:<input name="phoneNum" required pattern="^1[34578]\d{9}$"> | |
<input name="userName" required placeholder="必填项"> | |
<input type="button" value="普通"> | |
<input type="reset" value="重置"> | |
<input type="submit" value="注册" disabled> <!-- disabled 按钮禁用--> | |
<button type="submit" >button</button> <!-- 默认就是提交按钮,没有value属性--> | |
</form> | |
</body> | |
</html> |
CSS(Cascading Style Sheet) 级联(层叠)样式表! 网页样式的设计! 96年 css1.0 04年 css2.1 10年 css3.0 优势: 01.页面和样式的分离 02.便于我们修改和使用 03.多个页面的应用,css样式可以复用 04.层叠,一个元素可以多次设置样式! 05.页面压缩 设置HTML文件样式的计算机语言! 可以对网页中的文字,颜色,字体大小,边框,背景,高度,网页定位等样式的设定! 例子: 之前设计表格的时候! 每一个单元格都是td! 我们想让每个td的内容都居中显示??? 我们怎么做?? 在每个td上 都加上align="center"! 但是麻烦! 现在 我们可以通过 css的选择器 来统一给整个页面中的所有td设置样式! 怎么设置呢?? td{ //页面中所有的td内容 水平居中! text-align:center; } CSS的语法规则: 选择器{ //开发者模式 便于阅读 属性1:值1; 属性2:值2; 属性3:值3; //最后一个;可以省略不写!但是不建议省略! } 选择器{属性1:值1;属性2:值2;属性3:值3;} //生产者模式 减少内存 HTML中引入CSS样式的3种方式: 例子: 假如我们是一个包工头,现在需要对我们已经建好的楼房进行装修! 两种选择: 01.自己装修 == 》行内样式 <a href="#" style="color:red">百度</a> 02.别人装修 001.自己人装修 == 》内部样式 002.其他人装修 == 》外部样式 如果说自己人和其他人以及你自己都想干装修! 肯定是自己说了算!!!! css样式的优先级: 行内样式 > 内部样式 > 外部样式 导入外部样式的两种方式: 01.链接式 <link rel="stylesheet" href="外部文件位置" type="text/css"> 02.导入式 <style type="text/css"> @import "外部文件位置"; </style> 链接式的导入式的区别: 01.链接式的link属性XHTML @import 属于css2.1 02.链接式优先加载css样式,再加载页面中的html内容! 03.@import先加载页面中的html内容,再加载css样式! 04.@import存在浏览器兼容性问题! css中最重要就是 选择器: 选择器: 1.基本选择器 01.标签选择器 p{} a{} div{} 02.类选择器 .a 获取页面中class属性值是a的元素 可以有N个 <span class="a">第一个span标签</span> <span class="a">第二个span标签 </span> <span class="a">第三个span标签</span> <div class="a">第1个div标签</span> <div class="a">第2个div标签</span> 03.id选择器 #a 获取页面中id属性值是a的元素 只能有1个 <div id="a"></div> 2.高级选择器 01.交集选择器 02.并集选择器 03.层次选择器 01.后代选择器 02.子选择器 03.相邻兄弟选择器 之后的一个兄弟元素 04.通用兄弟选择器 之后的所有兄弟元素 04.结构伪类选择器 ***** 05.属性选择器 [属性=属性值]
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>标签选择器</title> | |
<!-- 内部样式设置 style标签应该写在head标签中 | |
<style type="text/css"> | |
h1{ /* h1 页面中所有的h1标签*/ | |
color: red; /*color 属性 red 属性值*/ | |
font-size: 50px; | |
} | |
</style> 我们css的优势之一是 网页和样式的分离--> | |
<!-- 链接式 | |
<link rel="stylesheet" type="text/css" href="css/first.css">--> | |
<!--导入式--> | |
<style type="text/css"> | |
@import "css/first.css"; | |
</style> | |
</head> | |
<body> | |
<!--需求:让页面中所有的h1标签 字体颜色为 红色 字体大小50px--> | |
<h1 style="color: pink">这是1级标题</h1> <!--验证优先级--> | |
<h1>这是1级标题</h1> | |
<h1>这是1级标题</h1> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>类选择器</title> | |
<!--需求: 让页面中的class属性值为box的盒子颜色变成红色--> | |
<style type="text/css"> | |
.box{ /*.box 类选择器 选取页面中的class属性值为box的元素*/ | |
color:red; | |
} | |
/* 我想让2 3 盒子也有这个样式*/ | |
.boxSize{ | |
font-size: 52px; | |
} | |
</style> | |
</head> | |
<body> | |
<div class="boxSize">这是第1个盒子</div> | |
<!--说明这个div同时具有两个class样式--> | |
<div class="box boxSize">这是第2个盒子</div> | |
<div class="box boxSize">这是第3个盒子</div> | |
<div class="box">这是第4个盒子</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>id选择器</title> | |
<!--在一个页面中id属性值相同的而只能有一个! 页面id唯一!--> | |
<style type="text/css"> | |
/*给id="box2"的元素设置 颜色为 红色*/ | |
#box2{ | |
color: red; | |
} | |
/*给id="box3"的元素设置 字体大小 50px*/ | |
#box3{ | |
font-size: 50px; | |
} | |
</style> | |
</head> | |
<body> | |
<div>这是第1个盒子</div> | |
<div id="box2">这是第2个盒子</div> | |
<div id="box3">这是第3个盒子</div> | |
<div>这是第4个盒子</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>选择器的优先级</title> | |
<!--需求: | |
分别使用 标签,类和id三种选择器 设置div的样式 | |
--> | |
<style type="text/css"> | |
div{ | |
color: red; | |
} | |
.myDiv{ | |
color: black; | |
} | |
#name{ | |
color: pink; /* 页面显示的是 粉色*/ | |
} | |
/* | |
id选择器 > 类选择器 > 标签选择器 | |
*/ | |
</style> | |
</head> | |
<body> | |
<div id="name" class="myDiv">开始验证优先级</div> | |
</body> | |
</html> | |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>元素的继承性</title> | |
<!-- 需求 : | |
给页面中id为first的div设置样式 | |
给页面中id为second的div设置样式 | |
--> | |
<style type="text/css"> | |
#first{ | |
color: red; | |
} | |
#second{ | |
color: pink; | |
} | |
#third{ | |
color: greenyellow; | |
} | |
</style> | |
</head> | |
<body> | |
<div id="first"> 第一个 | |
<div id="second"> 第二个 | |
<div id="third"> | |
第三个 | |
</div> | |
</div> | |
</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>并集选择器</title> | |
<!-- 需求 | |
给id="mySpan1" ,class="mySpan2" 标签是div的所有元素 | |
设置相同的样式! | |
--> | |
<style type="text/css"> | |
/* 多个选择器都具有的样式. 每个选择器之间使用,隔开 | |
多个选择器没有顺序 | |
*/ | |
#mySpan1,.mySpan2,div{ | |
color:red; | |
} | |
</style> | |
</head> | |
<body> | |
<div>第1个盒子</div> | |
<div>第2个盒子</div> | |
<span id="mySpan1">这是第1个span</span> | |
<span class="mySpan2">这是第2个span</span> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>交集选择器</title> | |
<!-- 交集选择器的规则 | |
01:标签选择器+id选择器 | |
02:标签选择器+类选择器 | |
03.多个选择器直接连着写,不需要有符号隔开 | |
必须标签选择器在前!--> | |
<style type="text/css"> | |
/* 需求: | |
页面中 class="mySpan2" 并且 标签是div的元素 设置样式 | |
*/ | |
div.mySpan2{ | |
color: red; | |
} | |
</style> | |
</head> | |
<body> | |
<div>第1个盒子</div> | |
<div class="mySpan2">第2个盒子</div> | |
<span id="mySpan1">这是第1个span</span> | |
<span class="mySpan2">这是第2个span</span> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>后代选择器</title> | |
<!-- 需求: | |
改变body中 所有span元素的样式 | |
后代选择器 中间使用空格隔开 | |
包含子和孙子等所有的子孙节点 | |
--> | |
<style type="text/css"> | |
body span{ | |
color: red; | |
} | |
</style> | |
</head> | |
<body> | |
<div> 儿子div1 | |
<span>相对于body来说是孙子span1</span> | |
</div> | |
<div>儿子div2 | |
<span>相对于body来说是孙子span2</span> | |
</div> | |
<span>相对于body来说是儿子span1</span> | |
<span>相对于body来说是儿子span2</span> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>子选择器</title> | |
<!-- 需求: | |
改变body中 所有子元素是span的样式 | |
只包含子节点 | |
--> | |
<style type="text/css"> | |
body>span{ | |
color: red; | |
} | |
/*选择body中子元素是div的节点,如果div中还有其他的节点,也会随之改变*/ | |
body>div{ | |
color: red; | |
} | |
</style> | |
</head> | |
<body> | |
<div> 儿子div1 | |
<span>相对于body来说是孙子span1</span> | |
</div> | |
<div>儿子div2 | |
<span>相对于body来说是孙子span2</span> | |
</div> | |
<span>相对于body来说是儿子span1</span> | |
<span>相对于body来说是儿子span2</span> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>相邻兄弟节点选择器</title> | |
<!-- 需求: | |
改变id=""second"的div元素后面第一个兄弟节点的样式 | |
--> | |
<style type="text/css"> | |
#second+span{ | |
color: red; | |
} | |
</style> | |
</head> | |
<body> | |
<div> 儿子div1 | |
<span>相对于body来说是孙子span1</span> | |
</div> | |
<div id="second">儿子div2 | |
<span>相对于body来说是孙子span2</span> | |
</div> | |
<span>相对于body来说是儿子span1</span> | |
<span>相对于body来说是儿子span2</span> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>通用兄弟选择器</title> | |
<!-- 需求: | |
改变id=""second"的div元素后面所有兄弟节点的样式 | |
--> | |
<style type="text/css"> | |
#second~span{ | |
color: red; | |
} | |
</style> | |
</head> | |
<body> | |
<div> 儿子div1 | |
<span>相对于body来说是孙子span1</span> | |
</div> | |
<div id="second">儿子div2 | |
<span>相对于body来说是孙子span2</span> | |
</div> | |
<span>相对于body来说是儿子span1</span> | |
<span>相对于body来说是儿子span2</span> | |
<span>相对于body来说是儿子span3</span> | |
<span>相对于body来说是儿子span4</span> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>结构伪类选择器</title> | |
<!-- 不需要在节点上新增额外的id或者class属性 ,需要我们知道节点的位置(下标)--> | |
<style type="text/css"> | |
/*01.改变ul中第一个li的样式 | |
ul li:first-child{ | |
color: red; | |
}*/ | |
/*02.改变ul中最后一个li的样式 | |
ul li:last-child{ | |
color: red; | |
}*/ | |
/*03.改变第3个div的样式 | |
body中如果第3个元素是div就改变样式, | |
否则都没有效果! 着重于顺序! | |
body div:nth-child(3){ | |
color: red; | |
}*/ | |
/*04.改变页面中第2个span元素的样式 | |
nth-of-type: 先查询类型 再看顺序 | |
body span:nth-of-type(2){ | |
color: red; | |
} | |
body div:nth-of-type(3){ | |
color: red; | |
} | |
*/ | |
</style> | |
</head> | |
<body> | |
<div>div1</div> | |
<div>div2</div> | |
<span>span1</span> | |
<div>div3</div> | |
<span>span2</span> | |
<ul> | |
<li>第1个列表的第1项</li> | |
<li>第1个列表的第2项</li> | |
<li>第1个列表的第3项</li> | |
<li>第1个列表的第4项</li> | |
</ul> | |
<ul> | |
<li>第2个列表的第1项</li> | |
<li>第2个列表的第2项</li> | |
<li>第2个列表的第3项</li> | |
<li>第2个列表的第4项</li> | |
</ul> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>属性选择器</title> | |
<style type="text/css"> | |
/* 01.改变元素id="first"的样式 | |
div[id="first"]{ | |
color: red; | |
}*/ | |
/*02.改变所有id属性元素 | |
div[id]{ | |
color: red; | |
}*/ | |
/*03.改变所有id属性值以h开头元素 | |
div[id^="h"]{ | |
color: red; | |
}*/ | |
/*04.改变所有id属性值以a结尾元素 | |
div[id$="a"]{ | |
color: red; | |
}*/ | |
/*04.改变所有id属性值包含i的元素 | |
div[id*="i"]{ | |
color: red; | |
}*/ | |
</style> | |
</head> | |
<body> | |
<div id="first">第1个</div> | |
<div id="haha">第2个</div> | |
<div id="heihei">第3个</div> | |
<div>第4个</div> | |
<div style="color: red;font-size: 50px">第5个</div> | |
</body> | |
</html> |
盒子模型 div+css3 边框 border border:1px solid red; border-color:边框颜色 上右下左四个边 border-top-color:上边框颜色 border-right-color:右边框颜色 border-bottom-color:下边框颜色 border-left-color:左边框颜色 border-width:边框粗细 上右下左四个边 thin medium thick 可以是像素 border-top-width border-right-width border-bottom-width border-left-width border-width:5px 10px ; 上下为5px 左右为10px border-width:5px 10px 20px ; 上为5px 下为20px 左右为10px border-style:边框样式 dashed 常用 solid 常用 none hidden dotted double 简写: border:1px solid red; 规范写法 粗细 样式 颜色! margin:外边距 margin-top margin-right margin-bottom margin-left margin:5px 10px;上下外边距为5px 左右外边距为10px margin:0px auto; 网页中的盒子居中显示! 前提: 01.必须是块元素 02.固定宽度 padding:内边距 padding-top padding-right padding-bottom padding-left padding:5px 10px;上下内边距为5px 左右内边距为10px 盒子模型总尺寸=内容宽度+padding+border+margin box-sizing:设置盒子模型的大小规则 content-box:盒子的总尺寸 border-box:盒子的宽度或者高度 等于 内容的宽度或者高度 inherit:继承父盒子 圆角属性 border-radius:左上 右上 右下 左下 盒子阴影 box-shadow:inset 10px 10px 1px pink; inset:阴影类型 内 外 x轴 y轴 阴影半径 阴影颜色
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>边框border</title> | |
<!-- | |
border的常用属性: | |
01. 设置边框的颜色 border-color | |
02. 设置边框的粗细 border-width | |
03. 设置边框的样式 border-style | |
--> | |
<style type="text/css"> | |
/*设置盒子的宽高*/ | |
div{ | |
height: 50px; | |
width: 50px; | |
/* 设置盒子的上边框 | |
border-top-color: red; | |
border-top-width: 1px; | |
border-top-style: dashed; | |
*/ | |
/*同时设置四个边框 | |
border-color: red; | |
border-width: 2px; | |
border-style: dashed; | |
*/ | |
/*简写方式 虽然没有顺序 但是我们推荐使用 先 粗细 再 样式 最后 颜色!*/ | |
border: 1px solid red; | |
} | |
</style> | |
</head> | |
<body> | |
<div></div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>外边距margin</title> | |
<style type="text/css"> | |
*{ /*去掉网页中所有元素的内外边距*/ | |
margin: 0px; | |
padding: 0px; | |
} | |
div{ | |
/*设置盒子的宽高*/ | |
height: 150px; | |
width: 150px; | |
/*设置盒子的边框*/ | |
border: 1px solid red; | |
/*设置外边距 元素以左上角为准 | |
margin-top: 50px; | |
margin-left: 50px; | |
margin-right: 50px; | |
margin-bottom: 50px;*/ | |
/*设置上下20px 左右50px | |
设置边距的时候 顺序 是 上右下左! | |
margin: 20px 50px;*/ | |
margin: 20px; | |
} | |
</style> | |
</head> | |
<body> | |
<div><img src="../images/b.png" alt="这是一个图片"></div> | |
<div><img src="../images/b.png" alt="这是一个图片"></div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>内边距padding</title> | |
<style type="text/css"> | |
*{ /*去掉网页中所有元素的内外边距*/ | |
margin: 0px; | |
padding: 0px; | |
} | |
/*设置大盒子*/ | |
#bigBox{ | |
/*设置盒子的宽高*/ | |
height: 200px; | |
width: 200px; | |
/*设置盒子的边框*/ | |
border: 1px solid red; | |
/*padding-left:5px ;设置小盒子距离大盒子的左内边距*/ | |
} | |
/*设置小盒子*/ | |
#image{ | |
/*设置盒子的宽高*/ | |
height: 150px; | |
width: 150px; | |
/*设置盒子的边框*/ | |
border: 1px dashed pink; | |
margin-left: 5px; | |
} | |
</style> | |
</head> | |
<body> | |
<div id="bigBox"> <!--大盒子--> | |
<div id="image"> <!--小盒子--> | |
<img src="../images/b.png" alt="这是一个图片"><!--内容--> | |
</div> | |
</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>网页居中</title> | |
<!-- | |
网页居中的必要条件: | |
01.必须是一个块元素 | |
02.必须设置固定宽度 | |
--> | |
<style type="text/css"> | |
*{ /*去掉网页中所有元素的内外边距*/ | |
margin: 0px; | |
padding: 0px; | |
} | |
/*设置大盒子*/ | |
div{ | |
height: 200px; /*设置盒子的宽高*/ | |
width: 200px; | |
/*设置盒子的边框*/ | |
border: 1px solid red; | |
/*通过外边距设置 居中*/ | |
margin:0px auto; | |
} | |
</style> | |
</head> | |
<body> | |
<div> <!--大盒子--> | |
</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>盒子的尺寸boxsizing</title> | |
<style type="text/css"> | |
*{ | |
margin: 0px; | |
padding: 0px; | |
} | |
#father{/* 大盒子*/ | |
width: 100px; | |
height: 100px; | |
border: 1px solid red; | |
box-sizing: border-box; | |
} | |
#son{/* 小盒子*/ | |
width: 40px; | |
height: 40px; | |
border: 1px solid yellowgreen; | |
/* box-sizing: content-box;默认值。显示盒子总尺寸*/ | |
/* box-sizing: border-box; 盒子的高度和宽度就是内容的高度和宽度*/ | |
/*如果大盒子 设置了 盒子的尺寸 我们小盒子 可以适应大盒子尺寸*/ | |
box-sizing: inherit; | |
} | |
</style> | |
</head> | |
<body> | |
<div id="father"> | |
<div id="son"></div> | |
</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>圆角属性</title> | |
<style type="text/css"> | |
div{ | |
height: 50px; | |
width: 50px; | |
border: 1px solid red; | |
border-radius: 5px 20px;/* 左上 右下 5px 右上 左下 20px*/ | |
/*设置圆角属性 简写 默认是 左上 右上 右下 左下 顺时针方向 | |
border-radius: 5px;*/ | |
} | |
</style> | |
</head> | |
<body> | |
<div></div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>设置半圆</title> | |
<style type="text/css"> | |
div{ | |
background: pink; | |
margin: 20px; | |
} | |
div:nth-of-type(1){ | |
width: 100px; | |
height: 50px; | |
border-radius: 50px 50px 0 0;/* 左上和右上*/ | |
} | |
div:nth-of-type(2){ | |
width: 100px; | |
height: 50px; | |
border-radius: 0 0 50px 50px ;/* 左下和右下*/ | |
} | |
div:nth-of-type(3){ | |
width: 50px; /*高度和宽度需要调整*/ | |
height: 100px; | |
border-radius:50px 0 0 50px ;/* 左上和左下*/ | |
} | |
div:nth-of-type(4){ | |
width: 50px; | |
height: 100px; | |
border-radius: 0 50px 50px 0 ;/* 右上和右下*/ | |
} | |
</style> | |
</head> | |
<body> | |
<div></div> | |
<div></div> | |
<div></div> | |
<div></div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>设置圆形和扇形</title> | |
<style type="text/css"> | |
div{ | |
background: pink; | |
margin: 20px; | |
} | |
/*设置圆形*/ | |
div:nth-of-type(1){ | |
width: 50px; | |
height: 50px; | |
border-radius: 50px; | |
} | |
div:nth-of-type(2){ | |
width: 50px; | |
height: 50px; | |
border-radius: 50px 0 0 0;/* 左上*/ | |
} | |
div:nth-of-type(3){ | |
width: 50px; | |
height: 50px; | |
border-radius: 0 50px 0 0;/* 右上*/ | |
} | |
div:nth-of-type(4){ | |
width: 50px; | |
height: 50px; | |
border-radius: 0 0 50px 0;/* 右下*/ | |
} | |
div:nth-of-type(5){ | |
width: 50px; | |
height: 50px; | |
border-radius: 0 0 0 50px;/* 左下*/ | |
} | |
</style> | |
</head> | |
<body> | |
<div></div> | |
<div></div> | |
<div></div> | |
<div></div> | |
<div></div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>盒子阴影</title> | |
<style type="text/css"> | |
div{ | |
height: 50px; | |
width: 50px; | |
border: 1px solid red;/* | |
box-shadow: 10px 10px 1px pink; 外阴影*/ | |
box-shadow:inset 10px 10px 10px pink; /*内阴影*/ | |
} | |
</style> | |
</head> | |
<body> | |
<div></div> | |
</body> | |
</html> |
定位: position 1.static 默认值 没有定位 2.relative 相对定位,参照物是自身原来的位置 01. 参照物是自身原来的位置 02. 不会脱离标准文档流,对父级盒子和相邻的盒子不会产生影响 03. 自身之前的位置会保留 3.absolute 绝对定位,参照物是当前盒子的父级 01.参照物是当前盒子的父级 02.父级必须是设置了定位(一般父级都是相对定位) 03.如果找不到祖先元素,以浏览器为参照物 04.会脱离标准文档流, 如果相邻的盒子没有设置定位属性,会产生影响, 如果相邻的盒子设置定位属性,不会产生影响, 05.自身之前的位置不会保留 4.fixed 固定定位,参照物是浏览器 顺序离我们最近的是 fixed > relative > absolute > static z-index: 设置相同层面的元素 堆叠顺序 默认值 是0 值越大 离我们越近
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>定位属性</title> | |
<!-- | |
position | |
01.static :默认,没有定位! 离我们最远 | |
02.absolute:绝对定位 | |
001.脱离了标准文档流 | |
002.位置发生变化之后,位置不会被保留!后续元素会顶替之前的位置 | |
003.参照离这个设置了定位属性的最近的父级元素!如果没有 就以浏览器为准 | |
03.relative:相对定位 | |
001.相对于自身原来的位置 | |
002.没有脱离标准文档流 | |
003.位置发生变化之后,位置会被保留 | |
04.fixed:固定定位 | |
相对于浏览器 | |
--> | |
<style type="text/css"> | |
*{ | |
margin: 0px; | |
padding: 0px; | |
} | |
div{ | |
height: 50px; | |
width: 50px; | |
} | |
#box{ /*大盒子*/ | |
height: 300px; | |
width: 300px; | |
border: 2px solid red; | |
} | |
#box div:nth-of-type(1){ | |
background: red; | |
/*绝对定位*/ | |
position: absolute; | |
left: 20px; /* 距离父级元素 左边20px*/ | |
} | |
#box div:nth-of-type(2){ | |
background: orange; | |
position:static ;/*默认值*/ | |
} | |
#box div:nth-of-type(3){ | |
background: pink; | |
/*相对定位*/ | |
position: relative; | |
bottom:20px; | |
} | |
#box div:nth-of-type(4){ | |
background: red; | |
/*固定定位*/ | |
position: fixed; | |
left: 30px; | |
top: 30px; | |
} | |
#box div:nth-of-type(5){ /*如果两个盒子设置的定位属性相同,默认按照html结构元素顺序 后面会覆盖前面*/ | |
background: greenyellow; | |
/*固定定位 | |
position: fixed; | |
left: 30px; | |
top: 30px;*/ | |
} | |
/*层级关系 | |
固定定位 > 相对定位 > 绝对定位 > 默认static | |
*/ | |
</style> | |
</head> | |
<body> | |
<div id="box"> | |
<div>第1个盒子</div> | |
<div>第2个盒子</div> | |
<div>第3个盒子</div> | |
<div>第4个盒子</div> | |
<div>第5个盒子</div> | |
</div> | |
</body> | |
</html> |
<!DOCTYPE html> | |
<html> | |
<head lang="en"> | |
<meta charset="UTF-8"> | |
<title>z-index属性</title> | |
<style type="text/css"> | |
*{ | |
margin: 0px; | |
padding: 0px; | |
} | |
li{ | |
list-style: none; | |
} | |
#content{ | |
width: 350px; | |
height: 300px; | |
border: 1px solid red; | |
margin: 0px auto; | |
} | |
.tipBg{ /*带背景的*/ | |
background: gray; /*可以使用 rgba*/ | |
opacity: 0.5; | |
filter: alpha(opacity=50);/*解决低版本IE兼容性*/ | |
} | |
.tipBg,.tipText{ /*都需要跑到 图片上去*/ | |
position: absolute; /* 都是绝对定位*/ | |
height: 25px; | |
line-height: 25px; | |
width: 331px; ; | |
top: 102px; | |
} | |
.tipText{ | |
z-index:1;/*设置相同层面的元素 堆叠顺序 默认值 是0 值越大 离我们越近*/ | |
text-align: center; | |
} | |
</style> | |
</head> | |
<body> | |
<div id="content"> | |
<ul> | |
<li><img src="../images/maple.jpg" alt="香山红叶" /></li> | |
<li class="tipText">京秋魅力•相约共赏香山红叶</li> | |
<li class="tipBg"></li> | |
<li>时间:11月16日 星期六 8:30</li> | |
<li>地点:朝阳区西大望路珠江帝景K区正门前集合</li> | |
</ul> | |
</div> | |
</body> | |
</html> |
标签:之一 内容 cte art 编辑 method 编码格式 存在 侧边栏
原文地址:http://www.cnblogs.com/yunfeioliver/p/7784681.html