当前位置: 首页 > news >正文

Web网页之前端三剑客汇总篇(基础版)

 一、HTML基础

1.html组成元素

html由head 和body两部分组成

标题标签
<h1></h1>
<h1></h6>段落标签
<p></p>
换行标签
<br> break文本格式化标签
加粗: <b></b><strong></strong>斜体:  <em></em><i></i>下划线:  <ins></ins><u></u>删除线:  <del></del><s></s><div></div>
<span></span>
没有语义,就像是一个盒子,用来装内容,布局网页
区别:  <div>的内容,独占一行,是个大盒子
<span>,一行可以有多个的小盒子

2.html常用标签和属性

图像标签

图像标签:
属性:属于这个标签的特性就叫属性
<img src="">
src: 图片路径 必须属性
alt: 文本 图像不能显示的时候显示alt里面文字
title: 文本 鼠标放到图像上,显示文字
width: 像素 设置图像的宽度
height: 像素 设置图像的高度
border: 像素 设置图像边框粗细注意:
一个标签可以添加多个属性
属性之间不分先后的顺序
属性和属性之间必须用空格隔开

相对路径和绝对路径

路径:
目录文件夹
根目录相对路径:
HTML---video
同一级路径:.
下一级路径:/
上一级路径:..绝对路径:
指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径D:\work\code\html

超链接标签

 超链接标签    <a></a>    外部链接:    必须属性:href: 用于指定链接目标的url地址    target: 用于指定链接页面打开的方式,其中_self为默认值,_blank在新窗口打开 内部链接:<a href=index1.html>首页</a>
下载链接:<a href=.zip>文件</a>
网页元素链接:
锚点链接:
通过点击链接,可以快速定位到页面中的某个位置
<a href="#life">早年经历</a>
<h3 id="life">早年经历</h3>

注释及特殊字符

注释:需要在html文档中添加一些便于阅读和理解,但又不需要显示在页面中的文字,就需要用注释标签<!--注释内容-->特殊字符:
空格:&nbsp;
<:&lt;
>:&gt;

表格标签

作用:用于显示和展示数据

表格的基本语法如下:

合并单元格  

跨行合并: rowspan="合并单元格个数"

跨列合并:colspan=“合并单元格的个数”

跨行:最上层单元格为目标单元格,写合并代码

跨列:最左层单元格为目标单元格,写合并代码

合并单元格三部曲: 1.先确定单元格是跨行还是跨列

                                  2.找到目标单元格,写上合方式

                                  3.写上多余的单元格

列表标签

无需列表、有序列表、自定义列表

无需列表
  <ul>
    <li>列表1</li>
    <li>列表2</li>
    <li>列表3</li>
  </ul>

有序列表

  <ol>
    <li>列表1</li>
    <li>列表2</li>
    <li>列表3</li>
  </ol>

自定义列表:常用于对术语或名词进行解释和描述
<dl> 用于定义列表
<dt> 用于定义项目或名字
<dd> 描述<dt>定义的项目/名字  

注意:<dl>里面只包含<dt>和<dd>,一个<dt>对应多个<dd>

表单标签

表达组成:表单域  表单元素  提示信息

表单域: 包含表单元的区域

  <form action="url地址" method="get/post" name="表单域名称">     

表单元素:   <input type=" ">

type 属性及描述

text:  用户可在其中输入文本           

password:   定义密码字段

radio:定义单选按钮

checkbox:定义多选按钮

file:选择上传文件

submit:提交按钮,将表单的数据发送到服务器

button: 定义和点击按钮        (发生验证码)

reset: 重置form表单

name属性:当前input表单名字,后台通过name属性找到这个表单,页面中表单很多,name主要作用是区别于不同表单

maxlength属性   :最大长度

value属性:标签对应的值

checked: 此input元素被加载时选中的值

<label>标签: 用于绑定一个表单元素,当点击label标签内的文本时,浏览器会自动聚焦在浏览器的表单元素上,用来增强用户体验

<select>标签:下拉表单,包含option选项,若需要进入默认选中,可使用 checked选项

<textarea>标签: 通过rows和colsz属性限制文本框大小

二、CSS基础 

1.css 样式定义方式

行内样式表  

内部样式表   

外部样式表   

通过<link>的href属性快速定位css属性

2.选择器分类

选择器只是选择父标签下的子标签,不包括div块状元素

标签选择器

id选择器:相对于第一个选择器,可以实现精准的改变

类选择器

id是唯一的,而类可以定义多个标签为同一类

伪类选择器

:hover 鼠标悬停后的样式

:link   链接访问前的样式

:visited  链接访问后的样式

:focus  聚焦后的样式

位置伪类选择器

:nth-child(n)   n=0.1.2.3.4    2n+1=1.3.5.7.9

这里的n也可以写成odd偶数 even是奇数

目标伪类选择器

:target 类似于html中的锚点跳转

复合选择器

element,element2         同时选中element1和element2元素

element.class                选择包含某类的element元素

element1+element2       紧跟着element1的element2元素

element1>element2       选择父标签是element1的所有element2元素

element1  element2        选择element1内所有的element2元素

通配符选择器

*   选择所有的标签

[ :attribute ]   选择具有某个属性的所有标签

[ attribute=value ]   选择具有某个属性的标签

伪元素选择器

::first-letter:  选择第一个元素

::first-line         选择第一行

::selection        选择已被选择的内容

::after                选择在元素前插入内容

::before               选择在元素后插入内容

颜色使用

预定义颜色值    red   black

16进制表示法: #ADD8E6  红(0-255)   绿(0-255)   蓝(0-255)

RGB  rgb(173,216,230)             rgba(173,216,230,0.5) 

3.样式风格处理

文本处理       

text-align: center;

px:设备上的像素点,默认是16px

em: 相对于元素的字体大小,可以继承

 %:   相对于父元素的百分比

vw:   相对视窗宽度的百分比      vh: 相对于视窗高度的百分比

letter-spacing:字符(字母/汉字)间距的属性

text-indent: 2em;   段首缩进

text-decoration: underline dotted red:下划线

text-shadow: 5px 5px 2px grey:阴影

字体处理

font-size、font-style、font-weight

背景处理

background-color 、backbround-image、background-size、background-repeat、background-position

渐变色:background-color:       linear-gradient

边框处理

边框样式

border-style: dashed | inset  |solid dotted  

边框宽度

border-width: 10px

边框颜色

border-color brown red blue

边框圆角

border-radius:   10px

table表格格式处理

4.元素展示格式

div  与 span 展示

独占一行: width height   margin  padding可控制

可以共占一行: width height margin padding 不可控制

span---->div 格式独占一行

div---->span 格式共占一行

div标签换行

white-space:    pre           换行显示

white-space:    nowrap    不换行显示

超出部分显示滚轮

overflow    :scroll    |   hidden  | auto

5.盒子模型之内外边距分析

margin 对外边距进行处理                   padding 对内边距进行处理

外边距margin分析

上下边距同时增大,以最大边距为主要边距

左右边距取叠加之后边距

内边距padding分析

设置了内边距,面积会增大,width=content+border+padding

盒子模型

box-sizing属性: 

content-box:  设置了border和padding会增加元素宽高

border-box:不会变大盒子,盒子内容面积变小了

position位置

position属性

static :设置了只能整体水平进行移动,默认

relative: 相对盒子的一个边框移动

absolute:   以非static的块为基准,没找到非static的块会继续向上去找

2盒子为非静态static,所以3盒子移动上去

fixed固定位置

特性:鼠标滚动,它的位置不变,整个屏幕为基准

sticky

float浮动

浮动元素,脱离文档流,空间释放

浮动存在问题

1.元素无法进行换行而是也被浮起,需要清除浮动

2.父级坍塌:当存在的元素块在未浮动时,父盒子长度未指定但是由chid子盒子的长度作为支撑,那么当子盒子设置浮动之后,父盒子就会因为浮动而消失,那么父盒子就会被子盒子所覆盖

解决措施:使用clear: both

display:flex模式属性

三、Javascript基础

1.js变量和概念

概念+作用+组成

概念:js是一种运行在客户浏览器编程语言,目的就是一个人机交互

作用:网页特效(监听用户的一些行为让网站做出对应的反馈)、表单验证(针对表达数据的合法性进行判断)、数据交互(获得后端数据,渲染给前端)

组成:Javascript语言基础   WebAPIs   (DOM,BOM)

DOM:对页面元素进行移动,大小,添加,删除等操作

BOM:  页面弹窗,检测页面宽度、存储数据到浏览器

js 书写和注释

>>         行内式、内嵌式、外联式

js注释

单行注释 //   快捷键ctrl + /    // 后面的一行代码会被忽视

多行注释/* 注释内容 */      快捷键: shift+alt+a

js结束符: 可写可不写

输入和输出语法

输出常用方法

浏览器输出document.write('hello')提醒标签alert('要出的内容:')控制台输出console.log('hello!!!')

输入常用方法

    prompt('您的名字:')

变量和常量

变量:计算机存储数据的容器

  <script>let age = 18;let sex;sex= 'boy'document.write(age)</script>

 需求1:浏览器弹出对话框:请输入姓名,在浏览器显示你输入的内容

  <script>let uname = prompt('请输入姓名:')document.write(uname)</script>

需求2:有两个变量,num1放的是10,num2放的是20,交换num1和num2

  <script>let num1 =10 let num2 =20let temptemp=num1num1=num2num2=tempconsole.log(num1,num2)</script>

变量: 计算机存储数据的容器        =  赋值

变量的本质

变量命名规则和规范:  1.不能用关键字命名

                                      2.只能用字母、数字、下划线、$组成,且数字不能开头              

                                      3.字母严格区分大小写

规范: 起名要有意义、遵循小驼峰命名法、后面每个单词首字母大写

数组:按顺序保存多个数据

<script>let arr=['z3','li4','赵六']document.write(arr)document.write(arr[1])
</script>

常量

  <script>const pi=3.14pi=5.21console.log(pi);</script>

数据类型

检测数据类型:typeof( variable )

运算符

a.算术运算符:加减乘除(+ - * /),取模%

b.赋值运算符:= 将等号右边的值赋值给左边,左边必须是个容器 +=、-=、*=、/=  (例如num+=1    num =num+1)

c.自增运算符:让变量加1 ++    让变量减1 -- 

 前置++  先增加,在运算     后置++   先运算 ,后增加

d.比较运算符   a=b(赋值)   a==b(值相等)   a===b(值和类型都相等)   !=(不相等)   !==(不全等)

e.逻辑运算符   ||、 &&、 !,数字0和null都为false,其余都为true

强制类型转换

prompt接收到数据默认是字符串

其中一个是字符串型,另一个数字型也会被转换成字符串型

碰到减号,乘号,除号,系统会默认转成数字型

let num1 = +prompt('请输入上半月工资:')let num2 = +prompt('请输入下半月工资:')console.log(num1+num2);

模版字符串

  <script>let age = 18document.write('我今年' + age + '岁')document.write(`我今年 ${age}岁`)</script>

2.流程控制语句

 分支语句

能被4整除但不能被100整除,或者能被400整除是闰年,否则是平年

  <script>let year = +prompt('请输入年份:')if (year % 4 === 0 && year % 1000 !== 0 || year % 400 === 0) {alert('year is 闰年')} else {alert('year is 平年')}</script>
多条件判断语法
if(条件1){代码1
} else if (条件2){代码2
} else if (条件3){代码3
}else{代码4
}
三元运算符语法
5>3 ? alert('第一个'):alert('第二个')
比较两个数的最大值
  <script>let num1 = prompt('请输入数字1:')let num2 = prompt('请输入数字2:')let res=num1>num2?num1:num2alert(res)</script>
switch语句

计算器案例

  <script>let num1 = +prompt('请输入数字1:')let num2 = +prompt('请输入数字2:')let sp = prompt('请输入+-/*运算')switch (sp) {case '+':alert(`您选择的是加法,结果是 ${num1 + num2}`)breakcase '-':alert(`您选择的是减法,结果是 ${num1 - num2}`)breakcase '*':alert(`您选择的是乘法,结果是 ${num1 * num2}`)breakcase '/':alert(`您选择的是除法,结果是 ${num1 / num2}`)breakdefault:alert('输入有误,请重新输入')}</script>
</body>

循环语句

while循环
while(循环条件){重复执行的代码(循环体)
}

需要具备条件:变量起始值、终止条件

## 求前100的数
<script>let i = 1while (i <= 100) {document.write('我会循环<br>')document.writeln(`这是第${i}个数`)i++}
</script>## 求1~100的和
<script>let i = 1while (i <= 100) {sum+=ii++}console.log(sum)
</script>## 求1~100偶数和
<script>let sum=0let i=1while(i<=100){if(i%2===0){sum+=i}i++}console.log(sum);
</script>

continue: 结束本次循环继续下次循环             break:    跳出循环,不循环了

## break 语句
<script>let sum=0let i=1while(i<=100){if(i===3){break}sum+=ii++}console.log(sum);</script>## continue语句<script>let sum=0let i=1while(i<=100){if(i===3){i++continue}sum+=ii++}console.log(sum);</script>
for循环
for(声明记录循环的次数的变量;循环条件;变化值){循环体
}
<script>for (let i = 1; i <= 10; i++) {document.write('hello<br/>')}
</script>
<script>for (let i = 1; i <= 5; i++) {for (let j = 1; j <= 5; j++) {document.write('♥(ˆ◡ˆԅ)')}document.write('<br>')}
</script>

练习:打印倒三角

3.数组使用和表示

数组使用

遍历打印数组

<script>let num = [10, 20, 30, 40]for (let i = 1; i < num.length; i++) {document.write(num[i - 1])}
</script>

求数组[2,5,8,4,9]  所有元素及平均数

<script>let num = [10, 20, 30, 40]for (let i = 0; i < num.length; i++) {sum+=arr[i]}avg = sum/num.lengthconsole.log(avg);
</script>

求数组{2,5,8,4,9}里面所有元素的最大值

<script>let num = [2,5,8,4,9]let max = num[0]for (let i = 0; i < num.length; i++) {if(max<arr[i]){max=arr[i]}}console.log(max);
</script>

数组常用的属性

## 添加一个元素
arr.push()## 删除最后一个元素
arr.pop() ## 从start索引开始删除,删除number个元素
arr.splice(start,number)## 修改数组元素
arr[0]="halo"

练习: 将[ 1,3,5,7,8,9,11]中大于10的数存入到一个新数组

<script>let arr=[1,3,5,7,8,9,11]let newarr=[]for(let i=0;i<arr.length;i++){if(arr[i]>=10){newarr.push(arr[i])}}console.log(newarr)
</script>

4.函数的调用

函数:被设计为执行特定任务的代码块

function 函数名(){函数体
}

函数调用使用示例

<script>function getsum() {let num1 = +prompt('请输入第一个数:')let num2 = +prompt('请输入第二个数:')console.log(num1 + num2);}getsum()
</script>

函数参数的传递

level 1:
function getsum(end) {    // end 形参for(let i=1;i<=end;i++) {sum+=i}console.log(sum)}
getsum(200)//实际参数level 2:
<script>function getsum(start,end) {for(let i=start;i<=end;i++) {sum+=i}console.log(sum)}getsum(100,200)</script>

练习: 学生的分数是一个数组,计算每个学生的总分

 <script>function getscore(arr) {let sum=0for(let i=0;i<arr.length;i++) {sum+=i}document.write(sum)}getscore([99,98,96])getscore([100,100,100])</script>

函数值的返回

## level1 求和
<script>function getsum(x,y) {return x+y}let sum=getsum(10,20)document.write(sum)</script>## level 2   求最大值<script>function getMax(x,y) {return x>y?x:y}let sum=getsum(10,20)document.write(x)</script>## level 3  数组求和
<script>function getArrValue(arr=[]) {let max=arr[0]for(let i=0;i<arr.length;i++){if(max<arr[i]){max=arr[i]}}return max}let sum=getArrValue([1,3,5,7,9])document.write(sum)
</script>

函数的全局变量和局部变量

局部变量:作用于函数内的代码环境

全局变量:作用于所有代码执行环境(整个script标签内部)

全局变量
<script>let num=10console.log(num)   //10function fn(){console.log(num) //10}
</script>局部变量
<script>console.log(num)  //报错function fn(){let num=10console.log(num)  //10}
</script>

5.类和对象

对象: 属性(特征)  +  方法(行为)

手机:属性(颜色、品牌)          方法:打电话、看视频

对象的定义和访问

let 对象名={属性名:属性值方法名:函数
}<script>let person={uname:'hxd',        // 对象属性age:18,sex:'boy',sayhi:function(){           // 对象行为document.write('hello')}
}console.log(person.age);person.sayhi()
</script>

对象的增删改查

<script>let person={uname:'hxd',age:18,sex:'boy',sayhi:function(){document.write('hello')}
}console.log(person.age);    // 查delete person.sex           // 删person.sex='男'           //增和改</script>

对象的遍历

<script>let person={uname:'hxd',age:18,sex:'boy',sayhi:function(){document.write('hello')}
}for(let k in person){console.log(k);  // 属性名console.log(person[k]);   //属性值}
</script>

对象的数组存放

<script>let students=[{name:'xiaoming',age:18,gender:'男'},{name:'xiaohong',age:18,gender:'女'},{name:'xiaobai',age:18,gender:'男'},]for(let i=0;i<students.length;i++){console.log(students[i].name);}</script>

类的定义和使用

类:抽取对象的共用属性和行为封装成一个类(模版)

将类实例化之后,就成了对象

class name{

        class body

}

var xx = new name()                    //   xx就是一个对象

constructor构造对象,用于传递参数,通过new命令生成对象实例时,自动调用该方法

<script>class teach{constructor(uname,age){this.uname=unamethis.age=age}say(){console.log('hello');}}var teacher=new teach('hxd',18)teacher.say()</script>

 类的继承

<script>class Father{constructor(){}money(){console.log(100);}}class son extends son(){}var son =  new son();son.money()</script>

子类调用父类的属性和方法

   class Father{constructor(x,y){this.x=x;this.y=y}sum(){console.log(this.x+this.y)}}class son extends Father(){constructor(x,y){super(x,y)}}var son =  new son(1,2);son.money()

6.DOM概念和使用

DOM对标签引用

通过DOM接口表示网页的内容,结构,样式

根据id获取 :   document.getElementById()

根据标签获取: document.getElementsByClassName()

根据类名获取:    document.getElementsByTagName()

DOM改变标签的行为

事件源:如何触发的

时间处理程序:它要做什么事,通过一个函数来完成

  <body><button id="btn">111</button><script>var btn = document.getElementById('btn')btn.onclick = function () {alert('111')}</script></body>
触发按钮修改div
<body><button id="btn">111</button><div>事件</div><script>var btn=document.querySelector('button')var div=document.querySelector('div')btn.onclick=function() {div.innerHTML='<b>2025-11-9</b>'}</script>
</body>
通过css样式获取标签

修改标签的样式

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 200px;height: 200px;background-color: pink;}</style>
</head><body><button id="btn">111</button><div>事件</div><script>// 获取元素var div = document.querySelector('div')// 注册时间,处理程序div.onclick=function(){this.style.backgroundColor=bluethis.style.width='300px';}</script></body>
</html>

删除父标签下的子标签

添加标签样式

创建一个新元素(自定义标签追加新元素)

JSON格式转换
json 
json{"name":"Tom","age":20,"gender":"male"
}
对象转换: JSON
在网络中进行数据传输    xml     json     xxe漏洞
JSON转换成对象    parse()  var obj=json.parse(json)    obj.namestringfy()

7.BOM (内置对象)

window、screen、history、location

alert (): window.alert()   window.console.log()

navigator.useragent

计时器分类

setInterval():   每3秒执行一次,按照指定周期调用函数

<script>var i = 0setInterval(function () {i++console.log('定时器执行了' + i + '次');}, 3000)
</script>

settimeout():   3秒之后执行一次  延时函数

cookie                  session                  token  

同步和异步

同步: 一件接着一件

异步: 在做这件事的同时,你还可以去处理其他事

<script>console.log(1111)setTimeout(function(){console.log(222222);},0);console.log(33333);// 代码执行结果111 333 222
</script>

location.href  实现url跳转

<script>alert(location.href)   // 获取当前url地址   location.href = "http://baidu.com "
</script>

8.Jquery库   

Jquery库:里面存在大量的JS方法

Jquery cdn缓存库   https://www.bootcdn.cn/jquery/

Jquery 作用: write less,do more

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
</head><body><a href="" class="test">点击</a><script>//js写法// var test=document.getElementById('test')// test.onclick=function(){//   alert('hello')// }$('.test').click(function () {alert('hello')})</script>
</body></html>

Juery常见使用

参考文档 :  jQuery API 中文文档 | jQuery API 中文在线手册 | jquery api 下载 | jquery api chm

使用方法如下

### Jquery 使用实例
<body><a href="" class="test">点击</a><li>111</li><script>$('li').text('666')$('li').html('<b>hxd</b>')$('.test').html('<b>python</b>').css('color', 'red')</script>
</body>

9.Ajax异步请求

异步无刷新            百度搜索关键字搜索、用户已存在验证

案例实战: 用户点击可以跳转,如果不跳转,则5秒后自动跳转,要求里面有秒数倒计时location

<body><a href="http://www.baidu.com">支付成功后5秒跳转到首页</a><script>var a = document.querySelector('a')let i = 5let timeid = setInterval(function () {i--a.innerHTML = `支付成功${i}秒后跳转到首页`if (i === 0) {location.href = "http://www.baidu.com"}}, 1000)</script>
</body>

http://www.dtcms.com/a/593510.html

相关文章:

  • 【AI学习-comfyUI学习-简易加载器抠图工作流(替换抠图节点版)-各个部分学习-第七节】
  • Linux中自定义服务开机自启nginx
  • 【Linux】snakemake应用之扩增子分析流程
  • 可以做哪些网站有哪些内容给别人做的网站要复杂做安全扫描
  • vue中回显word、Excel、txt、markdown文件
  • [吾爱大神原创] 自用 图片叠加 批量图片转PDF工具 [牛马工具]
  • 微信小程序开发案例 | 幸运抽签小程序(上)
  • GEAR:一种高效的 KV Cache 压缩方法,用于几乎无损的大语言模型生成式推理
  • 西樵网站建设公司wordpress 宠物
  • Bootstrap5 表格深度解析
  • abuild 命令行工程编译
  • python自动化005:app自动化入门环境搭建
  • 云南品牌网站开发番禺建设网站开发
  • HarmonyOS:线性布局(Row/Column)
  • 鸿蒙Next学习解析之针对PC2in1设备的窗口管理新增支持主窗的尺寸记忆功能
  • 【大数据技术02】统计学和模型
  • Python数据挖掘之回归
  • 数据管理技术发展的3个阶段
  • 进网站后台显示空白购买东西网站怎么做
  • 做网站的公司都有哪些模板制作方法
  • .NET线程池ThreadPool.QueueUserWorkItem
  • Python爬虫进阶:面向对象设计与反爬策略实战
  • 河北省建设厅网站站长万网主体新增网站备案需要是滴么
  • windows 11 系统 nvm安装详细教程 (踩坑分享)
  • VMMap 学习笔记(8.3):VMMap 窗口全解析——内存类型、指标含义、颜色视图怎么读
  • 西安网站建设开发公司怎么样1688网
  • 南京做网站品牌2018 84号建设厅网站
  • 整体设计 全面梳理复盘 之29 Transformer 九宫格三层架构 Designer 全部功能定稿(初稿)
  • 再看软考与职称及软考的价值
  • pycharm连接远程服务器