三剑客
- ⽹⻚最主要由3部分组成:结构(内容)、表现(样式)和⾏为(动态交互)。⽹⻚现在新的标准是W3C,这三部分所对应的也就是是HTML、CSS和JavaScript。
HTML :内容层,全称“Hyper Text Markup Language(超⽂本标记语⾔)”,简单来说,⽹⻚就是⽤HTML语⾔制作的。html⽂档就类似于word⽂档,html⽂档中写的内容就是要显示⽂本内容,当然有⼀定的格式,这样浏览器知道怎么显示出来。
CSS :样式层,全称“(层叠样式表)”,⽤来修饰HTML⽂本内容的,它的作⽤是表示⼀块内容以什么样的样式(字体、⼤⼩、颜⾊、宽⾼等)显示。
JavaScript :⾏为层,对⽹⻚添加⼀些动态的交互操作,⽐如⿏标放置哪边会变⼤,可以点击操作等
内容层HTML
- HTML全称是 Hyper Text Markup Language(超⽂本标记语⾔),它就是制作⽹⻚⻚⾯的标准语⾔。HTML并不是⼀⻔编程语⾔,它没有逻辑,只是⼀⻔描述性的标记语⾔
HTML最基本的语法就是如此:
<标签名>内容</标签名>
例如,⽤标签来表示⽂字显示为粗体,⽤标签对来定义⽂字为斜体字。当浏览器读取到标签对时,就会将标签中的⽂字⽤斜体显示出来。
- HTML基本结构
⼀个HTML⽂档由4个基本部分组成:
- ⼀个⽂档声明:
声明这是⼀个HTML⽂档,当然很多是好可不写 - ⼀个html标签对:
标签的作⽤相当于设计者在告诉浏览器,整个⽹⻚是从这⾥开始的,然后到结束。 - ⼀个head标签对:
⻚⾯的“头部”,⻚⾯的相关信息,⽐如标题,作者等等就写在这,这⾥内容是不会显示在浏览器的 - ⼀个body标签对:
⻚⾯的“身体”,⼀般⽹⻚绝⼤多数的标签代码都是在这⾥编写。主要显示在浏览器屏幕中的内容
<html>
<head>
<title>第⼀个⻚⾯</title>
</head>
<body>
<h1>标题</h1>
<h2>标题</h2>
<p>段落标签</p>
<p>段落标签</p>
<span>⽂本标签</span>
<span>⽂本标签</span>
<span>⽂本标签</span>
<div>
<span>⽂本标签</span>
<span>⽂本标签</span>
</div>
<img src="images/t.png">
<table border="1" >
<tr>
<td>123</td>
<td colspan="2">234</td>
</tr>
<tr>
<td rowspan="2">123</td>
<td>234</td>
<td>345</td>
</tr>
<tr>
<td>123</td>
<td>234</td>
<td>345</td>
</tr>
</table>
</body>
</html>
样式层CSS
- 我们可以使⽤style属性,为标签添加样式,如:
<h1 style="color: red;font-size: 16px;background: blue;">标题</h1> <h2 style="color: red;font-size: 16px;background: blue;">标题</h2> <p style="color: red;font-size: 16px;background: blue;">段落标签</p>
- 我们可以把这⼀类的样式,提出来包起来,并给它⼀个名字test。之后我们就⽤这个test为我们的标签添加样式
<style type="text/css">
.test{
color: red;
font-size: 16px;
background: blue;
}
</style>
<h1 class="test">标题</h1>
<p class="test">段落标签</p>
这个也就叫类选择器,选择出⼀类的标签添加样式。
选择器
顾名思义,就是选择到相应的标签进⾏修饰,其中主要的选择器有:
- 标签选择器(根据标签名称获取标签) 对⻚⾯中的所有该标签都有效
- ID选择器(获取标签id=xxx的标签)对⻚⾯中指定id的标签进⾏修饰,⼀般都是修饰唯⼀的标签
- 类选择器(获取标签class=xxx的标签)可以选择⻚⾯中的⼀组标签,class=”xxx”的⼀组标签进⾏
修饰 - 包含选择器(获取某类标签中的所有的⼦标签)
- …
<style type="text/css">
p {
color: blue;
background: red;
}
#idChance {
color: orange;
font-size: 18px;
}
#idChance span {
font-size: 28px;
background: blue;
}
</style>
- CSS⽂字属性
font-family 字体类型 font-family:微软雅⿊,Arial,Times New Roman;
font-size 字体⼤⼩ font-size:16px;
font-weight 字体粗细 font-weight: normal/lighter/bold/bolder;
font-style 字体斜体 font-style: italic;
color 颜⾊ color: red;
- 边框的三个属性
border-width 边框的宽度
border-style 边框的外观
border-color 边框的颜⾊
- CSS背景图像属性
background-image 定义背景图像的路径,这样图⽚才能显示嘛
background-repeat 定义背景图像显示⽅式,例如纵向平铺、横向平铺
background-position 定义背景图像在元素哪个位置
background-attachment 定义背景图像是否随内容⽽滚动
background:url(images/11.jpg) no-repeat;定义背景图像不重复出现
- 盒⼦模型
外边距margin,边框border,内边距padding
对于child块标签,边框到⽗标签之间的距离是外边距margin,边框是border,⽽child的内容到边框的距离就叫做内边距padding,他们都是有上下左右之分。
⾏为层JavaScript
- avaScript是⼀⻔编程语⾔,有很多的内容,⽐如变量、操作符、分⽀循环语句、函数⽅法等等,再深⼊还有⾯向对象、原型、闭包、作⽤域等等内容
- 动态改变⻚⾯内容
HTML⻚⾯是静态的,⼀旦编写,内容是⽆法改变的。JavaScript可以弥补这个不⾜,可以将内容动态地显示在⽹⻚中。 - 动态改变⽹⻚的外观
JavaScript通过修改⽹⻚元素的CSS样式,达到动态地改变⽹⻚的外观。 - 验证表单数据
我们常⻅的在各⼤⽹站中的注册中的验证功能,就是JavaScript实现的。 - 响应事件
JavaScript是基于事件的语⾔。例如点击⼀个按钮弹出⼀个对话框,就是⿏标点击触发的事件
⻚⾯中试试看
- 实现点击改变子颜色和点击显示倒计时
<!DOCTYPE html>
<html>
<head>
<title>第一个页面</title>
<style type="text/css">
.test{
color: green;
font-size: 25px;
background: yellow;
}
.test2{
color: green;
}
p {
color: blue;
background: red;
}
#idChance {
color: orange;
font-size: 18px;
}
#idChance span {
font-size: 28px;
background: blue;
}
</style>
</head>
<body>
<h1 style="color: red; font-size: 30px; background: blue">标题一</h1>
<h2 style="color: red; font-size: 25px; background: blue">标题二</h2>
<p style="color: red; font-size: 15px; background: blue">段落内容</p>
<p class="test">段落内容</p>
<p class="test" id="countDwon" οnclick="count()">段落内容3</p>
<p>段落内容</p>
<p>段落内容</p>
<span class="test2">文本标签1也叫做文本行标签</span>
<span class="test2" id="content">文本标签2也叫做文本行标签</span>
<span class="test2" id="content2" οnclick="clickme()">文本标签3也叫做文本行标签</span>
<div id="idChance">
<span>块标签</span>
<span>块标签</span>
</div>
<div>
<span>块标签</span>
</div>
<img src="images\1.png">
<img src="D:\books\images\1.png">
<table border="1">
<tr>
<td>我是列</td>
<td colspan="2">我跨越俩列</td>
<td>我是列</td>
</tr>
<tr>
<td>我是列</td>
<td rowspan="2">我跨越俩行</td>
<td>我是列</td>
</tr>
<tr>
<td>我是列</td>
<td>我是列</td>
<td>我是列</td>
</tr>
</table>
<script type="text/javascript">
document.getElementById("content").innerHTML = "javascript";
document.getElementById("content").style.background = "red";
//实现改变子和颜色
function clickme(argument) {
// body...
document.getElementById("content2").innerHTML = "javascript";
document.getElementById("content2").style.background = "red";
}
var times = 3;
var timer;
//实现倒计时
function count() {
// body...
document.getElementById("countDwon").innerHTML = times;
times--;
if (times >= 0) {
timer = setTimeout(count, 1000);
} else {
clearTimeout(timer);
}
}
</script>
</body>
</html>
实现抽奖页面
- 效果展示
源代码
<!DOCTYPE html>
<html>
<head>
<title>转盘抽奖游戏</title>
<style type="text/css">
.kind{
background: url(images/bg.jpg);
height: 684px;
width: 684px;
margin: auto;
}
.begin{
cursor: pointer;
}
.allneed{
background: url(images/bb.jpg);
}
</style>
</head>
<body class="allneed">
<div class="kind">
<!-- 以表格的形式添加奖项图片 -->
<table style="margin-left: 47px; padding-top: 35px">
<tr>
<td id="count0"><img src="images/3.png"></td>
<td id="count1"><img src="images/2.png"></td>
<td id="count2"><img src="images/3.png"></td>
<td id="count3"><img src="images/4.png"></td>
</tr>
<tr>
<td id="count4"><img src="images/8.png"></td>
<!-- onclick是一个监听器 只要得到动作 就执行JavaScript的方法 -->
<td colspan="2" rowspan="2" class="begin" οnclick="changeColor()"></td>
<td id="count5"><img src="images/3.png"></td>
</tr>
<tr>
<td id="count6"><img src="images/3.png"></td>
<td id="count7"><img src="images/7.png"></td>
</tr>
<tr>
<td id="count8"><img src="images/5.png"></td>
<td id="count9"><img src="images/3.png"></td>
<td id="count10"><img src="images/1.png"></td>
<td id="count11"><img src="images/6.png"></td>
</tr>
</table>
</div>
<script type="text/javascript">
var count = 0;
var allTimes = 0;
var prize = 0;
var timer;
function changeColor(argument) {
// body...
document.getElementById("count" + count).style.background = "none";
//每次都让count++ 让下一个变红 并且判断如果大于12就让其变为0
count++;
if (count == 12) {
count = 0;
}
document.getElementById("count" + count).style.background = "red";
//循环的次数
if (allTimes < 36 + prize) {
allTimes++;
//prize决定了到底哪个奖项最终获奖
if (allTimes == 36) {
prize = Math.floor(Math.random() * 12);
}
timer = setTimeout(changeColor, 80 + (allTimes * 10));
} else {
//结束循环 但是不要忘了让allTimes和ount置为0 保证下次抽奖正常可以进入循环
clearTimeout(timer);
allTimes = 0;
//提示中奖结果
if(prize == 1 || prize == 3 ||prize == 4 || prize == 7 || prize == 8 || prize == 10 || prize == 11) {
alert("恭喜你中奖了");
} else {
alert("很遗憾你未中奖");
}
document.getElementById("count" + count).style.background = "none";
count = 0;
}
}
</script>
</body>
</html>