前端开发知识梳理 - HTMLCSS
1. 盒模型
由内容区(content)、内边距(padding)、边框(border)和外边距(margin)组成。
- (1)标准盒模型(box-sizing默认值, content-box):width/height = content(尺寸),元素的总宽度/高度 = width/height + padding + border
- (2)怪异盒模型(box-sizing: border-box):width/height = content + padding + border(尺寸),即元素的总宽度/总高度 = width/height
2. HTML5 新特性
HTML5 是 HTML 语言的第五个主要版本,引入了许多新特性,极大地增强了网页的功能和表现力,以下是一些重要的新特性:
语义化标签
HTML5 引入了一系列语义化标签,使得代码结构更加清晰,便于开发者理解和搜索引擎解析。
<header>:通常用于表示页面或页面中某个区域的头部,包含网站标题、导航栏等内容。<nav>:专门用于定义导航链接的区域,比如网站的菜单导航。<article>:表示一个独立的、完整的内容块,可独立于页面其他部分被复用,如一篇博客文章、论坛帖子等。<section>:用于对页面进行分块,将相关内容组织在一起,例如文章的章节。<aside>:表示与页面主要内容间接相关的部分,如侧边栏、广告等。<footer>:一般用于页面或页面中某个区域的底部,包含版权信息、联系方式等。
表单增强
HTML5 为表单元素增加了许多新的属性和输入类型,提升了表单的用户体验和数据验证能力。
- 新的输入类型:如
email、url、number、date、range、color等。例如,使用email类型时,浏览器会自动验证输入是否为有效的电子邮件地址。
<input type="email" placeholder="请输入邮箱地址">
- 新的表单属性:
placeholder用于在输入框内显示提示信息;required表示该字段为必填项;pattern可使用正则表达式对输入内容进行验证。
<input type="text" placeholder="请输入用户名" required pattern="[a-zA-Z]{3,}">
多媒体支持
HTML5 原生支持音频和视频播放,无需依赖第三方插件(如 Flash)。
<audio>标签:用于在网页中嵌入音频文件,支持多种音频格式,如 MP3、OGG 等。
<audio controls><source src="example.mp3" type="audio/mpeg">您的浏览器不支持音频播放。
</audio>
<video>标签:用于嵌入视频文件,支持 MP4、WebM、OGG 等格式。
<video width="320" height="240" controls><source src="example.mp4" type="video/mp4">您的浏览器不支持视频播放。
</video>
画布(<canvas>)
<canvas> 元素提供了一个可以使用 JavaScript 进行绘图的区域,可用于创建动态图形、动画、游戏等。
<canvas id="myCanvas" width="200" height="100"></canvas>
<script>const canvas = document.getElementById('myCanvas');const ctx = canvas.getContext('2d');ctx.fillStyle = 'red';ctx.fillRect(10, 10, 50, 50);
</script>
上述代码在画布上绘制了一个红色的矩形。
地理定位(Geolocation)
HTML5 的地理定位 API 允许网页获取用户的地理位置信息,可用于开发地图应用、附近商家推荐等功能。
if (navigator.geolocation) {navigator.geolocation.getCurrentPosition(function(position) {const latitude = position.coords.latitude;const longitude = position.coords.longitude;console.log(`纬度: ${latitude}, 经度: ${longitude}`);}, function(error) {console.log(`定位失败: ${error.message}`);});
} else {console.log('您的浏览器不支持地理定位功能。');
}
本地存储
HTML5 提供了 localStorage 和 sessionStorage 两种本地存储方式,用于在浏览器中存储数据。
localStorage:数据会永久存储在浏览器中,除非手动删除,否则不会过期。
// 存储数据
localStorage.setItem('username', 'John');
// 获取数据
const username = localStorage.getItem('username');
console.log(username);
sessionStorage:数据仅在当前会话期间有效,关闭浏览器窗口或标签页后数据会被清除。
// 存储数据
sessionStorage.setItem('message', 'Hello, World!');
// 获取数据
const message = sessionStorage.getItem('message');
console.log(message);
Web Workers
Web Workers 允许在浏览器中创建独立于主线程的后台线程,用于执行耗时的脚本,避免阻塞主线程,提高页面的响应性能。
// main.js
if (typeof(Worker) !== "undefined") {const worker = new Worker('worker.js');worker.postMessage('开始计算');worker.onmessage = function(event) {console.log('计算结果: ' + event.data);};
} else {console.log('您的浏览器不支持 Web Workers。');
}// worker.js
onmessage = function(event) {let result = 0;for (let i = 0; i < 1000000; i++) {result += i;}postMessage(result);
};
WebSocket
WebSocket 提供了一种在浏览器和服务器之间进行实时双向通信的机制,适用于实时聊天、实时数据更新等场景。
// 客户端代码
const socket = new WebSocket('ws://example.com/socket');
socket.onopen = function() {socket.send('Hello, server!');
};
socket.onmessage = function(event) {console.log('收到服务器消息: ' + event.data);
};
socket.onclose = function() {console.log('连接已关闭');
};
3. 响应式布局
px:像素,相对长度单位,它的大小取决于屏幕的分辨率,是一个固定值,不能够自适应。
em:相对长度的单位,相对于当前对象内文本的字体尺寸,未设置则默认是浏览器默认字体尺寸。
rem:CSS3 中新增的一个相对长度单位,相对于根元素 的 font-size 字体大小,根元素字体大小未设置,使用浏览器默认字体大小。
vw:相对于视口的宽度。视口被均分为100单位的 vw。
vh:相对视口高度,视口被均分为100单位的 vh。
vmin:相对于视口宽度或高度中较小的那个。其中最小的那个被均分为100单位的 vmin。
vmax:相对于视口宽度或高度中较大的那个。其中最大的那个被均分为100单位的 vmax。
- (1)在移动端网页开发中,页面要做成响应式的,可使用 rem 配合媒体查询实现。
原理: 通过媒体查询,能够在屏幕尺寸发生改变时,重置 html 根元素的字体大小;页面中的元素都是使用rem 为单位设置的尺寸,因此只要改变根元素字体大小,页面中的其他元素的尺寸就自动跟着修改。 - (2)利用 vw 和rem实现响应式。
原理: 由于 vw 被更多浏览器兼容之后,在做移动端响应式页面时, 通常使用 vw 配合 rem 。
原理是使用vw设置根元素 html 字体的大小,当窗口大小发生改变,vw 代表的尺寸随着修改,无需加入媒体查询,页面中的其他元素仍使用rem为单位,就可实现响应式。
// 【(1)只使用rem示例】,需要一直通过媒体查询分段设置html根元素的字体大小。
// 下面例子中,屏幕大于等于1025px,就一直根据16px来计算了。
html {font-size: 16px; /* 默认大小 */
}@media (max-width: 600px) {html {font-size: 14px; /* 小屏幕设备 */}
}@media (min-width: 601px) and (max-width: 1024px) {html {font-size: 15px; /* 中等屏幕设备 */}
}@media (min-width: 1025px) {html {font-size: 16px; /* 大屏幕设备 */}
}//页面代码
div{ width: 10rem;}
//【(2)rem+vw结合示例】,不需要在多个断点处设置多个媒体查询
html {font-size: calc(16px + 0.5vw); /* 基于视口宽度动态调整 */
}@media (max-width: 600px) {html {font-size: 14px; /* 小屏幕设备 */}
}
HTML 部分
- 简述 HTML5 有哪些新特性?
- HTML5 的语义化标签有哪些,使用语义化标签的好处是什么?(语义化标签)
- 说说
<canvas>元素的作用和使用场景。(<canvas>元素) <video>和<audio>标签的常见属性有哪些?(音视频标签)- 如何在 HTML 中实现文件上传功能?(文件上传)
- 简述 HTML 中
meta标签的作用和常见用法。(meta标签) - 如何在 HTML 中实现响应式图片?(响应式图片)
- 说说
<datalist>标签的用途。(<datalist>标签) - 如何优化 HTML 代码的性能?(性能优化)
- 简述 HTML 中
noscript标签的作用。(noscript标签) - 如何在 HTML 中创建一个表格并设置表头和单元格样式?(表格创建)
- 说说 HTML 中
iframe的优缺点。(iframe标签) - 如何在 HTML 中实现锚点链接?(锚点链接)
- 简述 HTML 中
web storage(localStorage和sessionStorage)的区别和使用方法。(web storage) - 如何在 HTML 中实现多列布局?(多列布局)
- 说说 HTML 中
form表单的enctype属性有哪些取值和用途。(表单enctype属性) - 如何在 HTML 中实现拖放功能?(拖放功能)
- 简述 HTML 中
keygen标签的作用(虽然已被弃用)。(keygen标签) - 如何在 HTML 中创建一个无序列表和有序列表,并设置列表样式?(列表创建)
- 说说 HTML 中
ruby、rt和rp标签的作用。(ruby相关标签) - 如何在 HTML 中实现模态框(弹出框)?(模态框实现)
- 简述 HTML 中
wbr标签的用途。(wbr标签) - 如何在 HTML 中实现分页功能?(分页功能)
- 说说 HTML 中
output标签的作用。(output标签) - 如何在 HTML 中设置页面的标题和图标?(页面标题和图标)
CSS 部分
- 简述 CSS 盒模型的组成部分。(盒模型)
- 如何清除浮动,有哪些方法?(清除浮动)
- 说说 CSS 中的定位方式有哪些,以及它们的区别。(定位方式)
- 如何实现水平和垂直居中,有哪些常见方法?(元素居中)
- 简述 CSS 中的
flexbox布局和它的主要属性。(flexbox布局) - 说说 CSS 中的
grid布局和它的主要属性。(grid布局) - 如何使用 CSS 实现响应式布局?(响应式布局)
- 简述 CSS 中的选择器有哪些,优先级是如何计算的?(选择器和优先级)
- 说说 CSS 中的伪类和伪元素有哪些,以及它们的区别。(伪类和伪元素)
- 如何使用 CSS 实现动画效果,有哪些方法?(动画效果)
- 简述 CSS 中的过渡效果和如何使用。(过渡效果)
- 说说 CSS 中的背景属性有哪些,如何实现背景渐变?(背景属性和渐变)
- 如何使用 CSS 实现文本溢出省略号效果?(文本溢出省略)
- 简述 CSS 中的字体属性有哪些,如何使用自定义字体?(字体属性)
- 说说 CSS 中的
box-shadow和text-shadow属性的用法。(阴影属性) - 如何使用 CSS 实现三角形效果?(三角形效果)
- 简述 CSS 中的
transform属性有哪些取值和用途。(transform属性) - 说说 CSS 中的
opacity和rgba的区别。(透明度) - 如何使用 CSS 实现多列文本布局?(多列文本布局)
- 简述 CSS 中的
filter属性的作用和常见用法。(filter属性) - 说说 CSS 中的
calc()函数的用途。(calc()函数) - 如何使用 CSS 实现粘性定位(
sticky)?(粘性定位) - 简述 CSS 中的
will-change属性的作用。(will-change属性) - 说说 CSS 中的
mix-blend-mode属性的用途。(混合模式) - 如何使用 CSS 实现等高布局?(等高布局)
- 简述 CSS 中的
perspective属性的作用。(透视属性) - 说说 CSS 中的
backface-visibility属性的用途。(背面可见性) - 如何使用 CSS 实现滚动动画效果?(滚动动画)
- 简述 CSS 中的
clip-path属性的作用和用法。(裁剪路径) - 说说 CSS 中的
shape-outside属性的用途。(形状外边距)
HTML 和 CSS 综合部分
- 如何实现一个响应式的导航栏,结合 HTML 和 CSS?(响应式导航栏)
- 简述如何使用 HTML 和 CSS 实现一个卡片式布局。(卡片式布局)
- 说说如何使用 HTML 和 CSS 实现一个轮播图效果。(轮播图效果)
- 如何使用 HTML 和 CSS 实现一个下拉菜单?(下拉菜单)
- 简述如何使用 HTML 和 CSS 实现一个瀑布流布局。(瀑布流布局)
- 说说如何使用 HTML 和 CSS 实现一个汉堡菜单(移动端菜单)。(汉堡菜单)
- 如何使用 HTML 和 CSS 实现一个选项卡切换效果?(选项卡切换)
- 简述如何使用 HTML 和 CSS 实现一个折叠面板效果。(折叠面板)
- 说说如何使用 HTML 和 CSS 实现一个进度条效果。(进度条效果)
- 如何使用 HTML 和 CSS 实现一个模态对话框(弹窗)?(模态对话框)
- 简述如何使用 HTML 和 CSS 实现一个侧边栏菜单。(侧边栏菜单)
- 说说如何使用 HTML 和 CSS 实现一个粘性页脚(始终在底部)。(粘性页脚)
- 如何使用 HTML 和 CSS 实现一个网格布局的图片画廊?(图片画廊)
- 简述如何使用 HTML 和 CSS 实现一个 3D 翻转效果的卡片。(3D 翻转卡片)
- 说说如何使用 HTML 和 CSS 实现一个响应式的表格。(响应式表格)
- 如何使用 HTML 和 CSS 实现一个渐变边框效果?(渐变边框)
- 简述如何使用 HTML 和 CSS 实现一个波浪动画效果。(波浪动画)
- 说说如何使用 HTML 和 CSS 实现一个打字机效果的文本。(打字机效果)
- 如何使用 HTML 和 CSS 实现一个可折叠的侧边栏?(可折叠侧边栏)
- 简述如何使用 HTML 和 CSS 实现一个饼图效果。(饼图效果)
- 说说如何使用 HTML 和 CSS 实现一个鼠标悬停放大图片效果。(图片放大效果)
- 如何使用 HTML 和 CSS 实现一个动画加载图标?(加载图标)
- 简述如何使用 HTML 和 CSS 实现一个响应式的表单。(响应式表单)
- 说说如何使用 HTML 和 CSS 实现一个视差滚动效果。(视差滚动)
- 如何使用 HTML 和 CSS 实现一个立体按钮效果?(立体按钮)
- 简述如何使用 HTML 和 CSS 实现一个线条动画效果。(线条动画)
- 说说如何使用 HTML 和 CSS 实现一个卡片翻转效果。(卡片翻转)
- 如何使用 HTML 和 CSS 实现一个可拖动的元素?(可拖动元素)
- 简述如何使用 HTML 和 CSS 实现一个彩虹渐变文本效果。(彩虹渐变文本)
- 说说如何使用 HTML 和 CSS 实现一个模糊背景效果。(模糊背景)
- 如何使用 HTML 和 CSS 实现一个旋转木马效果。(旋转木马效果)
- 简述如何使用 HTML 和 CSS 实现一个水波动画效果。(水波动画)
- 说说如何使用 HTML 和 CSS 实现一个呼吸灯效果的按钮。(呼吸灯按钮)
- 如何使用 HTML 和 CSS 实现一个闪烁文本效果。(闪烁文本)
- 简述如何使用 HTML 和 CSS 实现一个弹性卡片效果。(弹性卡片)
- 说说如何使用 HTML 和 CSS 实现一个倾斜卡片布局。(倾斜卡片布局)
- 如何使用 HTML 和 CSS 实现一个发光文本效果。(发光文本)
- 简述如何使用 HTML 和 CSS 实现一个动态网格布局。(动态网格布局)
- 说说如何使用 HTML 和 CSS 实现一个涟漪效果的按钮。(涟漪按钮)
- 如何使用 HTML 和 CSS 实现一个火焰动画效果。(火焰动画)
- 简述如何使用 HTML 和 CSS 实现一个收缩展开的列表。(收缩展开列表)
- 说说如何使用 HTML 和 CSS 实现一个折纸效果的卡片。(折纸卡片)
- 如何使用 HTML 和 CSS 实现一个烟雾动画效果。(烟雾动画)
- 简述如何使用 HTML 和 CSS 实现一个闪烁边框效果。(闪烁边框)
- 说说如何使用 HTML 和 CSS 实现一个立体导航栏效果。(立体导航栏)
相关文章:
前端开发知识梳理 - HTMLCSS
1. 盒模型 由内容区(content)、内边距(padding)、边框(border)和外边距(margin)组成。 (1)标准盒模型(box-sizing默认值, content-boxÿ…...
nginx中的proxy_set_header参数详解
在使用 Nginx 作为反向代理服务器时,proxy_set_header 指令扮演着至关重要的角色。它允许我们自定义请求头信息,将客户端请求传递给上游服务器时,添加或修改特定的信息,从而实现更灵活的代理功能。本文将深入探讨 proxy_set_heade…...
MapReduce是什么?
MapReduce 是一种编程模型,最初由 Google 提出,旨在处理大规模数据集。它是分布式计算的一个重要概念,通常用于处理海量数据并进行并行计算。MapReduce的基本思想是将计算任务分解为两个阶段:Map 阶段和 Reduce 阶段。 Map 阶段&a…...
Text2Sql:开启自然语言与数据库交互新时代(3030)
一、Text2Sql 简介 在当今数字化时代,数据处理和分析的需求日益增长。对于众多非技术专业人员而言,数据库操作的复杂性常常成为他们获取所需信息的障碍。而 Text2Sql 技术的出现,为这一问题提供了有效的解决方案。 Text2Sql,即文…...
《图解设计模式》笔记(五)一致性
十一、Composite模式:容器与内容的一致性 像文件夹与文件一样,文件夹中可以放子文件夹与文件,再比如容器中可以放更小的容器和具体内容。 Composite模式:使容器与内容具有一致性,创造出递归结构。 Composite&#x…...
华为支付-免密支付接入免密代扣说明
免密代扣包括支付并签约以及签约代扣场景。 开发者接入免密支付前需先申请开通签约代扣产品(即申请配置免密代扣模板及协议模板ID)。 华为支付以模板维度管理每一个代扣扣费服务,主要组成要素如下: 接入免密支付需注意&#x…...
React组件中的列表渲染与分隔符处理技巧
React组件中的列表渲染与分隔符处理技巧 摘要问题背景解决方案分析方案一:数组拼接法方案二:Fragment组件方案三:动态生成key 关键技术点1. key的使用原则2. Fragment组件3. 性能优化 实战演练挑战1:动态分隔符样式挑战2ÿ…...
【Pytorch和Keras】使用transformer库进行图像分类
目录 一、环境准备二、基于Pytorch的预训练模型1、准备数据集2、加载预训练模型3、 使用pytorch进行模型构建 三、基于keras的预训练模型四、模型测试五、参考 现在大多数的模型都会上传到huggface平台进行统一的管理,transformer库能关联到huggface中对应的模型&am…...
快速了解 c++ 异常处理 基础知识
相关代码概览: #include<stdexcept>std::runtime_errorcatch (const std::runtime_error& e) e.what() 相信大家一定见过这些代码,那么这些代码具体什么意思呢?我们一起来看一下 知识精讲: 异常处理是C中非常重要…...
deepseek API 调用-python
【1】创建 API keys 【2】安装openai SDK pip3 install openai 【3】代码: https://download.csdn.net/download/notfindjob/90343352...
玩转Gin框架:Golang使用Gin完成登录流程
文章目录 背景基于Token认证机制简介常见的Token类型Token的生成和验证在项目工程里创建jwt.go文件根目录新建.env文件 创建登录接口 /loginToken认证机制的优点 背景 登录流程,相信大家都很熟悉的。传统网站采用session后端验证登录状态,大致流程如下&…...
Linux学习笔记16---高精度延时实验
延时函数是很常用的 API 函数,在前面的实验中我们使用循环来实现延时函数,但是使用循环来实现的延时函数不准确,误差会很大。虽然使用到延时函数的地方精度要求都不会很严格( 要求严格的话就使用硬件定时器了 ) ,但是延时函数肯定…...
vue2:如何动态控制el-form-item之间的行间距
需求 某页面有查看和编辑两种状态: 编辑: 查看: 可以看到,查看时,行间距太大导致页面不紧凑,所以希望缩小查看是的行间距。 行间距设置 行间距通常是通过 CSS 的 margin 或 padding 属性来控制的。在 Element UI 的样式表中,.el-form-item 的下边距(margin-bottom)…...
deepseek从网络拓扑图生成说明文字实例
deepseek对话页面中输入问题指令: 我是安全测评工程师,正在撰写系统测评报告,现在需要对系统网络架构进行详细说明,请根据附件网络拓扑图输出详细说明文字。用总分的段落结构,先介绍各网络区域,再介绍网络…...
两种文件类型(pdf/图片)打印A4半张纸方法
环境:windows10、Adobe Reader XI v11.0.23 Pdf: 1.把内容由横排变为纵排: 2.点击打印按钮: 3.选择打印页范围和多页: 4.内容打印在纸张上部 图片: 1.右键图片点击打印: 2.选择打印类型: 3.打印配置&am…...
HTB:UnderPass[WriteUP]
目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用nmap对靶机UDP开放端口进行脚本、服务扫描 …...
【deepseek实战】绿色好用,不断网
前言 最佳deepseek火热网络,我也开发一款windows的电脑端,接入了deepseek,基本是复刻了网页端,还加入一些特色功能。 助力国内AI,发出自己的热量 说一下开发过程和内容的使用吧。 目录 一、介绍 二、具体工作 1.1、引…...
MySQL 进阶专题:索引(索引原理/操作/优缺点/B+树)
在数据库的秋招面试中,索引(Index)是一个经典且高频的题目。索引的作用类似于书中的目录📖,它能够显著加快数据库查询的速度。本文将深入探讨索引的概念、作用、优缺点以及背后的数据结构,帮助你从原理到应…...
用NeuralProphet预测股价:AI金融新利器(附源码)
作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:我用NeuralProphet模型预测了股票价格,发现其通过结合时间序列分析和神经网络算法,确实能提供比传统Last Value方法更精准的预测。经过一系列超参数调优…...
【Elasticsearch】parent aggregation
在Elasticsearch中,Parent Aggregation是一种特殊的单桶聚合,用于选择具有指定类型的父文档,这些类型是通过一个join字段定义的。以下是关于Parent Aggregation的详细介绍: 1.基本概念 Parent Aggregation是一种聚合操作&#x…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
