前端-1

1+x 证书 Web 前端开发 JavaScript 专项练习 官方QQ群 1+x 证书 Web 前端开发 JavaScript 专项练习 http://blog.zh66.club/index.php/archives/198/ 阅读详情

知识点积累。有转载。

HTML

1.行内元素/块级元素/可变元素

  • 行内元素(内联元素):常见的span/a/label/strong/b/em/br/mg/input/textarea等html标签都是行内元素

  • 块级元素:常见的div/p/ul/li/ol/hr/table/h1~h6/form等html标签都是块级元素

  • 可变元素(根据上下文意境判断该元素是行内元素还是块级元素):button/script(客户端脚本)/del(删除文本)/map(图片区块map)/object对象

  • display设置

    • display:inline:设置成行内元素/内联元素
    • display:block:设置成块级元素
    • display:inline-block:设置成行内块级元素
  • 行内元素和块级元素的区别:

    块级元素行内元素
    块级元素会独占一行,其宽度会自动填满其父元素宽度。相邻的行内元素会排列在同一行内,不回独占一行,若一行排不下才会换行,其宽度会随元素的内容而变化
    块级元素可以设定width/height(width如果不做设定,会直接默认为父元素的100%)行内元素设置width/height无效,但可以这是line-height,它的宽度是直接由内部的文字或图片撑开的
    块级元素可以设定margin/padding行内元素水平方向的padding-left/right和margin-left/right都会边距效果,但是竖直方向上的padding-top/bottom和margin-top/bottom都不会有效果(水平方向有效,竖直方向无效)
    块级元素可以包含行内元素和块级元素行内元素不能包含块级元素
    块级元素属性标签是可以直接嵌套的行内元素属性标签内不能嵌套行属性标签
  • CSS设置块级元素居中:

    • absolute实现
       div{
         height: 500px;
         position: relative;
         background: papayawhip;
       }
    
       div p{
         width: 100px;
         height: 100px;
         background: peru;
         position: absolute;
         top: 0;
         bottom: 0;
         left: 0;
         right: 0;
         margin: auto;
       }
    
    • absolute+translate实现
       div{
         height: 500px;
         position: relative;
         background: papayawhip;
       }
    
       div p{
         width: 100px;
         height: 100px;
         background: peru;
         position: absolute;
         top: 50%;
         left: 50%;
         transform: translate(-50%, -50%);
       }
    
    • flex实现
        div{
          height: 500px;
          background: papayawhip;
          display: flex;
          justify-content: center;   /*实现水平居中*/
          align-items: center;   /*实现垂直居中*/
        }
    
        div p{
          width: 100px;
          height: 100px;
          background: peru;
        }
    

2.前端跨页面通信有哪些方法?

  • 什么是前端跨页面通信?

    在浏览器中,可以同时打开多个tab页,每个tab页可以粗略理解为一个“独立”的运行环境,即使是全局对象,也不会在多个tab页之间共享。然而有些时候,我们希望能在这些独立的tab页之间同步页面数据,信息和状态。

    比如在下面红线连接的,在列表页点击收藏后详情页的btn页变为收藏,详情页收藏后列表页也会改变。这就是前端跨页面通信

  • 同源页面间的跨页面通信
    浏览器的同源策略会限制一部分跨页面通信方式。来看在满足同源策略的前提下,有哪些技术可以实现跨页面通信

    • BroadCast Channel
      BroadCast Channel 可以帮我们创建一个用于广播的通信频道,当所有页面都监听同一频道的消息时,其中某个页面通过它发送的消息就会被其他所有页面收到。

    • Service Worker
      Service Worker是一个可以长期运行在后台的worker,能够实现与页面的双向通信。多页面共享间的Service Worker可以共享。将Service Worker作为消息的处理中心(中央台)即可实现广播效果。

    • LocalStorage
      当 LocalStorage 变化时,会触发storage事件。利用这个特性,我们可以在发送消息时,把消息写入到某个 LocalStorage 中;然后在各个页面内,通过监听storage事件即可收到通知。

      window.addEventListener('storage', function (e) {
          if (e.key === 'ctc-msg') {
              const data = JSON.parse(e.newValue);
              const text = '[receive] ' + data.msg + ' —— tab ' + data.from;
              console.log('[Storage I] receive message:', text);
          }
      });
      

      在各个页面添加如上的代码,即可监听到 LocalStorage 的变化。当某个页面需要发送消息时,只需要使用我们熟悉的setItem方法即可:

      mydata.st = +(new Date);
      window.localStorage.setItem('ctc-msg', JSON.stringify(mydata));
      

      注意,这里有一个细节:我们在mydata上添加了一个取当前毫秒时间戳的.st属性。这是因为,storage事件只有在值真正改变时才会触发。举个例子:

      window.localStorage.setItem('test', '123');
      window.localStorage.setItem('test', '123');
      

      由于第二次的值’123’与第一次的值相同,所以以上的代码只会在第一次setItem时触发storage事件。因此我们通过设置st来保证每次调用时一定会触发storage事件。

    上面我们看到了三种实现跨页面通信的方式,不论是建立广播频道的 Broadcast Channel,还是使用 Service Worker 的消息中转站,抑或是些 tricky 的storage事件,其都是广播模式:一个页面将消息通知给一个“中央站”,再由“中央站”通知给各个页面。
    在上面的例子中,这个“中央站”可以是一个 BroadCast Channel 实例、一个 Service Worker 或是 LocalStorage。

    另外两种跨页面通信方式,我把它称为“共享存储+轮询模式”。

    • Shared Worker
      Shared Worker是 Worker 家族的一员。普通的 Worker 之间是独立运行的,数据互不相通;而多个tab注册是Shared Worker则可以实现数据共享。
      Shared Worker在实现跨页面通信的问题在于:它不能主动通知所有页面,因此需要使用轮询的方式拉取最新的数据,思路如下:
      让 Shared Worker 支持两种消息。一种是post,Shared Worker 收到后会将该数据保存下来;另外一种是get,Shared Worker 收到后会将保存的数据通过postMessage传给注册它的页面,也就是让页面通过get来主动获取(同步)最新消息。
    • IndexedDB
      除了可以利用Shared Worker 来共享存储数据,还可以使用其他一些“全局性”(支持跨页面)的存储方案,例如IndexedDB或cookie,下面来说IndexedDB的思路:
      与Shared Worker 类似,消息发出方将消息存储在IndexedDB红,接收方(如所有页面)则通过轮询去获取最新的消息。

    实际上,有些时候使用“共享存储”的形式时,不一定要搭配长轮询。
    例如,在多 Tab 场景下,我们可能会离开 Tab A 到另一个 Tab B 中操作;过了一会我们从 Tab B 切换回 Tab A 时,希望将之前在 Tab B 中的操作的信息同步回来。这时候,其实只用在 Tab A 中监听visibilitychange这样的事件,来做一次信息同步即可

    • window.open + window.opener
      当我们使用window.open打开页面时,方法会返回一个被打开页面window的引用。而在未显示指定noopener时,被打开的页面可以通过window.opener获取到打开它的页面的引用。通过这种方式我们就将这些页面建立起了联系(一种树形结构)。
      实现思路:把window.open打开的页面的window对象收集起来,当需要发送消息的时候,作为消息的发起方,一个页面需要同时通知它打开的页面与打开它的页面;此时,一个收到消息的页面,除了展示收到的消息,它还需要将消息再传递给它所“知道的人”(打开与被它打开的页面),这样,每个节点(页面)都肩负起了传递消息的责任,也就是我说的口口相传,而消息就在这个树状结构中流转了起来。
      口口相传的模式存在一个问题:如果页面不是通过在另一个页面内的window.open打开的(例如直接在地址栏输入,或从其他网站链接过来),这个联系就被打破了。
  • 非同源页面之间的通信
    有两个不同域名的产品线,也希望它们下面的所有页面之间能无障碍地通信,要怎么实现?

    要实现非同源页面之间的通信,可以使用一个用户不可见的iframe作为“桥”。由于iframe与父页面间可以通过制定origin来忽略同源策略,因此可以在每个页面嵌入一个iframe(如:http://sample.com/bridge.html),而这些iframe由于使用了同一个url,因此属于同源页面,其通信方式就可以使用上面提到的各种方式了。

    实现思路:页面与 iframe 通信非常简单,首先需要在页面中监听 iframe 发来的消息,做相应的业务处理。然后,当页面要与其他的同源或非同源页面通信时,会先给 iframe 发送消息。iframe 收到消息后,会使用某种跨页面消息通信技术在所有 iframe 间同步消息。其他 iframe 收到通知后,则会将该消息同步给所属的页面。

3.DOM树

前端0+1 专栏介绍 该专栏,旨在通过博文,让对前端感兴趣的同学,快速了解前端的岗位需求和工作内容。 同时,通过作者6年的工作经验,将企业里头需要同学们要会掌握的技术,列举出来,并做了从基础到深入,从1到0的教学。 通过该专栏,您可以把握企业的前端的技术方向,避免走弯路。 专栏博文,有专业知识解说,包括图像、demo源码,细致的笔记等,同时汇集详细的前端常见的问题解答,以及进阶的知识点。 ... 阅读详情

相关推荐

1+x Web前端认证实践项目

本文还有配套的精品资源,点击获取 简介:"1+x Web前端实例.zip" 提供了一系列与1+x Web前端认证相关的实例项目,旨在通过实践操作帮助学习者巩固前端开发知识。该项目涵盖了HTML、CSS、JavaScript、前端框架、响应式设计、Web API使用、版本控制、性能优化、Web安全以及无障碍访问等关键知识点。学习者可以利用这些实例来准备认证考试,通过模拟试题和...

weixin_42181686的博客 1131

Front-end_1_前端介绍

Front-end_1_前端介绍

金甲熊猫堡 417

Python | 处理CMIP6 NC数据,以tas为例

各位同学,一般在文章最后一章我们可能会做不同气候情景下变量的未来时空变化特征,类似上图。从cmip6下载的nc数据常需要转换格式、裁剪到研究区和重采样等,本期代码可以解决这类问题。

qq_48539301的博客 1384

从0到1,编写一个简单的前端页面

作者:谭东 从0到1,编写一个简单的前端页面。 ...即将完善

持续学习中 1583

HTB_Bike靶机之模板注入

船到桥头自然直 文章目录信息收集模板引擎SSIT 模板注入后放答案 信息收集 日常 A 扫描,两个端口 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 48:ad:d5:b8:3a:9f:bc:be:f7:e8:20:1e:f6:bf:de:ae (RSA) | 256 b7:89:6c:0b:20:ed:49:b2:c1:86:7c:.

网络安全学习 797

避开ANSYS SOLID65钢筋模拟的坑:从材料TB到实常数R的完整配置清单

本文详细解析了ANSYS SOLID65单元在钢筋混凝土模拟中的关键配置与优化技巧,涵盖材料TB设置、实常数R配置及收敛性优化。特别针对钢筋建模的分布式钢筋模型进行深度解析,提供实战验证的参数设置手册,帮助工程师避免常见错误,提升模拟精度与效率。

weixin_30898555的博客 363

前端 css中1rem、1em、1vh、1px各自代表的含义

可以根据浏览器窗口的高度进行缩放,方便实现响应式设计,尤其是在需要根据窗口高度调整元素大小时非常有用。的继承特性可能会导致计算复杂,因为它的值依赖于父元素的字体大小。的好处是可以根据根元素字体大小进行缩放,方便调整整个页面的比例,从而实现响应式设计。像素,是屏幕上最小的显示单位。它是一个绝对单位,表示物理像素的数量。它也是一个相对单位,相对于当前元素的字体大小。的好处是简单直接,但缺点是它不灵活,不适应不同屏幕尺寸和分辨率。视口高度指的是浏览器窗口的可见高度。它是一个相对单位,相对于根元素(通常是。

2402_84987408的博客 522

TMS320F28335调试跟踪的问题:DSP从上电复位,一直到执行main()的第一条语句之间,都干了些什么,以及CCS调试时程序查找的问题

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1210

前端:微前端框架MicroApp 1.0正式发布

MicroApp 1.0已经发布,我们将积极回应开发者的问题和反馈,并持续改进,以帮助更多开发者提高效率和改善开发体验。欢迎大家使用MicroApp并参与共建,也希望在GitHub上给我们点个Star来支持我们。

京东零售技术的博客 1515

【OCPP】ocpp1.6协议3.3章节:功能配置文件及接口

Smart Charging Profile中定义了4个接口请求,即GetCompositeSchedule、ClearChargingProfile、SetChargingProfile和ClearCache等。Smart Charging: 包含智能充电相关的功能,如计划充电,报告充电计划,并改变充电速度。Core: 包含电动汽车充电相关的基础功能,如启动和停止充电,更改充电配置,报告充电状态等。Reservation: 包含预约服务相关的功能,如创建,取消和更改预约。

qq_53871375的博客 2170

使用MATLAB求解二维顶盖驱动流问题的详细代码和说明

本文介绍了使用MATLAB求解二维顶盖驱动流问题的涡量-流函数方法。代码采用129×129网格,雷诺数Re=1000,通过迭代求解Navier-Stokes方程,包含流函数方程和涡量输运方程的离散求解。程序实现了边界条件处理、收敛性检查,并提供丰富后处理功能:流线图、涡量分布图、中心线速度曲线、矢量图和三维涡量可视化。计算结果可与Ghia等(1982)的经典数据进行验证。该代码完整展示了CFD问题的数值求解流程,包括参数设置、主循环计算和多种结果呈现方式,适用于流体力学教学和科研验证。

AI的内部世界的博客 225

jQuery 1,web前端自学

正值金三银四招聘旺季,很多小伙伴都询问我有没有前端方面的面试题,特地整理出来赠送给大家!资料领取方式:点击这里前往免费获取正值金三银四招聘旺季,很多小伙伴都询问我有没有前端方面的面试题,特地整理出来赠送给大家!资料领取方式:点击这里前往免费获取资料领取方式:点击这里前往免费获取。

2301_79055083的博客 841

机器人控制仿真软件:MATLAB Simulink Control System Toolbox_(1).MATLAB基础知识

MATLAB(Matrix Laboratory)是由MathWorks公司开发的一种高性能数值计算和可视化软件。它广泛应用于科学计算、工程设计、信号处理、控制系统设计、图像处理等领域。强大的矩阵运算能力:MATLAB的核心是矩阵运算,能够高效处理大规模的数值数据。丰富的工具箱:MATLAB提供了大量的工具箱,如Control System Toolbox、Simulink、Signal Processing Toolbox等,这些工具箱覆盖了多个应用领域。易于使用的图形界面。

kkchenjj的博客 904

【1+X Web前端等级考证 】| 最新Web前端开发中级实操

# 前言 2020 12月 1+X Web 前端开发中级 模拟题大致就更这么多,我的重心不在这里,就不花太多时间在这里面了。但是,说说1+X Web前端开发等级考证这个证书,总有人跑到网上问:这个证书有没有用? 这个证书含金量高不高? # 关于考不考 因为这个是工信部从2019年才开始实施试点的,目前还在各大院校试点中,就目前情况来看,知名度并不是很高,有没有用现在无法一锤定音,看它以后办的怎么样把,软考以前也是慢慢地才知名起来。能考就考吧,据所知,大部分学校报考,基本不用交什么报考费(小部分学校,个别除.

go 5万+

C/C++ 静态代码检查工具cppCheck

Cppcheck是一个用于C/C++代码的静态分析工具,它可以帮助开发者检测代码中的错误;Cppcheck可以检测出许多类型的错误,包括语法错误、未使用的函数、内存泄漏、未初始化的变量等;Cppcheck还支持用户自定义规则,这使得开发者可以根据自己的需求定制Cppcheck的行为;使用--suppress如果你想要忽略某些警告,可以在命令行中使用 --suppress 选项。

贝勒里恩的博客 4949

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

前端训练营:1v1私教,帮你拿到满意的offer

Hello,大家好,我是 Sunday。熟悉我的小伙伴都知道,我最近这几年一直在做前端教育相关的工作。因为这类工作的原因,让我深刻的感受到这几年整个互联网行业的变化。大量的公司裁员,导致找工作的人急速增加,但是 HC 却大量缩减。这就导致很多同学可能好几个月都没有办法找到一份合适的工作。以每个月 1 万的月薪来计算,损失就高达好几万元。特别是一些还在校的大学生,目前还没有进入到社会就可以感受到今年...

u012384510的博客 487

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

http1(1),前端rxjava面试,聊聊 前端 开发的现状和思考

还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。还有很多的同学在学习的过程中一味的追求学的速度,很快速的刷视频,写了后面忘了前面,最后什么都没有学到,什么都知道,但是什么都不懂,要具体说,也说不出个所以然。管道化:基于上面长连接的基础,管道化可以不等第一个请求响应继续发送后面的请求,但响应的顺序还是按照请求的顺序返回。因为自学走的弯路是比较的多的,会踩很多的坑,学习的过程中是比较的迷茫的。

m0_60666841的博客 948

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

从0到1搭建前端项目

通过性能优化、安全性优化、可维护性优化、监控与错误追踪、CI/CD 流程以及用户体验优化,你可以确保项目不仅在功能上满足需求,还能在性能、安全性和用户体验上达到更高的标准。在项目从0到1的搭建过程中,除了基础的需求分析、技术选型、架构设计等步骤外,深度优化是确保项目长期可维护性、高性能和良好用户体验的关键。项目的可维护性直接影响到后续的迭代和扩展,因此需要在开发过程中注重代码的可读性和可扩展性。性能优化是前端开发中的重中之重,尤其是在用户对加载速度和交互体验要求越来越高的今天。

m0_72900140的博客 1265

前端项目从0到1的搭建

前端项目从0到1的搭建

renqq001的博客 696

前端面试问题:1rem、1em、1vh、1px各代表的含义

1rem 相对于页面<html>的大小,通常的做法是给html根元素设置一个字大小,其他元素的长度相对于根元素的大小。 附上: web动态设置rem链接 1em: 相对于父元素的字体大小 元素的margin/padding/width/height则相对于该元素的font-size大小 1vh/1vw: 视窗的宽度/高度。100vh/100vw相当于整个视窗的宽高。 1vh=视窗高度的1%;1vw=视窗宽度的1% 1px: 像素:相对于屏幕分辨率而言 一般电脑分辨率是1920 *

weixin_43900271的博客 4258

macbook m1版 前端环境配置

macbook m1版 前端环境配置安装 Homebrew安装nvm使用nvm安装node安装git 安装 Homebrew 复制以下代码到你的终端 /bin/zsh -c “$(curl -fsSL https://gitee.com/huwei1024/HomebrewCN/raw/master/Homebrew.sh)” 安装完毕后输入 brew -v,会出现以下报错 command not found : brew 错误的原因是因为m1芯片的包安装位置已更改,/usr/local/ 变成了/

yanghuide1的博客 3196

前端上手M1芯片Mac测评(基础篇)

前端上手M1芯片Mac开发测评我之前的电脑:15年Mac pro,15寸 16G 256G配置现在电脑 M1芯片 13.3寸 16G 256G配置先说上手后的体验体验相对于老款来说,整体...

petertanjinjie的博客 8799

1panel前端部署

最终决定访问的是: nginx.conf + 1Panel端口映射 的组合nginx.conf: 决定容器内服务运行在哪个端口1Panel映射: 决定外部如何访问这个端口Dockerfile EXPOSE: 只是说明文档,不影响实际功能。

m0_60527150的博客 363

Weavefox 图片 1 比 1 生成前端源代码

蚂蚁Weavefox上线:AI助力前端1:1还原开发体验 蚂蚁集团新推出的Weavefox平台引发关注,该工具通过截图即可1:1还原前端界面,支持Kimi-K2模型。用户只需上传设计图,系统会自动生成提示词并输出代码,支持组件拆分和技术栈选择,还原度令人满意。注册即赠100试用额度,操作流程简洁高效。 展望未来,AI将在软件开发全流程中发挥更大作用,从需求分析到部署优化的各个环节实现智能辅助。Weavefox的出现预示着"Vibe Coding"时代的到来,AI将像真实同事一样参与全流程

悟鸣的技术博客 1061

前端开发-1-前端介绍

1、web1.0时代的网页制作 静态网页,所谓的静态网页就是没有与用户进行交互而仅仅供读者浏览的网页,我们当时称为“牛皮癣”网页。例如一篇QQ日志、一篇博文等展示性文章。 网页三剑客 Dreamweaver+Fireworks+Flash”吧,这个组合就是web1.0时代的产物。 2、web2.0时代的前端开发 前端开发”是从“网页制作”演变而来的。 从2005年开始,互联网...

weixin_30295091的博客 166
上一篇: 搭建个网 - 2
下一篇: 浏览器工作原理相关知识点
OOOOOOh~
博客等级 码龄9年 92粉丝 80原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值