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

深入浅出 CSS 定位:全面解析与实战指南

“批判他人总是想的太简单 剖析自己总是想的太困难”

文章目录

    • 目录
  • 前言
    • 文章有误敬请斧正 不胜感恩!
    • 1. CSS 定位概述
    • 2. 定位类型详解
      • 2.1 static(默认定位)
      • 2.2 relative(相对定位)
      • 2.3 absolute(绝对定位)
      • 2.4 fixed(固定定位)
      • 2.5 sticky(粘性定位)
    • 3. 定位的实际应用
      • 3.1 创建固定导航栏
      • 3.2 实现弹出菜单
      • 3.3 制作粘性侧边栏
    • 4. 常见问题与解决方案
      • 4.1 定位元素脱离文档流导致布局问题
      • 4.2 `z-index` 层级冲突
      • 4.3 `sticky` 定位在某些浏览器不兼容
    • 5. 实战示例
  • 总结

目录

  1. CSS 定位概述
  2. 定位类型详解
    • static(默认定位)
    • relative(相对定位)
    • absolute(绝对定位)
    • fixed(固定定位)
    • sticky(粘性定位)
  3. 定位的实际应用
  4. 常见问题与解决方案
  5. 实战示例
  6. 总结

前言

写在开始:

在当今互联网时代,网页设计不仅需要具备美观的视觉效果,还需确保用户体验的流畅与便捷。而实现这一目标的关键,往往隐藏在细节之中。CSS(层叠样式表)作为前端开发的重要组成部分,其定位(Positioning)机制在布局设计中扮演着至关重要的角色。无论你是初涉前端世界的新手,还是希望提升技能的开发者,掌握 CSS 定位的各种技巧与应用,无疑会为你的网页设计增色不少。本文将以通俗易懂的语言,详细解析 CSS 定位的各类属性,并通过实际案例,助你轻松驾驭这一强大工具。


文章有误敬请斧正 不胜感恩!

以下是本篇文章正文内容,


1. CSS 定位概述

CSS 定位允许你控制 HTML 元素在页面上的摆放位置。通过设置元素的 position 属性,你可以改变其在文档流中的位置,从而实现各种布局效果。理解不同定位类型的特性及其相互关系,是灵活运用 CSS 布局的基础。

2. 定位类型详解

CSS 定位主要包括五种类型:staticrelativeabsolutefixedsticky。下面将逐一介绍它们的特性及使用场景。

2.1 static(默认定位)

定义static 是所有元素的默认定位方式。元素按照正常的文档流进行排列,不受 toprightbottomleftz-index 属性的影响。

特点

  • 不脱离文档流。
  • 无法通过 topright 等属性调整位置。
  • 适用于大多数普通内容元素。

示例

<style>.static-box {position: static;background-color: lightblue;padding: 20px;margin: 10px;}
</style><div class="static-box">这是一个 static 定位的元素。</div>

2.2 relative(相对定位)

定义relative 定位的元素仍然保留在文档流中,但可以通过 toprightbottomleft 属性相对于其原始位置进行偏移。

特点

  • 元素仍占据原位置。
  • 偏移不会影响其他元素的布局。
  • 常用于微调元素位置或作为定位子元素的参考。

示例

<style>.relative-box {position: relative;top: 10px;left: 20px;background-color: lightgreen;padding: 20px;margin: 10px;}
</style><div class="relative-box">这是一个 relative 定位的元素,向下偏移10px,向右偏移20px。</div>

2.3 absolute(绝对定位)

定义absolute 定位的元素脱离文档流,相对于最近的已定位祖先元素(非 static)进行定位。如果没有已定位的祖先,则相对于初始包含块(通常是浏览器窗口)进行定位。

特点

  • 元素不占据原位置,其他元素会像它不存在一样排列。
  • 通过 toprightbottomleft 精确定位。
  • 常用于创建弹出层、工具提示等。

示例

<style>.container {position: relative;width: 300px;height: 200px;background-color: lightgray;}.absolute-box {position: absolute;top: 50px;right: 30px;background-color: coral;padding: 10px;}
</style><div class="container"><div class="absolute-box">这是一个 absolute 定位的元素。</div>
</div>

2.4 fixed(固定定位)

定义fixed 定位的元素相对于浏览器窗口进行定位,即使页面滚动,元素的位置也保持不变。

特点

  • 元素脱离文档流,不占据原位置。
  • 常用于导航栏、返回顶部按钮等需要固定在视口特定位置的元素。
  • 注意在移动设备上可能影响用户体验。

示例

<style>.fixed-box {position: fixed;bottom: 20px;right: 20px;background-color: gold;padding: 15px;}
</style><div class="fixed-box">这是一个 fixed 定位的元素,固定在右下角。</div>

2.5 sticky(粘性定位)

定义sticky 定位结合了 relativefixed 的特性。元素在跨越指定阈值之前按 relative 定位,当超过阈值后固定在视口特定位置。

特点

  • 需要设置 toprightbottomleft 属性来定义阈值。
  • 适用于实现悬停式导航栏或章节标题。

示例

<style>.sticky-box {position: sticky;top: 0;background-color: lightcoral;padding: 10px;}.content {height: 2000px;background: linear-gradient(white, lightgray);}
</style><div class="sticky-box">这是一个 sticky 定位的元素,当滚动到顶部时固定。</div>
<div class="content"></div>

3. 定位的实际应用

了解定位类型后,如何在实际项目中灵活运用呢?以下是一些常见的应用场景:

3.1 创建固定导航栏

使用 fixed 定位可以让导航栏始终保持在页面顶部,提升用户体验。

<style>.navbar {position: fixed;top: 0;left: 0;width: 100%;background-color: #333;color: white;padding: 15px;text-align: center;}.content {margin-top: 60px; /* 避免内容被导航栏覆盖 */padding: 20px;}
</style><div class="navbar">固定导航栏</div>
<div class="content"><p>页面内容...</p>
</div>

3.2 实现弹出菜单

利用 absolute 定位,可以创建相对于按钮的弹出菜单。

<style>.menu-container {position: relative;display: inline-block;}.menu-button {padding: 10px 20px;background-color: #007BFF;color: white;cursor: pointer;}.dropdown-menu {position: absolute;top: 40px;left: 0;background-color: white;border: 1px solid #ccc;display: none; /* 默认隐藏 */}.menu-container:hover .dropdown-menu {display: block; /* 悬停显示菜单 */}.dropdown-menu a {display: block;padding: 10px;text-decoration: none;color: #333;}.dropdown-menu a:hover {background-color: #f1f1f1;}
</style><div class="menu-container"><div class="menu-button">菜单</div><div class="dropdown-menu"><a href="#">选项1</a><a href="#">选项2</a><a href="#">选项3</a></div>
</div>

3.3 制作粘性侧边栏

利用 sticky 定位,可以制作在滚动时固定位置的侧边栏。

<style>.sidebar {position: sticky;top: 20px;width: 200px;background-color: #f4f4f4;padding: 15px;}.main-content {margin-left: 220px;padding: 20px;}
</style><div class="sidebar"><h3>侧边栏</h3><p>固定在视口的侧边内容。</p>
</div>
<div class="main-content"><p>大量内容,滚动查看侧边栏的粘性效果...</p>
</div>

4. 常见问题与解决方案

4.1 定位元素脱离文档流导致布局问题

问题:使用 absolutefixed 定位的元素会脱离文档流,可能导致其他元素布局混乱。

解决方案

  • 确保定位元素的父容器具有适当的定位属性(如 relative),以控制其定位参考。
  • 使用 marginpadding 调整其他元素的位置,避免重叠。
  • 考虑使用 Flexbox 或 Grid 布局结合定位,提升整体布局的灵活性。

4.2 z-index 层级冲突

问题:定位元素可能因 z-index 设置不当而被遮挡或覆盖。

解决方案

  • 设置定位元素的 z-index 属性,确保其在期望的层级。
  • 记住只有定位元素(relativeabsolutefixedsticky)才能使用 z-index
  • 避免不必要的高 z-index 值,保持层级结构清晰。

4.3 sticky 定位在某些浏览器不兼容

问题:虽然现代浏览器大多支持 sticky 定位,但在某些旧版浏览器中可能不兼容。

解决方案

  • 检查目标用户的浏览器兼容性,决定是否使用 sticky 定位。
  • 作为替代方案,可以使用 fixed 定位结合 JavaScript 实现类似效果。
  • 提供合理的回退样式,确保在不支持 sticky 的环境下布局依然美观。

5. 实战示例

下面通过一个实际案例,综合运用多种定位方式,实现一个具有固定导航栏、侧边栏和主内容区域的页面布局。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>实战:多定位布局示例</title><style>/* 全局样式 */body {margin: 0;font-family: Arial, sans-serif;}/* 固定导航栏 */.navbar {position: fixed;top: 0;left: 0;width: 100%;height: 60px;background-color: #333;color: white;display: flex;align-items: center;justify-content: space-between;padding: 0 20px;box-sizing: border-box;z-index: 1000;}.navbar a {color: white;text-decoration: none;margin-left: 15px;}/* 侧边栏 */.sidebar {position: fixed;top: 60px; /* 导航栏高度 */left: 0;width: 200px;height: calc(100% - 60px);background-color: #f4f4f4;padding: 20px;box-sizing: border-box;overflow-y: auto;}.sidebar a {display: block;padding: 10px 0;color: #333;text-decoration: none;}.sidebar a:hover {background-color: #ddd;}/* 主内容区域 */.main-content {margin-top: 60px; /* 导航栏高度 */margin-left: 220px; /* 侧边栏宽度 + 间距 */padding: 20px;box-sizing: border-box;}/* 页脚 */.footer {position: fixed;bottom: 0;left: 0;width: 100%;height: 40px;background-color: #333;color: white;display: flex;align-items: center;justify-content: center;}/* 响应式设计 */@media (max-width: 768px) {.sidebar {width: 150px;}.main-content {margin-left: 170px;}}@media (max-width: 480px) {.navbar, .footer {flex-direction: column;height: auto;padding: 10px;}.sidebar {position: relative;width: 100%;height: auto;margin-bottom: 20px;}.main-content {margin: 0;}}</style>
</head>
<body><!-- 导航栏 --><div class="navbar"><div>我的网站</div><div><a href="#">首页</a><a href="#">关于</a><a href="#">联系</a></div></div><!-- 侧边栏 --><div class="sidebar"><a href="#">链接1</a><a href="#">链接2</a><a href="#">链接3</a><a href="#">链接4</a><a href="#">链接5</a></div><!-- 主内容 --><div class="main-content"><h1>欢迎来到我的网站</h1><p>这里是主内容区域。通过结合使用 fixed 定位的导航栏和侧边栏,以及正常的文档流布局,实现了一个简洁而功能齐全的页面布局。</p><p>你可以根据需要添加更多内容,调整样式,甚至引入响应式设计,让网站在不同设备上都能保持良好的用户体验。</p><p>滚动页面,导航栏和侧边栏将保持固定,确保用户随时可以访问导航链接。</p><!-- 添加更多内容以测试滚动效果 --><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec eros eu lacus vehicula tincidunt. Suspendisse potenti. Donec nec ligula eu purus fermentum facilisis. Aenean a urna nec urna consequat interdum. Vivamus at lectus eu nibh aliquet tincidunt. Donec cursus elit vel ligula malesuada, a vestibulum mi viverra. Sed in sem id erat sollicitudin ullamcorper. Phasellus euismod odio vitae odio bibendum, sit amet interdum justo consequat.</p><!-- 重复上述段落以增加页面长度 --><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec eros eu lacus vehicula tincidunt. Suspendisse potenti. Donec nec ligula eu purus fermentum facilisis. Aenean a urna nec urna consequat interdum. Vivamus at lectus eu nibh aliquet tincidunt. Donec cursus elit vel ligula malesuada, a vestibulum mi viverra. Sed in sem id erat sollicitudin ullamcorper. Phasellus euismod odio vitae odio bibendum, sit amet interdum justo consequat.</p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec eros eu lacus vehicula tincidunt. Suspendisse potenti. Donec nec ligula eu purus fermentum facilisis. Aenean a urna nec urna consequat interdum. Vivamus at lectus eu nibh aliquet tincidunt. Donec cursus elit vel ligula malesuada, a vestibulum mi viverra. Sed in sem id erat sollicitudin ullamcorper. Phasellus euismod odio vitae odio bibendum, sit amet interdum justo consequat.</p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nec eros eu lacus vehicula tincidunt. Suspendisse potenti. Donec nec ligula eu purus fermentum facilisis. Aenean a urna nec urna consequat interdum. Vivamus at lectus eu nibh aliquet tincidunt. Donec cursus elit vel ligula malesuada, a vestibulum mi viverra. Sed in sem id erat sollicitudin ullamcorper. Phasellus euismod odio vitae odio bibendum, sit amet interdum justo consequat.</p></div><!-- 页脚 --><div class="footer">版权所有 &copy; 2024 我的公司</div></body>
</html>

解析

  • 导航栏:使用 fixed 定位,使其固定在页面顶部,并通过 z-index 确保其位于最上层。
  • 侧边栏:同样使用 fixed 定位,固定在导航栏下方,保持在视口左侧。
  • 主内容区域:通过 margin 调整位置,避免与固定的导航栏和侧边栏重叠。
  • 页脚:使用 fixed 定位,固定在页面底部。
  • 响应式设计:通过媒体查询调整布局,使页面在不同屏幕尺寸下依然美观。

总结

CSS 定位是网页布局中不可或缺的工具,通过合理运用 staticrelativeabsolutefixedsticky 等定位类型,可以实现各种复杂且灵活的布局效果。然而,定位元素脱离文档流可能带来一些布局挑战,因此在使用时需谨慎权衡,并结合其他布局技术(如 Flexbox、Grid)共同使用,以达到最佳效果。

掌握 CSS 定位不仅能提升你的前端开发技能,还能帮助你打造出更加专业与用户友好的网页。希望本文的详细解析与实战示例,能助你在 CSS 定位的学习之路上迈出坚实的一步。通过不断的练习与实践,你将能够熟练运用 CSS 定位,设计出令人印象深刻的网页布局。


相关文章:

深入浅出 CSS 定位:全面解析与实战指南

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 目录 前言文章有误敬请斧正 不胜感恩&#xff01;1. CSS 定位概述2. 定位类型详解2.1 static&#xff08;默认定位&#xff09;2.2 relative&#xff08;相对定位&#xff09;2.3 absolute&#xff08;绝对定位&am…...

HTTPS协议详解:从原理到流程,全面解析安全传输的奥秘

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…...

Android 13.0 系统内存优化之修改dalvik虚拟机的内存参数

1.前言 在13.0的系统rom开发定制中,app应用也是运行在dalvik虚拟机上的,所以对于一些内存低的系统中,在某些大应用会出现耗内存 卡顿情况,这是系统分配的内存不够大,在进行耗内存的操作,就会出现频繁gc等等原因造成不流畅的现象,接下来就分析下 虚拟机分配内存的相关原理…...

C# 无边框窗体,加阴影效果、多组件拖动、改变大小等功能完美实现优化版效果体验

一、预览效果 国庆节第一天,祝祖国繁荣昌盛! 1.1 效果图 (WinForm无边框窗体,F11可全屏) 拖动窗体时半透明效果(拖动时参考窗体后面释放位置) 说明:本功能的实现基于网友的原型完善而来,更多代码可以参考他的文章 h...

深入解析 ChatGLM 模型:核心原理、优势与未来应用前景

1. 引言 1.1 ChatGLM 模型概述 ChatGLM 是一类基于自回归语言模型的生成式预训练模型&#xff0c;专门设计用于处理对话系统中的自然语言生成任务。ChatGLM 模型依托于 Transformer 架构&#xff0c;具备高度并行化的计算能力&#xff0c;并能够捕捉长距离的语言依赖关系。在…...

python全栈学习记录(二十二)多态性、封装、绑定方法与非绑定方法

多态性、封装、绑定方法与非绑定方法 文章目录 多态性、封装、绑定方法与非绑定方法一、多态性二、封装三、绑定方法与非绑定方法 一、多态性 多态指的是同一种事物的多种形态&#xff0c;如水&#xff1a;冰、水蒸气、液态水&#xff0c;又如动物&#xff1a;猫、狗、猪。 多…...

用Python制作自己的聊天机器人:从零开始构建智能对话助手

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 近年来,聊天机器人已经成为日常生活中不可或缺的工具,从自动客服到个人助手,聊天机器人在各类应用中广泛存在。如果你想了解如何制作一个自己的聊天机器人,那么这篇文章将带你一步步实现这个目标。我们将使用…...

LabVIEW裂纹深度在线监测系统

随着铁路运输技术的快速发展&#xff0c;火车安全问题成为重中之重&#xff0c;尤其是轮面裂纹的检测和管理。裂纹的出现可能导致严重的列车事故&#xff0c;因此&#xff0c;建立可靠的在线监测系统&#xff0c;实时掌握裂纹情况&#xff0c;对保障铁路运输安全至关重要。 La…...

工业物联网的伦理和社会影响

随着科技的飞速发展&#xff0c;工业物联网&#xff08;IIoT&#xff09;已经成为现代工业领域的重要组成部分。它通过将各种设备、传感器和系统连接起来&#xff0c;实现了生产过程的智能化、自动化和高效化。然而&#xff0c;在享受工业物联网带来的巨大便利和经济效益的同时…...

TCP --- 确认应答机制以及三次握手四次挥手

序言 在前一篇文章中&#xff0c;我们介绍了 UDP协议 (点击查看)&#x1f448;&#xff0c;该协议给我们的感觉就两个字 — 简单&#xff0c;只是将我们的数据进行简单的添加报头然后发送。当然使用起来虽然简单&#xff0c;但是否能送到目的地&#xff0c;那就要看网络的状态了…...

GPT带我学-设计模式17-装饰器模式

概述 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;允许你在不改变对象接口的前提下&#xff0c;动态地给对象添加新功能。这个模式通常用于扩展类的功能。 基本结构 组件接口&#xff08;Component&#xff09;&#xff1a;定义一…...

【Redis】如何在 Ubuntu 上安装 Redis 5

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 本期内容主要介绍如何在 Ubuntu 上安装 Redis5 一些碎碎念&#xff1a; 本来这期内容介绍如何在 Centos 安装 Redis …...

房屋水电费记账本:内置的数组数据击按钮不能删除,页面手动添加的可以删除

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>房租水电费记录</title><script type&qu…...

【ubuntu】apt是什么

目录 1.apt简介 2.常用apt指令 2.1安装 2.2更新列表 2.3更新已经安装的软件包 2.4搜索软件包 2.5显示软件包信息 2.6移除软件包 2.7清理无用的安装包 2.8清理无用的依赖项 3.apt和apt-get 3.1区别 3.2 总结 1.apt简介 apt的全称是advanced package …...

堆排序算法的原理与应用

堆排序&#xff08;Heap Sort&#xff09;是一种基于堆数据结构的比较排序算法。它具有时间复杂度为 O(n log n) 的优点&#xff0c;并且空间复杂度为 O(1)&#xff0c;是一种不稳定的排序算法。本文将详细介绍堆排序的工作原理、步骤以及它的应用场景。 一、堆排序的基本概念…...

【2024版本】Mac/Windows IDEA安装教程

IDEA 2024版本真的很强大&#xff0c;此外JDK发布了最新稳定版 JDK21 &#xff0c;只有新版本支持JDK 21、JDK22。原来数据库插件不支持redis等一些NoSql的数据库的连接&#xff0c;如果要使用需要自己单独装收费的插件。直接打开idea就很吃内存了&#xff0c;再打开其他一大堆…...

Oracle bbed编译安装及配置

1. 什么是bbed &#xff1f; Oracle Block Brower and EDitor Tool,是一个可以对oracle data block进行查看&#xff0c;编辑修改的内置工具。对于bbed&#xff0c;oracle本身是不提供支持的。 2. 如何编译bbed环境&#xff1f; 10g版本&#xff1a; 1) 编译bbed cd $ORACL…...

MindSearch 部署到Github Codespace 和 Hugging Face Space

conda init后需要重开终端&#xff0c;不然一键复制会导致后续pip install会安装错环境 还是报错 ImportError: cannot import name AutoRegister from class_registry (/opt/conda/envs/mindsearch/lib/python3.10/site-packages/class_registry/__init__.py)pip install --…...

【Maven】依赖管理,Maven仓库,Maven核心功能

Maven 是一个项目管理工具&#xff0c;基于 POM&#xff08;Project Object Model&#xff0c;项目对象模型&#xff09;的概念&#xff0c;Maven 可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件 大白话&#xff1a;Maven 是一个项目管理工…...

Android wifi信号和漫游信号设置

1.wifi信号 /packages/modules/Wifi/framework/java/android/net/wifi/WifiManager.java Deprecated public static int calculateSignalLevel(int rssi, int numLevels) { if (rssi < MIN_RSSI) { //*/update wifi signal return 1;…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...

C#最佳实践:为何优先使用as或is而非强制转换

C#最佳实践&#xff1a;为何优先使用as或is而非强制转换 在 C# 的编程世界里&#xff0c;类型转换是我们经常会遇到的操作。就像在现实生活中&#xff0c;我们可能需要把不同形状的物品重新整理归类一样&#xff0c;在代码里&#xff0c;我们也常常需要将一个数据类型转换为另…...

新版NANO下载烧录过程

一、序言 搭建 Jetson 系列产品烧录系统的环境需要在电脑主机上安装 Ubuntu 系统。此处使用 18.04 LTS。 二、环境搭建 1、安装库 $ sudo apt-get install qemu-user-static$ sudo apt-get install python 搭建环境的过程需要这个应用库来将某些 NVIDIA 软件组件安装到 Je…...

学习 Hooks【Plan - June - Week 2】

一、React API React 提供了丰富的核心 API&#xff0c;用于创建组件、管理状态、处理副作用、优化性能等。本文档总结 React 常用的 API 方法和组件。 1. React 核心 API React.createElement(type, props, …children) 用于创建 React 元素&#xff0c;JSX 会被编译成该函数…...