XX学Python·前端
HTML:网页结构布局
-
HTML(HyperText Mark-up Language)超文本标记语言。
-
HTML控制页面整体布局
-
书写形式用标签形式,
<标签名称> </标签名称>
, 比如:<html></html>
-
基本结构:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>网页标题</title> </head> <body> 网页显示内容 </body> </html>
-
-
VS Code(Visual Studio Code)是由微软研发的一款免费开源跨平台代码编辑器,目前是前端(网页)开发使用最多的一款软件开发工具。
-
VScode 使用: 快捷导入模版
英文!+ tab
注释ctrl+/
-
先保存再运行前端文件
1、直接进入文件所在位置打开
2、使用open in 插件
-
常用html标签
<!-- 1、成对出现的标签:-->
<h1>h1标题</h1>
<div>这是一个div块标签</div>
<p>这个一个段落标签</p>
<!-- 2、单个出现的标签: -->
<br>换行标签
<hr> 分割线标签
<img src="images/pic.jpg" alt="图片">
<video src="路径"></video>
<!-- 3、带属性的标签,如src、alt 和 href等都是属性 -->
<img src="./images/pic.jpg" alt="图片"> 建议相对路径
<a href="http://www.baidu.com">百度网</a>
<!-- 4、标签的嵌套 -->
<div>
<img src="images/pic.jpg" alt="图片">
<a href="http://www.baidu.com">百度网</a>
</div>
<!-- 5、ol标签定义有序号列表 -->
<ol>
<!-- li标签定义列表项目 -->
<li><a href="#">列表标题一</a></li>
<li><a href="#">列表标题二</a></li>
<li><a href="#">列表标题三</a></li>
</ol>
<!-- 6、ul标签定义无序号列表 -->
<ul>
<!-- li标签定义列表项目 -->
<li>列表标题一</li>
<li>列表标题二</li>
<li>列表标题三</li>
</ul>
css:网页样式
- css (Cascading Style Sheet)层叠样式表,用来美化页面的一种语言。
- css 的语法格式: 选择器
- css的三种引入方式:行内式、内嵌式、外链式
- css 选择器:用来选择标签设置样式的
- 常用css选择器:标签选择器、类选择器、id选择器、层级选择器(后代选择器)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>css use</title>
<!-- 2、内嵌式 在head标签内创建style编写样式 -->
<style>
/* (1)、使用标签选择器,直接使用标签名进行选择 */
p{
color:blueviolet
}
/* (2)、使用类选择器,使用.class属性定义名称进行选择 */
.box1{
color: blueviolet
}
.box2{color: blue;}
/* (3)、使用id选择器,使用#id属性定义名称进行选择 */
#bd_link{color:blue;}
#tb_link{color:pink}
/* (4)、使用层级选择器,注意明确每层 */
.boxppp p{color: black}
</style>
<!-- 3、使用link标签引入外链css文件 -->
<link rel="stylesheet" href="./wailian.css">
</head>
<body>
<!-- 1、行内式 在标签内使用style指定样式-->
<h1 style="color:brown">1级标题</h1>
<!-- 2、给p标签使用内嵌式 -->
<p>文本段落</p>
<!-- 3、给span标签使用外链式 -->
<span>文本行标签</span>
<!-- 选择器的使用 -->
<!-- (1)、标签选择器 直接使用标签进行选择 -->
<!-- (2)、类选择器 -->
<div class="box1">
块标签111
</div>
<div class="box2">
块标签222
</div>
<div class="box3">快标签333</div>
<!-- (3)、id选择器 -->
<a href="http://www.baidu.com" id="bd_link">百度连接</a>
<a href="http://www.taobao.com" id="tb_link">淘宝连接</a>
<!-- (4)、层级选择器 -->
<div class="boxppp">
<p>div内部的段落标签</p>
</div>
</body>
</html>
- 新建css文件wailian.css
/* css样式文件后缀为css */
/* 可在该文件编写css样式代码,在html文件head中用link标签进行引入 */
/* 使用选择器选择标签进行控制 */
/* 使用多个样式时需要用;号(英文)隔开 */
span{
color:aqua;
font-size:100px
}
.box3{color:brown}
-
css常用属性
-
布局常用样式属性
- width 设置元素(标签)的宽度,如:width:100px
- height 设置元素(标签)的高度,如:height:200px
- background 设置元素背景色或背景图片,如:background:gold; 设置元素的背景色, background: url(images/logo.png); 设置元素的背景图片
- border 设置元素四周的边框,如:border:1px solid black; 设置元素四周边框是1像素宽的黑色实线
-
文本常用样式属性
- color 设置文字颜色,如: color:red
- font-size 设置文字的大小,如:font-size:12px;
- font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗
- line-height 设置文字的行高,如:line-height:24px; 表示文字高度加上文字上下的间距是24px,也就是每一行占有的高度是24px
- text-decoration 设置文字下划线,如:text-decoration:none; 去掉文字下划线
- text-align 设置文字水平对齐方式,如text-align:center 设置文字水平居中
- text-indent 设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px
-
JavaScript:数据操作
-
JavaScript(Js)是运行在浏览器端的脚本语言,负责网页和用户的交互效果。
-
JavaScript三种使用方式:行内式、内嵌式、外链式
-
定义变量 var 变量名 = 值
-
JavaScript的注释分为单行注释(//注释内容)和多行注释(/多行注释/)
-
数据类型:
- 5种基本数据类型:
1、number 数字类型
2、string 字符串类型
3、boolean 布尔类型 true 或 false
4、undefined undefined类型,变量声明未初始化,它的值就是undefined
5、null null类型,表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为null,在页面上获取不到对象,返回的值就是null - 1种复合类型: object 后面学习的JavaScript对象属于复合类型
- 5种基本数据类型:
-
函数定义和调用
-
用关键字 function 定义函数
-
函数调用就是函数名加小括号
-
-
变量作用域
-
局部变量只能在函数内部使用
-
全局变量可以在不同函数内使用
-
-
if条件语句
-
比较运算符,值等于,=全等(值和类型),其他同python
-
逻辑运算符,&&与,||或,!非
-
-
数组,相当于python中列表,数组的定义使用一对中括号
-
获取数组的长度使用length属性
-
从数组最后添加元素使用push方法
-
从数组最后删除元素使用pop方法
-
根据下标添加和删除元素使用splice方法
-
-
循环语句:for循环,while循环
-
字符串拼接:使用+
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JS使用</title>
<!-- 2、内嵌式js -->
<script>
alert('内嵌式引入js')
// 变量使用,undefined表示该变量未定义,null表示为空,数据对象key:value
var a = 10
var b = 'python'
var c =true
var d = undefined, e = null
var f = {name:'xx', age:18}
var g = 20
// typeof判断类型后弹窗显示类型
// alert(typeof a)
// alert(typeof b)
// alert(typeof c)
// alert(typeof d)
// alert(typeof e)
// alert(typeof f)
// alert(a+g)
// alert(f.name)
// 函数定义,用function关键词.全局变量可直接在函数内使用
function add_num(num1,num2){
alert(b)
var data = num1 + num2
return data
}
// 函数执行,函数内局部变量在函数外不能直接使用,在外部定义变量接收return返回值
// var res_data = add_num(1,5)
// alert(res_data)
// if条件判断,==只要值相等,类型会进行隐式转换
function myfunc2(data){if (data==1) {
alert('条件成立')
} else {
alert('条件不成立')
}}
// === 数值和类型必须都一样
function myfunc3(data){
if (data===1) {
alert('data值为1')
} else if (data===2) {
alert('data值为2')
}else{
alert('其他数据')
}}
// myfunc3('1')
// 数组,相当于python的list
function myarrfunc(){var arrdata=[1,2,3,'a','b','c']
// alert(arrdata.length) 长度
// alert(arrdata[3]) 通过下标获得数据
// arrdata.push('xx') 写入数据,在最后哦写入数据
// alert(arrdata)
// alert(arrdata.pop()) 弹出数据,从最后一位取值从数据中删除
// alert(arrdata)
// arrdata.splice(3,2) 删除数据,从下标3开始删除2个,则删除a和b
// arrdata.splice(3,2,'xx','lsl') 删除后并替换,则把a和b替换成xx和lsl
// arrdata.splice(3,0,'xx','lsl') 删除0个,相当于插入数据,则a前插入xx和lsl
alert(arrdata)
}
// myarrfunc()
// for循环,指定循环开始起始位置、循环条件、起始数据累加,++表示每次循环加1
function myfor(){
var arr1=[1,2,'xx','lsl']
// for(var i=0;i<arr1.length;i++){alert(arr1[i])}
// while循环
i=0
while(i<arr1.length){alert(arr1[i]);i++}
}
// myfor()
// 字符串拼接,用+号拼接
var h = 'Hi,'
alert(h+b)
</script>
<!-- 3、外链引入js文件,src指定引入文件路径 -->
<script src="./wanlian.js"></script>
</head>
<body>
<!-- 1、行内式js -->
<!-- type指定按钮类型,value指定按钮名字,onclick点击事件,alert()点击后触发弹窗提示 -->
<input type="button" value="按钮1" onclick="alert('按我一下完成')">
</body>
</html>
jQuery
- jQuery是对JavaScript的封装,免费开源的JavaScript函数库,jQuery 极大地简化了 JavaScript 编程。
- jQuery的用法
- 引入jQuery
- 入口函数两种写法,获取标签元素需要在入口函数里完成
- 选择要操作标签数据
- 标签 $('标签名')
- 类选择 $('.类名')
- id $('#id名')
- 层级选择
- 方法的使用:$('标签').方法
- css() 修改标签样式
- html() 添加数据覆盖标签内的原有数据
- append() 在标签的原有数据的基础上增加数据
- prop() 标签属性数据获取修改添加
<a href='http://www.baidu.com'></a>
- click() 点击事件方法
- blur() 失去焦点方法
- val() 获取数据框数据方法
- json数据类型是对js数据对象转为字符串,在{}外加单引号,里面键值对全用双引号
<!-- 引入jQuery:本地、线上 -->
<script src="js/jquery-1.12.4.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.js"></script>jx
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Jquery使用</title>
<!-- 引入jquery方法(线上引入需要连网) -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.js"></script>
<!-- 使用Jquery的方法 -->
<script>
window.onload = function(){
// 编写jq代码,将p标签数据写入div标签,先选中div,再通过html方法写入数据
// $('div').html('<p>这是一个段落</p>')
var str1 = '第一个div'
$('.box1').html('<p>'+str1+'</p>') //写成变量的形式
}
// 简写调用jquery方法 $(function(){})
$(function(){
// 写jq方法,css方法可对选中标签进行样式控制
$('p').css({color:'red'})
// jQuery类选择器
$('.box2').html('<h2>第二个div</h2>')
// id选择器
$('#box3').html('<h3>第三个div</h3>')
// 层级选择器
$('div span').html('<span>内嵌文本行标签</span>')
// 过滤选择
// $('div')会选择所有div标签,has方法进行过滤选择包含p标签的
$('div').has('p').html('通过has方法选中div标签')
// $('div')选择所有div标签放入列表里,eq中数字是下标
$('div').eq(1).html('通过eq方法选中div标签')
// 数据写入,html方法会覆盖原有数据,append方法在原有数据后追加
// $('#box6').html('新写入的div数据')
$('#box6').append('新写入的div数据')
// 标签属性值操作,用prop(属性)方法获取属性值
var baidu_href_data=$('#baidu').prop('href')
// alert(baidu_href_data)
// 添加或修改属性值,通过键值对形式,原本有值则修改无则添加
$('#unknown').prop({href:'https://www.jd.com'})
// 用户事件处理
// 定义一个处理事件的方法
function myfunc(){alert('点击事件被触发')}
function myfunc2(){
// alert('失去焦点事件被触发')
// val方法获取input标签输入框中的数据
var text_data=$('.inp2').val()
alert(text_data)}
// 选择要触发事件标签,input标签被点击时执行myfunc方法
$('.inp1').click(myfunc) // click()鼠标单击事件
// 失去焦点事件
$('.inp2').blur(myfunc2) // blur()失去焦点事件
// js数据对象,类似于字典(key有没有引号都行),数据对象里面可定义函数
var a = {name:'xx',age:18,myfunc3:function(){alert('myfunc3被执行')}}
// a.myfunc3()
// key存在就修改,不存在就添加
a.name='lsl'
a.gender='boy'
// alert(a.name)
// alert(a.gender)
// json数据类型是对js数据对象转为字符串,在{}外加单引号,里面键值对全用双引号
// 可将python字典转为json字符串给前端用,外{}不加单引号即python字典或js数据对象了
var bob = '{"name":"B","age":18,"hobby":["reading","travel"],"school":{"name":"BK College","location":"CN"}}'
var bob_boj=JSON.parse(bob)
alert(bob_boj.hobby)
alert(bob_boj.school.name)
})
</script>
</head>
<body>
<div class="box1"></div>
<p>段落标签</p>
<!-- jQuery选择器 -->
<div class="box2"></div>
<div id="box3"></div>
<div>
<span>文本行标签</span>
</div>
<div>
<p>段落标签</p>
</div>
<!-- 数据写入 -->
<div id="box6">
原始div数据
</div>
<!-- 标签属性值操作 -->
<a id="baidu" href="https://www.baidu.com">百度连接</a>
<a href="" id="unknown">新写入确定</a>
<!-- 事件处理 -->
<!-- 按钮触发点击事件 -->
<input type="button" value="按钮1" class="inp1">
<!-- 输入框触发失去焦点事件 -->
<input type="text" class="inp2">
</body>
</html>
Ajax
-
ajax 是发送http请求获取后台服务器数据的方法
-
jquery将它封装成了一个方法$.ajax(),可直接用这个方法来执行ajax请求
-
ajax的简写方式可以使用
$.get
和$.post
方法来完成 -
简格式:$.get(网址,function(){ 处理成功的结果} ).error(function(){处理请求失败的业务})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ajax请求三方服务获取数据</title>
<!-- 引入jquery方法(线上引入需要连网) -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.js"></script>
<script>
// 使用jquery方法
$(function(){
// 发送get请求,第一个参数是请求网址,第二个是处理请求成功的方法
$.get('http://api-toutiao-web.itheima.net/app/v1_1/articles?timestamp=1556789000002&channel_id=0&with_top=1',function(response,status){
// response是返回数据内容,status是返回状态码。输出终端打印,在浏览器console中显示
console.log('输出终端')
console.log(response)
console.log(status)
// js数据对象response = {...,data:{...,results:[{title:...,aut_id:...,...},{...}...,{...}]}}
console.log('从返回结果中取值')
console.log(response.data.results)
var data_arr = response.data.results // 得到一个包含数据对象的数组
// 遍历数组数据得到每一个数据对象
for(var index=0;index<data_arr.length;index++){
data_arr[index]
// 取出数据对象的title值赋给一个变量
var title = data_arr[index].title
var aut_name = data_arr[index].aut_name
// 将取出的title值写入页面
$('ul').append('<li>'+title+'--'+aut_name+'</li>')
}
}).error(function(data){
// 若请求失败执行error方法中业务
console.log(data)
})
})
</script>
</head>
<body>
<!-- 无序号列表展示 -->
<ul>
</ul>
</body>
</html>