首页 > 编程语言 >45.JavaScript基础【三】

45.JavaScript基础【三】

时间:2024-06-17 20:56:57浏览次数:19  
标签:JavaScript console log 45 基础 window let location 函数

【一】JavaScript之函数

1)函数声明

  • 函数须先声明,才能使用

  • 函数声明时不会立即执行,只有调用时才会执行

    function 函数名(参数1,参数2){
    	代码体
    }
    

2)函数调用

  • 函数名()

  • 函数的执行与定位位置无关,只与调用位置有关

  • 可多次调用,每次调用都是独立不相关的

3)函数分类

1.无参函数

function func(){
    console.log('无参函数')
}

func()
// 无参函数

2.有参函数

function func(a,b){
    console.log(a,b)
}

func(1,2)
// 1,2
  • 传多了只会拿对应的值
  • 传少了也不会报错,没值的显示undefined

4)函数的参数

1.接口

  • 就是函数的参数

  • 函数预留了一个接口,专门用于用户自定义内容,让函数的执行结果发生改名

2.参数类型

  • 形参:定义在函数参数内
  • 实参:调用时传入的参数

5)函数的返回值

1.返回值机制

  • 默认返回值为undefined
  • 函数内部通过return语句将结果返回给调用者

2.终止函数执行

  • return还可以用来提前结束函数的执行流程
  • 当return被执行后,函数会立即停止执行剩余内容,直接返回指定的值

6)函数的表达式

  • 函数定义赋值给一个变量,相当于将函数的整体变成一个表达式
  • 调用函数表达式的方法是给变量名加()执行,不能使用函数名()执行
  • 通常 函数的表达式都是匿名函数
let eg=function(x){
    return x*2
};

console.log(eg(2));
// 4

7)函数的数据类型

  • 函数可以与其他数据类型一样进行赋值、比较、传递等操作
  • 函数可以作为其他函数的返回值,从而实现更高阶函数的功能

8)arguments对象

  • arguments对象是一个特殊的对象,为当前函数的一个内置属性
  • arguments对象会接收所有的实参
function eg(a,b,c) {
    console.log(arguments)
    console.log(a,b,c)
}

// eg(1,2,3)
// Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]
// 1 2 3

9)函数的递归

  • 函数内部可以调用函数本身的做法
  • 函数递归须考虑好结果递归条件,不然容易出现死递归使程序崩溃

10)作用域

  • 变量其作用的范围
  • 变量退出作用域会自动销毁,全局变量只有关闭浏览器才会销毁

11)参数和函数的作用域

  • 函数的参数是局部变量,只能在函数内部使用
  • 函数内部的变量也是局部变量
  • 可以理解为函数体本身是一个独立的作用域

12)作用域链与遮蔽效应

  • 遮蔽效应

    • 程序在遇到一个变量时,使用时作用域查找顺序,不同层次的函数内都有可能定义相同名字的变量名,会优先从自己所在的层查找,如果没有查找到会依次往上找。
    • 整个过程中会发生内层变量遮蔽外层变量的效果叫做遮蔽效应
  • 把变量的声明提升到最前面,只会提升声明,不会提升赋值

  • 把函数的声明提升到当前作用域的最前面,只会提升声明,不会提升调用

  • 先提升var,再提升function

  • 在预解析后,根据新的代码顺序,从上往下按照既定的规律执行

13)匿名函数

  • 是一种没有名称的JS函数定义形式

1.语法

// 基本形式
function(参数){代码体};
// 自动执行形式
function(参数){代码体}();
// 赋值形式
var eg=function(参数){代码体};

2.特点

  • 无名/零时作用域
  • 闭包
  • 简便的函数创建
  • 立即执行

14)箭头函数

  • 是JavaScript ES6引入的一种新的函数定义语法,相比于传统函数表达式,它具有更简洁和易读的特点。

1.语法

var 函数名 = (参数) =>{返回值}

2.this绑定

  • 在箭头函数中,this的值是在创建函数的时候确定的,通常指向定义函数的对象
var add=(a,b)=>{
    this._a=a
    this._b=b
    return this._a + this._b
}

add(2,3)
// 5

【二】JavaScript之对象

1)对象

  • JS的对象是无序的属性集合
  • JS的对象就是字典

2)对象创建

// 对象字面量
var obj={};
// 构建函数new
var obj=new 函数名();
function user(name,age){
    this.name=name
    this.age=age
}
let eg= new user(name="st",age=18)
console.log(eg)
// user {name: 'st', age: 18}

3)对象调用

function user(name,age){
    this.name=name
    this.age=age
    this.text=function(){return `${this.name} age is ${this.age} `}
}
const eg = new user(name="st",age=18)

1.属性访问

  • 直接使用变量名加点(.)调用属性

  • 在对象内部使用this加点(.)调用属性

    console.log(eg.name)
    // st
    

2.方法调用

  • 直接使用变量名加点(.)调用方法

    eg.text()
    // 'st age is 18 '
    

3.索引式访问

  • 使用变量名后跟方括号 ([]) 并传入对应的键名,可以通过字符串或数值作为键名

    console.log(eg["name"])
    // st
    

4.for in遍历数组

  • 可以通过 for...in 循环遍历对象的所有可枚举属性,但不包括原型链上的属性

    for (let key in eg){
        console.log(key)
    }
    // name
    // age
    // text
    

4)日期对象

1.创建当前日期和时间的对象实例

var now_day = new Date();
// undefined
now_day
// Wed Jun 12 2024 17:18:39 GMT+0800 (中国标准时间)

2.创建指定日期和时间的对象实例

var appointed_day = new Date(2023, 6, 5, 10, 30, );
// undefined
appointed_day
// Wed Jul 05 2023 10:30:00 GMT+0800 (中国标准时间)

3.获取日期和时间信息

let d0 = new Date();

d0.getFullYear();
// 获取年份(四位数)
d0.getMonth();
// 获取月份(0-11)(0表示一月,11表示十二月)
d0.getDate();
// 获取日(月中的某一天)
d0.getDay();
// 获取星期
d0.getHours();
// 获取小时
d0.getMinutes();
// 获取分钟
d0.getSeconds();
// 获取秒数
d0.getMilliseconds();
// 获取毫秒数
d0.getTime();
// 获取时间戳

4.设置日期和时间

var date = new Date();

date.setFullYear(2024); 
// 设置年份
date.setMonth(8); 
// 设置月份(表示一月,11表示十二月)
date.setDate(15); 
// 设置日期(月中的某一天)
date.setHours(18); 
// 设置小时
date.setMinutes(45); 
// 设置分钟
date.setSeconds(30); 
// 设置秒数

5.格式化时间

var date = new Date();

var formattedDate = date.toLocaleDateString(); 
// 格式化为本地日期字符串('2024/6/12')
var formattedTime = date.toLocaleTimeString(); 
// 格式化为本地时间字符串('17:22:37')
var formattedDateTime = date.toLocaleString(); 
// 格式化为本地日期和时间字符串('2024/6/12 17:22:37')

5)json对象

var eg={name:"ST",age:18}

1.序列化(stringify)

  • 将 JS 中的对象类型转换为 json’‘ 字符串

    var new_eg=JSON.stringify(eg)
    console.log(new_eg,typeof new_eg)
    // {"name":"ST","age":18} string
    

2.反序列化 (parse)

  • 将 json’‘ 字符串 转换为 JS 中的对象类型

    var new_eg_2=JSON.parse(new_eg)
    console.log(new_eg_2,typeof new_eg_2)
    // {name: 'ST', age: 18} 'object'
    

6)正则对象

  • 使用RegExp对象来创建和操作正则表达式
// 方式一
let reg = new RegExp(正则表达式);
// 方式二
let reg1 = /正则表达式/
语法 介绍
test() 测试字符串是否匹配正则表达式,并返回布尔值
exec() 在字符串中搜索匹配正则表达式的内容,并返回结果数组(没有返回null)
match() 在字符串中搜索匹配正则表达式的内容,并返回结果数组(没有返回null)
search() 在字符串中搜索匹配正则表达式的内容,并返回第一个匹配的索引位置(没有返回-1)
replace() 将匹配正则表达式的内容替换为指定的字符串,并返回新的字符串。
flags 返回正则表达式的修饰符标志字符串。

1.test()

var str = "Hello, world!";
var pattern = /Hello/;
var result = pattern.test(str);
console.log(result); // 输出:true

2.exec()

var str = "Hello, world!";
var pattern = /l+/g;
var result = pattern.exec(str);
console.log(result); // 输出:["ll"]

3.match()

var str = "Hello, world!";
var pattern = /l+/g;
var result = str.match(pattern);
console.log(result); // 输出:["ll", "l"]

4.search()

var str = "Hello, world!";
var pattern = /lo/;
var result = str.search(pattern);
console.log(result); // 输出:3

5.replace()

var str = "Hello, world!";
var pattern = /o/g;
var replacement = "a";
var result = str.replace(pattern, replacement);
console.log(result); // 输出:Hella, warld!

6.flags

var pattern = /hello/gi;
console.log(pattern.flags); // 输出:gi

7)math对象

语法 功能
abs(x) 回数的绝对值
exp(x) 返回 e 的指数
floor(x) 对数进行下舍入
log(x) 返回数的自然对数(底为e)
max(x,y) 返回 x 和 y 中的最高值
min(x,y) 返回 x 和 y 中的最低值
pow(x,y) 返回 x 的 y 次幂
random() 返回 0 ~ 1 之间的随机数
round(x) 把数四舍五入为最接近的整数
sin(x) 返回数的正弦
sqrt(x) 返回数的平方根
tan(x) 返回角的正切

【三】JavaScript之DOM

1)概念

  • DOM:文档对象模型(Document Object Model)
  • BOM:浏览器对象模型(Browser Object Model)
  • 是JavaScript与网页内容及浏览器环境进行交互的两种核心概念

2)DOM(文档对象模型)

1.概念

  • 是一个编程接口,它以树状结构来表示HTML或XML文档

2.实例

document.getElementById(id): 
通过元素ID获取DOM元素对象。

element.querySelector/pseudo-class: 
根据CSS选择器或伪类选择DOM元素对象。

element.appendChild(newElement): 
向指定元素添加子元素。

element.setAttribute(name, value): 
设置元素属性值。

element.innerText/innerHTML: 
获取或设置元素内的文本内容或HTML内容。

3)BOM(浏览器对象模型)

1.概念

  • 是浏览器提供的API集合,主要用于处理与浏览器环境相关的任务

2.示例

window.open(url[, name[, features]]): 
打开新的浏览器窗口或tab访问指定URL。

window.location.href: 
获取当前页面的URL地址,并可用于更改页面位置。

window.history.back(): 
返回历史记录中的上一页。

navigator.userAgent: 
获取浏览器的信息,例如类型、版本等。

4)Window对象

  • 是JavaScript中表示浏览器窗口的全局对象,其提供了一系列方法操作和管理窗口

1.open()

  • 打开新窗口或获取对一个已存在的窗口的引用

    window.open(url,target,features)
    // url:指定的网址
    // target:_back 打开新窗口(默认)、_self 原地打开
    // features:指定窗口的大小
    let newWindow = window.open("https://www.baidu.com/", "_blank",'height=400px,width=400px');
    

2.close()

  • 关闭窗口

3.setTimeout()

  • 在指定的时间延迟后执行一次指定的代码

    setTimeout(function(){
        console.log('延迟结束')
    }, 100); 
    // 1秒后执行指定函数
    

4.setInterval()

  • 以固定的时间间隔重复执行指定的函数或者一段代码。

    setInterval(function(){
        console.log('延迟结束')
    }, 200); 
    // 每2秒执行一次指定函数
    

5.alert()

  • 显示一个带有指定消息和一个确认按钮的警告框

    window.alert("Hello, World!");
    

6.confirm()

  • 显示一个带有指定消息和两个按钮(确认和取消)的对话框

    if (window.confirm("Are you sure?")) {
      // 用户点击了确认按钮
    } else {
      // 用户点击了取消按钮
    }
    

7.prompt()

  • 显示一个带有指定消息和一个文本输入框的对话框

    let name = window.prompt("Please enter your name:");
    

8.innerHeight 属性

  • 返回浏览器窗口的内部高度(即视口的高度)

  • 以像素为单位,不包括浏览器的工具栏、滚动条等元素

    let windowHeight = window.innerHeight;
    console.log(windowHeight); 
    // 输出当前窗口的视口高度
    

9.innerWidth 属性

  • 返回浏览器窗口的内部宽度(即视口的宽度)

  • 以像素为单位,不包括浏览器的工具栏、滚动条等元素

    let windowWidth = window.innerWidth;
    console.log(windowWidth); 
    // 输出当前窗口的视口宽度
    

10.监听 resize 事件

  • 需要注意的是,这两个属性返回的值会随着窗口的大小调整而改变

  • 因此如果需要监控窗口大小的改变,可以通过监听 resize 事件来实现

    window.addEventListener("resize", function() {
      let windowHeight = window.innerHeight;
      let windowWidth = window.innerWidth;
      console.log("Window Height:", windowHeight);
      console.log("Window Width:", windowWidth);
    });
    

11.window.opener

  • 是指打开当前窗口的那个窗口对象。它是 Window 对象的一个属性,用于在当前窗口中引用到打开它的父窗口或者来源窗口。
场景一: window.open()
  • 当前窗口是通过使用 JavaScript 的 window.open() 方法打开的弹出窗口时,可以使用 window.opener 来引用打开它的父窗口

    let popup = window.open("popup.html"); // 打开一个弹出窗口
    
  • 然后,在弹出窗口 popup.html 中的 JavaScript 代码中,可以通过 window.opener 引用到父窗口:

    let parentWindow = window.opener;
    console.log(parentWindow); // 输出父窗口对象
    
场景二: postMessage() 方法
  • 当前窗口是通过其他窗口向其发送消息(使用 postMessage() 方法)时,可以使用 event.source 属性来获取消息来源窗口,并通过 window.opener 来引用该来源窗口

    let currentWindow = window.open("current.html"); // 打开当前窗口
    
    // 向当前窗口发送消息
    currentWindow.postMessage("Hello", "http://example.com");
    
  • 然后,在当前窗口 current.html 中的 JavaScript 代码中,通过监听 message 事件接收来自来源窗口的消息,并使用 event.source 和 window.opener 引用到来源窗口:

    window.addEventListener("message", function(event) {
      let message = event.data;
      let sourceWindow = event.source;
      let openerWindow = window.opener;
    
      console.log("Message:", message);
      console.log("Source Window:", sourceWindow);
      console.log("Opener Window:", openerWindow);
    });
    

5)Window子对象

  • 如果是Window的子对象,Window可以不写

1.window.document

  • 此子对象表示当前窗口中的文档对象,用于对页面内容进行读取和修改操作。

  • 通过 window.document,可以使用各种方法来查询和修改当前页面的 HTML 结构、CSS 样式和 DOM 元素

    // 获取页面标题
    let pageTitle = window.document.title;
    console.log(pageTitle);
    

2.window.location

  • 此子对象包含有关当前页面 URL 的信息,并提供了一些与页面导航相关的方法。

  • 通过 window.location,可以获取当前页面的 URL、查询字符串参数、路径等信息,并且可以使用一些方法来导航到其他页面

    // 在新标签页中打开一个 URL
    window.location.href = 'https://example.com';
    
语法 功能
window.location.href 获取当前页面的完整 URL(包括协议、域名、路径等)
window.location.protocol 获取当前页面的协议部分(例如 'http:' 或 'https:')
window.location.host 获取当前页面的主机(域名和端口号)部分
window.location.hostname 获取当前页面的主机名部分
window.location.port 获取当前页面的端口号部分
window.location.pathname 获取当前页面的路径部分
window.location.search 获取当前页面的查询参数部分(即 URL 中问号后面的内容)
window.location.hash 获取当前页面的片段标识部分(即 URL 中井号后面的内容)
window.location.assign() 将当前页面重定向到指定的 URL
window.location.reload() 重新加载当前页面
I. window.location.href
  • 获取当前页面的完整 URL(包括协议、域名、路径等)

    let currentURL = window.location.href;
    console.log(currentURL);
    
    window.href = url // 跳转到目标地址
    
II. window.location.protocol
  • 获取当前页面的协议部分(例如 'http:' 或 'https:')

    let protocol = window.location.protocol;
    console.log(protocol);
    
III. window.location.host
  • 获取当前页面的主机(域名和端口号)部分

    let host = window.location.host;
    console.log(host);
    
IV. window.location.hostname
  • 获取当前页面的主机名部分

    let hostname = window.location.hostname;
    console.log(hostname);
    
V. window.location.port
  • 获取当前页面的端口号部分

    let port = window.location.port;
    console.log(port);
    
VI. window.location.pathname
  • 获取当前页面的路径部分

    let pathname = window.location.pathname;
    console.log(pathname);
    
VII. window.location.search
  • 获取当前页面的查询参数部分(即 URL 中问号后面的内容)

    let searchParams = window.location.search;
    console.log(searchParams);
    
VIII. window.location.hash
  • 获取当前页面的片段标识部分(即 URL 中井号后面的内容)

    let hash = window.location.hash;
    console.log(hash);
    
IX. window.location.assign()
  • 将当前页面重定向到指定的 URL

    window.location.assign("http://example.com");
    
X window.location.reload()
  • 重新加载当前页面

    window.location.reload();
    

3.window.history

  • 此子对象用于操作浏览器的历史记录,包括向前和向后导航。

  • 通过 window.history,可以使用一些方法来在历史记录中向前或向后导航,以及获取当前历史记录的状态数量

    // 后退到上一个页面
    window.history.back();
    
语法 功能
window.history.length 返回当前会话的历史记录条目数
window.history.back() 加载上一个历史记录。相当于用户点击浏览器的后退按钮
window.history.forward() 加载下一个历史记录。相当于用户点击浏览器的前进按钮
window.history.go() 根据传入的整数参数,加载相对于当前历史记录的某个条目。负数表示后退,正数表示前进, 表示重新加载当前页
window.history.pushState() 向浏览器历史记录中添加新的状态,并且不会触发页面的重新加载。它接受三个参数:state、title 和 URL
window.history.replaceState() 替换当前的历史记录状态,不会触发页面的重新加载。它接受三个参数:state、title 和 URL
I. window.history.length
  • 返回当前会话的历史记录条目数

    let historyLength = window.history.length;
    console.log(historyLength);
    
II. window.history.back()
  • 加载上一个历史记录。相当于用户点击浏览器的后退按钮

    window.history.back();
    
III. window.history.forward()
  • 加载下一个历史记录。相当于用户点击浏览器的前进按钮

    window.history.forward();
    
IV. window.history.go()
  • 根据传入的整数参数,加载相对于当前历史记录的某个条目。负数表示后退,正数表示前进, 表示重新加载当前页

    // 后退两个历史记录
    window.history.go(-2);
    
    // 前进一个历史记录
    window.history.go(1);
    
    // 重新加载当前页
    window.history.go();
    
V. window.history.pushState()
  • 向浏览器历史记录中添加新的状态,并且不会触发页面的重新加载。它接受三个参数:state、title 和 URL

    // 添加新的历史记录状态
    window.history.pushState({ page: 1 }, "Page 1", "/page1.html");
    
VI. window.history.replaceState()
  • 替换当前的历史记录状态,不会触发页面的重新加载。它接受三个参数:state、title 和 URL

    // 替换当前历史记录状态
    window.history.replaceState({ page: 2 }, "Page 2", "/page2.html");
    

4.window.navigator

  • 此子对象提供有关浏览器环境和设备的信息,包括用户代理字符串、浏览器版本、操作系统等

    // 要获取用户代理字符串
    let userAgent = window.navigator.userAgent;
    console.log(userAgent);
    
语法 功能
window.navigator.userAgent 返回浏览器的用户代理字符串,该字符串包含了有关浏览器厂商、版本号以及操作系统等信息
window.navigator.platform 返回操作系统平台,如 "Win32"、"MacIntel" 等
window.navigator.vendor 返回浏览器的厂商或供应商名称
window.navigator.language 返回浏览器的首选语言,通常是用户操作系统的默认语言
window.navigator.cookieEnabled 返回一个布尔值,表示浏览器是否启用了 cookie
window.navigator.plugins 返回一个包含浏览器插件列表的 PluginArray 对象
I. window.navigator.userAgent*
  • 返回浏览器的用户代理字符串,该字符串包含了有关浏览器厂商、版本号以及操作系统等信息

  • 该方法可以用来校验反爬程序

    let userAgent = window.navigator.userAgent;
    console.log(userAgent);
    
II. window.navigator.platform*
  • 返回操作系统平台,如 "Win32"、"MacIntel" 等

    let platform = window.navigator.platform;
    console.log(platform);
    
III. window.navigator.vendor
  • 返回浏览器的厂商或供应商名称

    let vendor = window.navigator.vendor;
    console.log(vendor);
    
IV. window.navigator.language
  • 返回浏览器的首选语言,通常是用户操作系统的默认语言

    let language = window.navigator.language;
    console.log(language);
    
V. window.navigator.cookieEnabled
  • 返回一个布尔值,表示浏览器是否启用了 cookie

    let cookieEnabled = window.navigator.cookieEnabled;
    console.log(cookieEnabled);
    
VI. window.navigator.plugins
  • 返回一个包含浏览器插件列表的 PluginArray 对象

    let plugins = window.navigator.plugins;
    console.log(plugins);
    

标签:JavaScript,console,log,45,基础,window,let,location,函数
From: https://www.cnblogs.com/Mist-/p/18253173

相关文章

  • 44.JavaScript基础【二】
    【一】JavaScript之运算符1)算术运算符加法:+减法:-乘法:*除法:/优先运算:()取余:%特殊NaNNaN参与的运算结果全是NaN隐式转化null转成0undefined转成NaN2)比较运算符>大于<小于<=小于等于>=大于等于==相等!=不相等===全等与相等区别在于会判断数据......
  • 43.JavaScript基础【一】
    【一】JavaScript1)介绍也是一门编程语言,他可以写后端代码JS是由ECMAScript、DOM、BOM组成JS是运行在浏览器脚本的语言2)注释语法//单行注释/*多行注释多行注释*/3)js代码的书写位置head头里面的script标签中写在body体最下面直接常见一个js脚本文件,......
  • 47.JavaScript基础【五】
    【一】什么是jQuery1)概述是一个轻量的、兼容多浏览器的JavaScript的第三方库其内部封装了JS代码、能通过更少的代码操作DOM对象提高了代码效率、简化了代码量2)优势轻量级的JS框架丰富的DOM选择器链式表达式事件、样式、动画支持Ajax操作支持跨浏览器兼容插件扩展开......
  • 46.JavaScript基础【四】
    【一】弹出框是网页开发中常用的交互组件,用于显示警告、确认或提示,并于用户进行交互1)警告框用于向用户显示一条重要的警告信息通常包含一个确认按钮用于关闭alert("警告提示框")2)确认框用于向用户询问一个问题或确认某个操作通常包含一个确认按钮和一个取消......
  • 48.Bootstrap基础
    【一】引入该框架已经帮我们写好了很多页面样式,如果需要使用,只需要下载对应文件直接CV拷贝即可在使用Bootstrap的时候,所有的页面样式只需要通过修改class属性来调节即可【二】什么是BootstrapBootstrap是一个开源的前端框架,用于快速构建响应式和移动设备优先的网站或应用......
  • 代码随想录算法训练营第38天|● 理论基础 ● 509. 斐波那契数● 70. 爬楼梯 ● 746.
    动态规划理论基础动态规划,英文:DynamicProgramming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的,动态规划做题步骤确定dp数组(dptable)以及......
  • 系统地学习Lua编程语言,掌握其基础知识并应用于实际项目中;Lua编程语言中级开发的大纲,涵
    学习Lua编程语言的初级开发大纲可以帮助你系统性地掌握这门语言的基础知识。下面是一个详细的大纲,从基础语法到基本的编程概念,再到一些实用的库和工具。Lua初级开发大纲1.Lua简介Lua的历史与特点Lua的应用场景安装与配置Lua环境2.基础语法注释:单行注释和多行注释......
  • 跟我从零开始学C++(C++代码基础)
    引言小伙伴们是不是都等不及了,来啦来啦它来啦,在经历过前边那么多乱七八糟的但又重要的知识后,终于迎来了有关C++代码的这一步,真是不容易呀,小伙伴们,本章小雨会带着大家去从下载软件到一些简单的基础知识,放轻松~不过本章全程干货一点都不能错过呀,而且附带的Visualstudio的详......
  • 跟我从零开始学C++(C++代码基础)3
    引言小伙伴们大家好呀,又到了每日学习的时候了,今天小杨同学给大家带来了新的知识点哟,大家准备好了么,昨天学习的任务有没有消化好呢,昨天的课后练习怎么样了呢,有没有费了一番功夫弄出来呢。没有把基础打好的小伙伴们千万不要着急呀,毕竟根基不牢是要出大事情的,小伙伴们加油呀,跟......
  • HTML和CSS基础(二)
    四、HTML布局4.1文档流HTML文档流(DocumentFlow)是网页布局的基础,它决定了元素如何在页面上排列。文档流可以分为两大类:正常流(NormalFlow)和脱离正常流(OutOfFlow)。下面详细介绍这两大类以及它们的子分类:1.正常流(NormalFlow)正常流是文档流的默认布局方式,元素按照它们在H......