HTML
1、一套规则,浏览器认识的规则。
2、开发者:
学习Html规则
开发后台程序:
- 写Html文件(充当模板的作用) ******
- 数据库获取数据,然后替换到html文件的指定位置(Web框架)
3、本地测试
- 找到文件路径,直接浏览器打开(单个文件测试时,无需使用socket服务端)
- pycharm打开测试
4、编写Html文件
- doctype对应关系 <!--对于不同的浏览器有自己的编码规范,<!DOCTYPE html>默认是统一的规范,否则显示的页面由于对应关系不同,会错位-->
- html标签,标签内部可以写属性 ====> 只能有一个,<html lang="en"> </html>==>html标签,lang="en"叫html标签的属性。
- 注释: <!-- 注释的内容 -->
5、标签分类
- 自闭合标签
只写了一个<meta>标签,没有</meta>标签,自己就闭合了。
例如:<meta charset="UTF-8">
- 主动闭合标签
例如:<title>老男孩</title>
6、
- <meta -> 编码,跳转,刷新,关键字,描述,IE兼容
6.1 编码:<meta charset="UTF-8">
6.2 跳转:<meta http-equiv="Refresh" Content="5" Url="http://baidu.com" /> 5秒钟后跳转至baidu.com
6.3 刷新:<meta http-equiv="Refresh" Content="30"> 该页面默认30秒刷新一次
6.4 关键字:<meta name="keywords" content="星际2,红警">
6.5 描述: <meta name="description" content="汽车之家为您提供最新汽车报价。" />
6.6 兼容:<meta http-equiv="X-UA-Compatible" content="IE=IE9;IE=IE8;" />
- title标签 ,网站的标题
- <link /> 搞图标,欠
- <style />欠
- <script> 欠
7、body标签
- 图标, > <
- p标签,段落 <p></p>
- br,换行 <br />
======== 小总结 =====
所有标签分为:
标签之间可以嵌套
标签存在的意义:通过 css操作、js操作可以方便定位到哪个标签的值。
ps:chorme审查元素的使用
- 定位
- 查看样式
- h系列 :标题字体大小,从h1到h6,h1最大,h6最小。 <h1></h1>
-
- span :白板,横着输出。属于行内标签; <span></span>
- input系列 + form标签
input type=‘text‘ - name属性,value="赵凡"
input type=‘password‘ - name属性,value="赵凡"
input type=‘submit‘ - value=‘提交‘ 提交按钮,表单
input type=‘button‘ - value=‘登录‘ 按钮
input type=‘radio‘ - 单选框 value,checked="checked",name属性(name相同则互斥)
input type=‘checkbox‘ - 复选框 value, checked="checked",name属性(批量获取数据)
input type=‘file‘ - 依赖form表单的一个属性 enctype="multipart/form-data"
input type=‘rest‘ - 重置
<textarea >默认值</textarea> - name属性
select标签 - name,内部option value, 提交到后台,size,multiple
- a标签
- 跳转
- 锚 href=‘#某个标签的ID‘ 标签的ID不允许重复
- img
src
alt
title
- 列表
ul
li
ol
li
dl
dt
dd
- 表格
table
thead
tr
th
tbody
tr
td
colspan = ‘‘
rowspan = ‘‘
- label
用于点击文件,使得关联的标签获取光标
<label for="username">用户名:</label>
<input id="username" type="text" name="user" />
- fieldset
legend
- 20个标签
CSS
在标签上设置style属性:
background-color: #2459a2;
height: 48px;
...
编写css样式:
1. 标签的style属性
2. 写在head里面 style标签中写样式
- id选择区
#i1{
background-color: #2459a2;
height: 48px;
}
- class选择器 ******
.名称{
...
}
<标签 class=‘名称‘> </标签>
- 标签选择器
div{
...
}
所有div设置上此样式
- 层级选择器(空格) ******
.c1 .c2 div{
}
- 组合选择器(逗号) ******
#c1,.c2,div{
}
- 属性选择器 ******
对选择到的标签再通过属性再进行一次筛选
.c1[n=‘alex‘]{ width:100px; height:200px; }
PS:
- 优先级,标签上style优先,编写顺序,就近原则
2.5 css样式也可以写在单独文件中
<link rel="stylesheet" href="commons.css" />
3、注释
/* */
4、边框
- 宽度,样式,颜色 (border: 4px dotted red;)
- border-left
5、
height, 高度 百分比
width, 宽度 像素,百分比
text-align:ceter, 水平方向居中
line-height,垂直方向根据标签高度
color、 字体颜色
font-size、 字体大小
font-weight 字体加粗
6、float
让标签浪起来,块级标签也可以堆叠
老子管不住:
<div style="clear: both;"></div>
7、display
display: none; -- 让标签消失
display: inline;
display: block;
display: inline-block;
具有inline,默认自己有多少占多少
具有block,可以设置无法设置高度,宽度,padding margin
******
行内标签:无法设置高度,宽度,padding margin
块级标签:设置高度,宽度,padding margin
8、padding margin(0,auto)CSS补充:
- position
position: fixed; <!-- 固定窗口在某个位置,可以跟随窗口一起动 -->
position: absolute; <!-- 绝对定位,一开始定在哪里,就是哪里了。 -->
relative+avsolute的用法:
父标签里定义一个position:relative;子标签里定义一个position:absolute; 子标签就会相对父标签定位。
bottom:20px; <!-- 离下面多远 -->
right: 20px; <!-- 离右面多远 -->
margin-top: 50px; <!-- 外边距距离上面有50像素。防止标签内容被postion那个标签挡住 -->
- background
background-image:url(‘img/1.gif‘) <!-- 背景图片,默认是如果div设置的很大,图片会重复放置 -->
background-repeat:repeat-x; <!-- 表示横向加载 -->
background-repeat:repeat-y; <!-- 表示纵向加载 -->
background-repeat:no-repeat; <!-- 表示不重复加载 -->
background-position-x:0;
background-position-y:-20px;
background-position:0 -20px;
- hover <!-- .menu:hover 表示当鼠标放在应用此样式的标签上,就会显示该属性的效果 -->
- overflow <!-- overflow: auto 如果下面图片标签的宽度超过这个标签设定的宽度就出现滚动条; overflow: hedden 超过就隐藏-->
- z-index <!--表示层级的顺序;谁的值大,谁就在上面-->
- opacity <!--透明度,只有0~1,1为不透明,0为完全透明-->
示例:输入框右边放置图标
JavaScript:
局部变量 var
基本数据类型:
数字
字符串
数组
字典
布尔值
For循环
条件语句
==
!=
===
!==
||
&&
函数的定义:
function func(){
...
}
Dom
找标签
- 直接找 $(‘#id‘) $(‘.c1‘).siblings()
- 简介找
操作:
innerText
checkbox:
checked
className
classList
事件:
<div onclick=‘函数(123)‘></div>
<script>
。。。。
</script>
定时器
setInterval(‘函数()‘, 4000)
其他:
alert()
console.log()
CSS重要的标签
position
background
text-align
margin
padding
font-size
z-index
over-flow
:hover
opacity
float (clear:both)
line-height
border
color
display
补充:页面布局
主站—
<div class=‘pg-header‘>
<div style=‘width:980px;margin:0 auto;‘>
内容自动居中
</div>
</div>
<div class=‘pg-content‘></div>
<div class=‘pg-footer‘></div>
后台管理布局:
position:
fiexd -- 永远固定在窗口的某个位置
relative -- 单独无意义
absolute -- 第一次定位,可以在指定位置,滚轮滚动时,不在了。。。。
a.
左侧菜单跟随滚动条
b.
左侧以及上不不动 ******
JavaScript
6、for循环
for(var item in [11,22,33]){
console.log(item);
continue;
}
var arra = [11,22,32,3]
for(var i=0;i<arra.lenght;i=i+1){
break;
}
while(条件){
}
7、条件语句
if(){
}else if(){
}else{
}
==
===
name=‘3‘;
switch(name){
case ‘1‘:
age = 123;
break;
case ‘2‘:
age = 456;
break;
default :
age = 777;
}
8. 函数
function func(arg){
return arg+1
}
var result = func(1)
console.log(result);
普通函数:
function func(){
}
匿名函数:
function func(arg){
return arg+1
}
setInterval("func()", 5000);
setInterval(function(){
console.log(123);
},5000)
自执行函数(创建函数并且自动执行):
function func(arg){
console.log(arg);
}
// func(1)
(function(arg){
console.log(arg);
})(1)
9、序列化
JSON.stringify() 将对象转换为字符串
JSON.parse() 将字符串转换为对象类型
10、转义
客户端(cookie) =》 服务器端
将数据经过转义后,保存在cookie
11、eval
python:
val = eval(表达式)
exec(执行代码)
JavaScript:
eval
12、时间
Date类
var d = new Date()
d.getXXX 获取
d.setXXX 设置
13、作用域
================================ 1. 以函数作为作用域 (let)================================
其他语言: 以代码块作为作用域
public void Func(){
if(1==1){
string name = ‘Java‘;
}
console.writeline(name);
}
Func()
// 报错
Python: 以函数作为作用域
情况一:
def func():
if 1==1:
name = ‘alex‘
print(name)
func()
// 成功
情况二:
def func():
if 1==1:
name = ‘alex‘
print(name)
func()
print(name)
// 报错
JavaScript: 以函数作为作用域
function func(){
if(1==1){
var name = ‘alex‘;
}
console.log(name);
}
func()
================================ 2. 函数的作用域在函数未被调用之前,已经创建 ================================
function func(){
if(1==1){
var name = ‘alex‘;
}
console.log(name);
}
================= 3. 函数的作用域存在作用域链,并且也是在被调用之前创建 ==================
示例一:
xo = "alex";
function func(){
// var xo = ‘eric‘;
function inner(){
// var xo = ‘tony‘;
console.log(xo);
}
inner()
}
func()
示例二:
xo = "alex";
function func(){
var xo = ‘eric‘;
function inner(){
console.log(xo);
}
return inner;
}
var ret = func()
ret()
示例三:
xo = "alex";
function func(){
var xo = ‘eric‘;
function inner(){
console.log(xo);
}
var xo = ‘tony‘;
return inner;
}
var ret = func()
ret()
================= 4. 函数内局部变量 声明提前 ==================
function func(){
console.log(xxoo);
}
func();
// 程序直接报错
function func(){
console.log(xxoo);
var xxoo = ‘alex‘;
}
解释过程中:var xxoo;
func();
// undefined
14、JavaScript面向对象
JavaScript面向对象
function foo(){
var xo = ‘alex‘;
}
foo()
function Foo(n){
this.name = n;
this.sayName = function(){
console.log(this.name);
}
}
var obj1 = new Foo(‘we‘);
obj1.name
obj1.sayName()
var obj2 = new Foo(‘wee‘);
obj2.name
obj2.sayName()
==============》
a. this代指对象(python self)
b. 创建对象时, new 函数()
Python的面向对象:
class Foo:
def __init__(self,name):
self.name = name
def sayName(self):
print(self.name)
obj1 = Foo(‘we‘)
obj2 = Foo(‘wee‘)
原型:
function Foo(n){
this.name = n;
}
# Foo的原型
Foo.prototype = {
‘sayName‘: function(){
console.log(this.name)
}
}
obj1 = new Foo(‘we‘);
obj1.sayName()
obj2 = new Foo(‘wee‘);
DOM
查找
直接查找
var obj = document.getElementById(‘i1‘)
间接查找
文件内容操作:
innerText 仅文本
innerHTML 全内容
value
input value获取当前标签中的值
select 获取选中的value值(selectedIndex)
textarea value获取当前标签中的值
搜索框的示例
操作:
样式操作:
className
classList
classList.add
classList.remove
obj.style.fontSize = ‘16px‘;
obj.style.backgroundColor = ‘red‘;
obj.style.color = "red"
属性操作:
attributes
getAttribute
removeAttribute
创建标签,并添加到HTML中:
a. 字符串形式
b. 对象的方式
document.createElement(‘div‘)
提交表单
任何标签通过DOM都可提交表单
document.geElementById(‘form‘).submit()
其他:
console.log()
alert
var v = confirm(信息) v:true false
location.href
location.href = "" # 重定向,跳转
location.reload() # 页面刷新
location.href = location.href < === > location.reload()
var o1 = setInterval(function(){}, 5000)
clearInterval(o1);
var o2 = setTimeout(function(){}, 50000);
clearTimeout(o2);
var obj = setInterval(function(){
}, 5000)
clearInterval(obj);
事件:
onclick,onblur,onfocus
行为 样式 结构 相分离的页面?
js css html
绑定事件两种方式:
a. 直接标签绑定 onclick=‘xxx()‘ onfocus
b. 先获取Dom对象,然后进行绑定
document.getElementById(‘xx‘).onclick
document.getElementById(‘xx‘).onfocus
this,当前触发事件的标签
a. 第一种绑定方式
<input id=‘i1‘ type=‘button‘ onclick=‘ClickOn(this)‘>
function ClickOn(self){
// self 当前点击的标签
}
b. 第二种绑定方式
<input id=‘i1‘ type=‘button‘ >
document.getElementById(‘i1‘).onclick = function(){
// this 代指当前点击的标签
}
作用域示例:
var myTrs = document.getElementsByTagName("tr");
var len = myTrs.length;
for(var i=0;i<len;i++){
// i=0,i=1,i=2
myTrs[i].onmouseover = function(){
this.style.backgroundColor = "red";
};
}
jQuery原文:http://xiaofengcanyue.blog.51cto.com/6671161/1876475