惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
月光博客
月光博客
雷峰网
雷峰网
WordPress大学
WordPress大学
博客园 - 司徒正美
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security @ Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
爱范儿
爱范儿
W
WeLiveSecurity
J
Java Code Geeks
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
T
Threatpost
The Cloudflare Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
N
Netflix TechBlog - Medium
Latest news
Latest news
V2EX - 技术
V2EX - 技术
小众软件
小众软件
T
The Blog of Author Tim Ferriss
A
Arctic Wolf
B
Blog RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
C
Check Point Blog
N
News | PayPal Newsroom
Cyberwarzone
Cyberwarzone
V
V2EX
TaoSecurity Blog
TaoSecurity Blog
P
Privacy & Cybersecurity Law Blog
Microsoft Security Blog
Microsoft Security Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
D
DataBreaches.Net
F
Fortinet All Blogs
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
K
Kaspersky official blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google DeepMind News
Google DeepMind News
C
CXSECURITY Database RSS Feed - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com

碎言

不懂就别瞎掰掰:【程序员的常识】写的什么玩意? AI 辅助编程下的程序设计与代码编写 使用 Next.js 和 Tailwind CSS 构建可编辑和删除的 ToDo 待办事项应用 探索编程新境界:MarsCode 助你一臂之力 使用 Next.js 和 Tailwind CSS 搭建静态图片展示站点并部署到 Vercel AI 辅助编程:免费工具的优缺点及官网一览 GitHub push更新总是失败,写个python脚本解决 把博客从GitHub迁移到到了vercel ComfyUI 和 Flux.1 安装与使用教程 Flux.1 入门必知:硬件、环境、模型 Git项目的子文件夹中的内容无法同步到远程仓库的解决方法 blender流体Fluid使用中没有流体、流体穿模等一些问题的解决方法 博客聚合网站:积薪,竟然关闭了! blender日常使用中的一些技巧 虽然只有我自己在用,但还是更新了碎言博客的源代码, 与其在迷茫中困惑,不如在努力中前进 差点忘了我还有一个博客... 秧歌、博客和AI 终于熬到了新手上路 好久没有更新博客了。。。 老妈大腿骨骨折,最近一直在医院护理 Hello, September! Ubuntu开机自动启动Docker容器运行WordPress Docker 简单快速安装部署WordPress Docker下安装MySQL 加碘盐能防核辐射的话,还怕什么核战争? shields.io 一个简洁、一致、清晰的徽章 Ubuntu下使用root登录ssh的设置 GitHub Actions 构建、部署 Next.js项目 我又用回了"IE"--edge ubuntu-22-live-server 设置固定IP Next项目部署GitHub pages的一些坑 整理了一个下午的收藏夹...... 短暂而忙碌的暑假即将谢幕 GitHub Actions 是干什么用的? 放弃Next.js重构博客:经验、教训与未来技术探索 关于Google LCP 问题:超过了2.5秒 验证已通过 仅用了几个小时就使用next.js重构博客的所有功能 关于使用Next.js重构博客构思的记录 使用Tailwind css和JavaScript实现一个简单的返回顶部功能 罗技K380 F1-F12 功能键锁定 PHILIPS猛禽SPK8404机械键盘手感真是超赞! 局域网的DNS设置192.168.0.1与8.8.8.8,114.114.114.114有什么区别? 史诗结合的浪漫:《长安三万里》 聊 聊 友 情 链 接 1767个中文博客的数据洞察:中文博主都喜欢干啥? python requests 设置读取超时时间 八月回顾:博客之路,一路前行 Docker基础学习笔记和常用命令汇总 vim常用命令整理 Ubuntu 22 安装Docker过程记录 使用python结合feedparser模块编写自己的私人RSS订阅程序 博客大数据分析:38880条博文揭示博主最爱写什么? Windows下国产杀毒软件还有选择吗?火绒安全可以一试。 export exports module.exports 这三个命令的区别是什么如何使用? 时代的变迁:从56K拨号上网到1G光纤的回忆 理工计算机专业准大学生如何选配笔记本? 使用JavaScript编写自己的私人RSS订阅程序 如何使用CSS为博客标题设置彩虹颜色? 最终还是决定使用传统的网线来解决千兆速率问题。 1300M USB双频2.4+5G无线网卡的一些常识和使用技巧 Python Gui新框架:NiceGui之初体验 pycharm 正在关闭项目(closing project)无法关闭退出程序的解决方法! 速度与优雅:博客性能优化之旅 久了,博客主题就会一直做减法 七月的焦虑 在react中使用复制插件clipboard.js react中如把HTML代码转成字符串进行渲染? react useEffect()中使用lodash库中的防抖debounce react useEffect() 为什么在开发模式的时候会执行两次? 七年之痒!别了我曾深爱的MacBookPro 前端React+Material UI开发环境的快速搭建 一键更新Github部署的静态博客 编程新手学习过程中如何更好的提问? Typed.js 一款有意思的网页打字机效果库 解决错误 ERROR [WinError 10049] 在其上下文中,该请求的地址无效。 Stable Diffusion 相关教程与模型的记录 Stable Diffusion ControlNet openpose 报错无法使用 在react或vue中使用localStorage存储数据 使用React+Vite+TailwindCSS+daisyUI打造一个简单的ToDos 碎言静态博客 聊聊Python中的装饰器 npm更换源与nrm安装与配置 pip临时修改下载源 Vue快速学习笔记(9)Vuetify配置及简单使用 Vue快速学习笔记(8)webpack4.X配置Vue开发打包环境 Vue快速学习笔记(5)使用路由vue-router(1) Vue快速学习笔记(4)Vue组件中的数据传递 Vue快速学习笔记(3)Vue的组件 Vue快速学习笔记(2)Vue中的监听与计算属性 Vue快速学习笔记(1)Vue实例基础 基于Django构建的小学生英文单词背写检测考试系统。 如何在Python程序中使用配置文件.ini(ConfigParser) 写在我的博客PV10万时:聊聊编程与画画 python3函数学习笔记简单总结 PythonINI配置文件读写的简单方法 Python open()函数文件打开、读、写操作总结 Python os.path模块中一些常用方法的整理总结 Python 采集数据三步曲之[Requests + re.py模块进行数据采集] Python 采集数据三步曲之[Requests开源协议的HTTP 库]
2023重学前端:HTML CSS JavaScript基础复习
J.sky · 2023-04-13 · via 碎言

最近写了一些前端的项目使用了一些框架例,但是突然发现自己的前端基础是如此的渣,渣的自己好尴尬,遂决定重新学习并复习一下前端的HTML CSS JavaScript基础。

HTML css JavaScript是什么?

HTML是一种标记语言,用来结构化我们的网页内容并赋予内容含义,例如定义段落、标题和数据表,或在页面中嵌入图片和视频。 CSS 是一种样式规则语言,可将样式应用于 HTML 内容,例如设置背景颜色和字体,在多个列中布局内容。 JavaScript 是一种脚本语言,可以用来创建动态更新的内容,控制多媒体,制作图像动画,还有很多。(好吧,虽然它不是万能的,但可以通过简短的代码来实现神奇的功能。)

HTML——超文本标记语言

简介

HTML(HyperText Markup Language,超文本标记语言)是一种用来告知浏览器如何组织页面的标记语言。

块级元素和内联元素

典型的例子就是:

<p>我是块级元素</p>
<span>我是内联元素<span/>

块级别的元素占用一行宽度,内联的则相互连接在一起,当然你可以使用css设置其为块级的元素。

属性

每个标签都有自己的属性,比如表单的标签会有很多的属性,例如class id href src等。

一个完整的HTML文档

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8" />
    <title>我的测试站点</title>
</head>
<body>
    <p>这是我的页面</p>
</body>
</html>

<!DOCTYPE html>: 声明文档类型。

<html>元素,这个元素包裹了页面中所有的内容,有时被称为根元素。

<head>元素,这个元素是一个容器,它包含了所有你想包含在HTML页面中但不在HTML页面中显示的内容,<head>元素中包含了例如css、js、meta等。

<meta charset="utf-8" />这是一个HTML文档的属性,meta有很多文档属性。

<title>是文档的标题

<body>元素是页面内容文档,包含了你访问页面时所有显示在页面上的内容,包含文本、图片、视频、游戏、可播放音频轨道等等。

head meta HTML的元信息

<head>
<title>头部信息</title>
</head>

头部信息在HTML加载后并不会像body内容一样渲染在页面中,head的作用是保存一些页面中的元信息。 元数据在某些大网站中会有很多,一些比较常用的有:

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>“头”里有什么——HTML 元信息 - 学习 Web 开发 | MDN</title>
<meta name="author" content="Chris Mills" />
<meta name="description" content="description" />
<link rel="icon" href="favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="my-css-file.css" />

还有一些例如连接css、js文件的,站点图标favicon的。 还可以在head中的<script></script>中直接写入JavaScript,<style></style>中直接写css样式。

body HTML文档的具体内容

body用来组织页面需要渲染的内容,所涉及的标签很多,比如文本、列表、表格、链接、图片和多媒体。 标签很多,但他们都是结构化的可以嵌套。随便打开一个互联网的页面都可以看到这些标签。

CSS:层叠样式表

CSS(层叠样式表)用于设置和布置网页——例如,更改内容的字体、颜色、大小和间距,将其拆分为多个列,或添加动画和其他装饰功能。这个模块为你掌握 CSS 的过程提供了一个温和的开端,包括它如何工作的基础知识,语法是什么样的,以及如何开始使用它来为 HTML 添加样式。

css应用的方式有三种:

  1. 外部样式表:通过标签引入。
  2. 内部样式表:将 CSS 放在 HTML 文件<head>标签里的<style>标签之中。
  3. 内联样式:内联样式表存在于 HTML 元素的 style 属性之中。

不推荐内联样式,因为不宜维护。

选择器

css的选择器就是标记当前的css样式属于HTML文档中的所对应的标签。 选择器的种类:类型、类、和ID选择器,也可以通过属性来选择元素,另外还有伪类伪元素和关系选择器。

css样式的优先级

  1. 最顶部:!important会覆盖页面内任何位置的元素样式.
  2. 内联样式
  3. ID选择器
  4. class 伪类 属性选择器
  5. 标签 伪元素选择器
  6. 通配符、自雷选择器、兄弟选择器
  7. 继承的样式。

css 长度

绝对长度:

单位 名称 等价换算

cm 厘米 1cm = 37.8px = 25.2/64in

mm 毫米 1mm = 1/10th of 1cm

Q 四分之一毫米 1Q = 1/40th of 1cm

in 英寸 1in = 2.54cm = 96px

pc 派卡 1pc = 1/6th of 1in

pt 点 1pt = 1/72th of 1in

px 像素 1px = 1/96th of 1in

相对长度:

单位 相对于

em 在 font-size 中使用是相对于父元素的字体大小,在其他属性中使用是相对于自身的字体大小,如 width。

ex 字符“x”的高度。

ch 数字“0”的宽度。

rem 根元素的字体大小。

lh 元素的行高。

rlh 根元素的行高。当用于根元素的 font-size 或 line-height 属性时,它指的是这些属性的初始值。

vw 视口宽度的 1%。

vh 视口高度的 1%。

vmin 视口较小尺寸的 1%。

vmax 视口大尺寸的 1%。

vb 在根元素的块向上,初始包含块的尺寸的 1%。

vi 在根元素的行向上,初始包含块的尺寸的 1%。

svw、svh 分别为视口较小尺寸的宽度和高度的 1%。

lvw、lvh 分别为视口大尺寸的宽度和高度的 1%。

dvw、dvh 分别为动态视口的宽度和高度的 1%。

其他一些细节

这里对css的一些细节不在讨论,因为其内容及其繁多,包含了文本、图片、多媒体、盒模型等等。 属性众多,可以在这里看到详细的教程:css教程

重点讨论css布局

display是css布局中的一个重要的属性,其属性决定了元素在页面中的布局表现方式。

CSS display 属性设置元素是否被视为块或者内联元素以及用于子元素的布局,例如流式布局、网格布局或弹性布局。 display详解

弹性盒子:flex

flex

如下代码,其中#demo_adisplay:flex;,如果删除这个属性,你会发现,三个盒子会成为流式布局,及每一个盒子都会铺满整个横向的空间,这个例子是比较典型的弹性盒子的例子。

<style>
    #demo_a {
        display:flex;
        width: 300px;
    }
    .demo_box {
        width:100px;
        height: 100px;
        background-color: aqua;
    }
    </style>

<div id="demo_a">
    <div class="demo_box">aaa</div>
    <div class="demo_box">bbb</div>
    <div class="demo_box">ccc</div>
</div>

CSS grid 网格

这里还是举一个例子:

<style>
.grid-demo {
display: grid;
grid-template-columns:1fr 1fr 1fr;
grid-gap: 2px;
background-color: #2196F3;
}
.grid-demo > div {
background-color: rgba(255, 255, 255, 0.8);
text-align: center;
font-size: 30px;
height:80px;
}
</style>
<div class="grid-demo">
<div class="item1">1</div>
<div class="item2">2</div>
<div class="item3">3</div>  
<div class="item4">4</div>
<div class="item5">5</div>
<div class="item6">6</div>
</div>

浮动 float

float在页面的文字与图片的排版中使用率还是很高的,还有就是清除浮动。下边是一个很好的例子。

float

响应式布局

HTML的头部添加如下meta标签:

<meta name="viewport" content="width=device-width,initial-scale=1">

这个元标签告诉移动端浏览器,它们应该将视口宽度设定为设备的宽度,将文档放大到其预期大小的 100%,在移动端以你所希望的为移动优化的大小展示文档。

媒体查询

@media media-type and (media-feature-rule) {
/* CSS rules go here */
}

它由以下部分组成: 一个媒体类型,告诉浏览器这段代码是用在什么类型的媒体上的(例如印刷品或者屏幕); 一个媒体表达式,是一个被包含的 CSS 生效所需的规则或者测试; 一组 CSS 规则,会在测试通过且媒体类型正确的时候应用。

这里有一个不错的例子:

媒体查询响应式布局

css的内容众多,以上只是一个概括的复习,可以通过提供的连接延伸阅读。

JavaScript

JavaScript 是一种脚本,一门编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息,而是实时的内容更新,交互式的地图,2D/3D 动画,滚动播放的视频等等。JavaScript 怎能缺席。它是标准 Web 技术蛋糕的第三层,其中 HTML 和 CSS 我们已经在学习中心的其他部分进行了详细的讲解。

一个简单的JavaScript小栗子:

<button id="bt-01">hello</button>
<script>
    const btn = document.getElementById("bt-01");

    function btn_click() {
        let name = prompt("请输入一个新的字符串:");
        btn.innerHTML = name
    }

    btn.addEventListener("click", btn_click);
</script>

通过这个小栗子我们就可以了解到,JavaScript可以动态的修改网页中的元素,但是JavaScript的功能远远不止这些。

页面中添加JavaScript的方式

  1. 内联方式
  2. 内部方式
  3. 外部方式

其中内部和外部方式使用的比较多,上边的例子就是使用的内部方式连接到JavaScript。

JavaScript变量

可以通过 var let来定义变量,let是现代JavaScript定义变量的方法。

变量类型

Number String Boolean Array Object

数字和字符串的操作

网上教程较多,这里略过了。

数组

一些基础的数组操作

条件和循环

略过

函数和返回值

略过

事件

EventTarget.addEventListener()

为dom对象添加事件,该方法允许为一个事件添加多个监听器。 在事件处理函数内部,您可能会看到一个固定指定名称的参数,例如event,evt或简单的e。这被称为事件对象,它被自动传递给事件处理函数,以提供额外的功能和信息。

在事件对象上调用preventDefault()函数,这样就可以停止了表单提交。

事件冒泡及捕获

标准事件对象具有可用的名为 stopPropagation()的函数,当在事件对象上调用该函数时,它只会让当前事件处理程序运行,但事件不会在冒泡链上进一步扩大,因此将不会有更多事件处理器被运行 (不会向上冒泡)。

对象原型和原型链

其实这是一个比较复杂的内容,这里只是简单的概括一下。JavaScript 中所有的对象都有一个内置属性,称为它的 prototype(原型)。

实际上所有浏览器都使用 __proto__。访问对象原型的标准方法是 Object.getPrototypeOf()

JavaScript 异步

由于内容较多,另起一篇笔记: 从回调函数到JavaScript异步编程

JavaScript的事件

未完待续。。。。。