《给后端工程师的前端开发课程》笔记

这篇教程涵盖了前端开发的基础知识,包括HTML标签、CSS样式和JavaScript语法。讲解了块级元素与行内元素的区别,DOM操作以及事件处理。还介绍了jQuery库的使用和AJAX异步通信的概念,强调了DOM加载时机以及CSS3的新特性,如动画和布局。
摘要由CSDN通过智能技术生成

image-20221024195653664

ASP.Net服务器控件

image-20221024195729623

给后端工程师的前端开发课程

HTML和CSS工作模式

前端工作模式:BS

HTML5基础标签学习

p:定义一个段落(paragraph)

a:超链接
img:图片

div:块元素

​ 我们每定义的一个div实际上是没有效果的,只不过是是我们当前定义了一个容器。他里面可以放置任何元素

​ 块级元素,默认情况下宽度占100%,高度根据div内部的元素的设计而进行自动的扩展。

span:行内元素

​ 行内元素,与div正好相反

​ 默认情况下定义的就是一个流式的布局。宽度根据div内部的元素的设计而进行自动的扩展,高度按照内部元素设计进行的一个自适应。(宽和高都是自适应)

form:表单

输入选项 下拉框 登录按钮等。。。

table:表格

b:粗体显示
h1/h2/h3/h4/h5/h6:标题元素

input:表单元素
ul:列表元素(ol)

Block块元素vs lnline行内元素

Box model盒子模型

  • Block块元素,宽度默认100%
  • Inline行内元素,宽度按实际元素宽度(类似于一种追加的形式在后面显示)

Tag Attribute标签属性

<a href="/index.html" target="_blank" style="color: red; ">Home</a>

·不同的标签拥有不同的属性
·有很多属性是所有标签共有的,比如: id / class / style /title等等

单标签和双标签

<!-―双标签,开始和结束标签-->
<a href=" /index.html" target="_blank" style="color: red; ">Home</a>
<!--单标签-->
<img src=" logo.png" alt=" logo"/>

Demo

image-20221024195749926

image-20221024195817360

标签定义 HTML 表格

一个 HTML 表格包括

元素,一个或多个 、元素。
以及

元素定义**表格行(row)**, 元素定义**表头(head)**, 元素定义表格单元,里面放真正的数据。

更复杂的 HTML 表格也可能包括 、、、、 以及 元素。

ul

<ul>
    <li>Coffee</li>
    <li>Tea</li>
    <li>Milk</li>
</ul>
  • 标签定义无序列表。

  • 标签与
  • 标签一起使用,创建无序列表

**提示:**使用 CSS 为列表定义样式。

**提示:**使用标签创建有序列表。

form

<form action="/users" method="get">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="提交">
</form>
<form> 标签用于创建供用户输入的 HTML 表单。
<form> 元素包含一个或多个如下的表单元素:
<input>
<textarea>
<button>
<select>
<option>
<optgroup>
<fieldset>
<label>

form 标签是表单标签

action 属性设置提交的**服务器地址**

method 属性设置提交的方式 GET(默认值)或 POST

表单提交的时候数据没有发送给服务器的三种情况

1、表单项没有 name 属性值

2、单选、复选(下拉列表中的 option 标签)都需要添加 value 属性,以便发送给服务器

3、表单项不在提交的 form 标签中

**GET 请求**的特点是:

1、浏览器地址栏中的地址是:action 属性[+?+请求参数]

请求参数的格式是:name=value&name=value

2、不安全

3、它有数据长度的限制

**POST 请求**的特点是:

1、浏览器地址栏中只有 action 属性值

2、相对于 GET 请求要安全

3、理论上没有数据长度的限制(其提交的数据不通过url参数走)

input

<form action="/users">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="提交">
</form>

标签规定了用户可以在其中输入数据的输入字段。

元素在 元素中使用,用来声明允许用户输入数据的 input 控件。

输入字段可通过多种方式改变,取决于 type 属性
button
checkbox
color
date
datetime
datetime-local
email
file
hidden
image
month
number
password
radio
range
reset
search
submit
tel
text
time
url
week

注意: 元素是空的,它只包含标签属性。
【提示: 你可以使用 。】

关于DOCTYPE

当前文档所遵循的HTML标准和版本

调试

Firebug & Chrome Dev Tools

调试HTML Document
调试CSS和即时编辑

网络资源调试
HTTP Request/Response

性能分析
etc

HTML DOM和CSS3基础学习

HTML DOM

我们知道的HTML代码是一个树形结构。

DOM (Document Object Model) 译为文档对象模型,是 HTML 和 XML 文档的编程接口。

HTML DOM 定义了访问和操作 HTML 文档的标准方法

DOM **以树结构**表达 HTML 文档。

image-20221024195842979

Javascript DOM操作

Javascript对HTML DOM的操作(实操)

Javascript对XML的操作

document.getElementByTags('a')
document.getElementsByClassName('row')
etc.

HTML DOM加载机制和事件

①DOMContentLoaded
②load

DOMContentLoaded 和 window.onload 的区别

​ 当页面完全加载完毕后会触发 window.onload 事件,我们知道可以利用 window.onload 事件来触发并执行需要页面完全加载完毕后才能执行的 javascript 脚本,但是假如页面包含很多样式文件、图片文件、子框架页面(iframe)的话,onload 事件也会被相应延迟到这些文件加载完成才执行,有时候并不是我们所需要的,例如我们想知道页面从接受完毕到 dom 树解析完成所需要的时间,那么 onload 事件则不适合了。

​ 这个时候 DOMContentLoaded 就出场了,它定义为: 当页面文档加载并解析完毕之后会马上出发 DOMContentLoaded 事件,而不会等待样式文件、图片文件和子框架页面的加载。

image-20221024195900413

CSS3基础

cSS选择器定义

by class,比如: **.**row. [公共类]

by id,比如: **#**wrapper [唯一]

by tag name,比如: a
style属性,比如: style=“color: red;”
高级选择器冒号":",比如: a:hover, li:last-child

层级选择:比如 div#wrapper a { …}

通用属性:比如 div, p { …}

demo

image-20221024195915133

ul li :last-child 父子结构加上特定属性限定

image-20221024195935738

样式是可以继承的

Block块元素vs lnline行内元素

Box model盒子模型

  • Block块元素,宽度默认100%
  • Inline行内元素,宽度按实际元素宽度(类似于一种追加的形式在后面显示)
块元素

divp

table

ul
form
h1/h2/h3/h4/h5/h6

etc

行内元素

a
. img

span
. b/i/u/strong/em

button
input
etc

cSS3页面布局

流式布局: float

位置定位: position

float属性
left
right

demo

image-20221024195947249

clear属性

清除浮动,另起一行

left
right

both

.new_row{
    clear: both;
}

image-20221024200000443

position属性

static(静态定位):块级元素垂直堆叠

relative (相对定位):真正的用途:可以为 “后代元素” 创造 “定位上下文” ;相对其 “原始位置” 控制该元素的 “偏移量”,同时不影响周围其他的元素。

absolute(绝对定位):相对其最近的 “定位上下文” || “非static定位的‘祖先元素’” || “html元素”,进行定位 。会脱离文档流

fixed(固定定位):其“定位上下文”被自动设置为浏览器视口脱离文档流

  1. 应用场景:

    “绝对定位”–>非常适合 “创建弹出层”,“提示”,“对话框”,这类覆盖于其他内容之上的组件。

​ 场景:利用偏移实现自动大小,relative + absolute 实现, 前者生成 “定位上下文”, 后者加上 top bottom left right 这些偏移量的控制,设置其中3个 自动控制剩余的1个。

.photo-header {
      position: relative;
 }

.photo-header-plate {
      position: absolute;
      right: 4em;
      bottom: 4em;
      left: 4em;
 }
//如果absolute的父节点是relative定位的话,那么其定位参考点就是其父节点的位置;如果父节点不是relative的话,那么其定位参考点就是当前整个浏览器窗口的定位
<header class="photo-header">
    <div class="photo-header-plate"></div>
</header>

display属性

block
inline
inline-block

none
etc.

可以实现块级元素和行级元素的互转

其他属性

color

font-size

font-weight

border

background

border-radius

box-shadow

transform 实现动画效果

visibility
· etc.

display vs visibility

都可以使元素不可见

. display: 为none时会从文本流中去除(并不参与页面布局的计算)
. visibility: 为hidden时仍旧参与文本流布局,只是视觉不可见

JavaScript入门

运行环境

①浏览器

浏览器: Chrome Dev Tools & Firebug

②服务器端: v8, spidermonkey etc.

采用node.js

版本

ECMAScript规范

​ . JavaScript 5
​ ECMAScript 2015: JavaScript 6

JavaScript是OOP吗?

数据类型学习

image-20221024200027014

image-20221024200107453

js中是没有hash和字典的概念的

image-20221024200117335

什么是false

null
undefined

false

变量声明

var
局部变量和外部作用域变量

image-20221024200126748

变量命名

驼峰式命名
var helloWorld = “hello world”;

function showAlert() { …}

条件控制

if(true) { · . · else { .· }

Boolean表达式

&&
ll
!

循环和遍历

for (var x= 0;x++;x <10 ){
}

条件控制

switch ( a) {
case 1:
        break;
default:
}

function返回值

function counter(x){
return x**x;
}
counter ( 2 );

object

var user = {
name : "hello",
age: 18
}
console.log ( user.name ) ;
console.log ( user['age'] );

Function其他

var showAlert = function ( name ) {
console.log ( name ) ;
}
showAlert( ' 343');

Closure闭包

var showAlert = function ( name ) {
name = name + ""+"world" ;
return function (index) {
console.log (index +"" + name ) ;}
}
var error = showAlert ('hello'); //返回一个函数  内部保留了其上下文的作用域(即为可以读到showAlert函数中name的值的)
error(1);
//结果:1helloworld

Closure闭包

( function( ){
var a = 1 ;
console.log (a) ;
})(); 
//如果我们在当前页面中定义一些独立只属于它自己的操作的话,我们就可以采用这种方式(作用域和继承的问题)

JavaScript DOM操作

DOM操作

DOM节点(网页中的一个标签)查询
DOM节点标签属性增加、删除、修改

DOM节点增加、删除、修改
浏览器事件的操作
etc.

//查询
document.getElementByTags ('a');
document.getElementsByClassName ('row') ;

Event事件

click
mouseover

mousemove

focus 聚焦
blur

touch

etc

jQuery和AJAX学习

jQuery入门

jQuery介绍

jQuery 是一个 JavaScript 库

jQuery 极大地简化了 JavaScript 编程。

jQuery 很容易学习。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title> 
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("p").click(function(){
    $(this).hide();
  });
});
</script>
</head>
<body>
<p>如果你点我,我就会消失。</p>
<p>继续点我!</p>
<p>接着点我!</p>
</body>
</html>
DOM节点选择
$ ( 'p' );
$ ( '.row ' ) ;
$ ( '#wrapper ' ) ;
$ ( '.row : last' ) ;
$ ( 'input [ name="username" ]' );

通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行"操作"(actions)。

jQuery 语法

jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。

基础语法: $(selector).action()

  • 美元符号定义 jQuery
  • 选择符(selector)“查询"和"查找” HTML 元素
  • jQuery 的 action() 执行对元素的操作

实例:

  • $(this).hide() - 隐藏当前元素

  • $(“p”).hide() - 隐藏所有

    元素

  • $(“p.test”).hide() - 隐藏所有 class=“test” 的

    元素

  • $(“#test”).hide() - 隐藏 id=“test” 的元素


    jQuery 入口函数:

$(document).ready(function(){
    // 执行代码
});
或者
$(function(){
    // 执行代码
});

JavaScript 入口函数:

window.onload = function () {
    // 执行代码
}

jQuery 入口函数与 JavaScript 入口函数的区别

  • jQuery 的入口函数是**在 html 所有标签(DOM)都加载之后**,就会去执行。
  • JavaScript 的 window.onload 事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行。

image-20221024200151645

DOM节点维护
  • $(this).hide() - 隐藏当前元素
  • $(“p”).hide() - 隐藏所有

    元素

  • $(“p.test”).hide() - 隐藏所有 class=“test” 的

    元素

  • $(“#test”).hide() - 隐藏 id=“test” 的元素
jQuery对象!=DOM对象
var wrapper = $('#wrapper') ;
var wrapper2 = document.getElementById('wrapper');
wrapper ==wrapper2 //false
wrapper.get(0)== wrapper2 //true
jQuery是基于DOM实现的
DOM属性操作
$ ('#wrapper').adddClass ('theme') ;  //对元素进行的修改是会实时的反馈到页面上的
$('#wrapper').removeClass ('theme') ;
$ ('#wrapper').attr('class') ; //放回属性的值
$ ('#wrapper').attr('custom-attr' , 'attr_value') ; //设置属性的值
$ ('a').attr ('href') ;
Event
$ ( '#wrapper ' ).click ( function( ) {
console.log ( 'wrapper clicked ' );})

// same as
$ ( '#wrapper ' ).on ( 'click' , function ( ) {
console.log ( 'wrapper clicked ' ) ;
})
自定义事件
$ ('#wrapper').on ('custom-event-name', function(e){
console.log ('custom event triggered') ;
});

$ ('#wrapper').trigger ('custom-event-name') ;  //触发(需要手动去触发)
自定义事件-动态元素
$ ( document ).on ( 'click', '#wrapper', function( e){
console.log ( 'custom event triggered ' );
});

因为有些时候我们的一部分js代码是在打开页面的时候没有出来的,他需要用户执行相关的操作之后才会出现。那么这个时候如果我们想要的是在用户执行特定的操作之后我们才会去触发的事件的话,就采用动态元素。

Animate动画
$('#wrapper').animate ( {
height: 300,
opacity: 0.2})

AJAX介绍

AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

AJAX = Asynchronous JavaScript and XML.

AJAX 是一种用于创建快速动态网页的技术。

AJAX 通过在后台与服务器进行少量数据交换,使网页实现异步更新(不会堵塞原页面)。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个页面。

有很多使用 AJAX 的应用程序案例:Google Maps、Gmail、Youtube 和 Facebook。

页面交互

同步:a链接请求

异步:AJAX
页面体验和性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值