介绍 当谈到 CSS 中的单位时,我们有很多不错的选择。在当今响应式设计的世界中,像em或rem单位这样的相对单位为我们提供了开箱即用的适应性和灵活性,允许大小基于标记中定义的更高的字体大小。 您现在可能已经使用em和rem单位一段时间了,但您可能想知道两者之间的确切区别以及哪个单位更适合您的用例。让我们尽可能简短地分解它。 总结: 字体大小属性的em单位将相对于父元素的字体大小。除了 font-size 之外的其他属性上的em单位将与当前元素的 font-size 相关。rem单位大小总是相对于根html元素的字体大小。 em 单位 EM从借用排版世界,并且它是一个单元,其允许设置字体大小相对于所述元件的字体大小其父。 让我们以这个简单的例子为例: .parent { font-size: 18px; } .child { font-size: 1.5em; } 在这个例子中,孩子的字体大小为27px (1.5 * 18px = 27px)。 如果父元素没有为font-size指定值,则将在 DOM 树中查找更高的值。如果一直到根元素 ( )都没有指定字体大小<html>,则使用浏览器默认值16px。 非常简单直接,对吗?em单位不仅可以用于设置字体大小,而且它们几乎可以用于任何需要单位的地方(填充、边距、宽度、高度、最大宽度……你懂的!)当em单位用于除font-size之外的其他属性,该值相对于元素自己的font-size。 让我们添加到我们的示例中: .parent { font-size: 18px; } .child { font-size: 1.5em; padding: 2em 1em; } 顶部和底部的填充.child将为54px。这是我们当前元素字体大小 ( 2 * ..
Category : 教程系列
作为Write for DOnations计划的一部分,作者选择了“编码女孩”来接受捐赠。 介绍 一个二进制大对象(BLOB)是一个MySQL的,可以存储二进制数据,如图像,多媒体,和PDF文件的数据类型。 在创建需要紧密耦合的数据库且图像应与相关数据(例如,员工门户、学生数据库或财务应用程序)同步的应用程序时,您可能会发现存储学生护照等图像很方便MySQL 数据库中的照片和签名以及其他相关信息。 这就是 MySQLBLOB数据类型的用武之地。这种编程方法无需创建单独的文件系统来存储图像。该方案还集中了数据库,使其更加便携和安全,因为数据与文件系统隔离。创建备份也更加无缝,因为您可以创建一个包含所有数据的MySQL 转储文件。 检索数据更快,并且在创建记录时,您可以确保数据验证规则和参照完整性得到维护,尤其是在使用MySQL 事务时。 在本教程中,您将使用 MySQLBLOB数据类型在 Ubuntu 18.04 上使用PHP存储图像。 先决条件 要遵循本指南,您将需要以下内容: 使用带有 Ubuntu 18.04的初始服务器设置和具有sudo特权的非 root 用户配置的 Ubuntu 18.04 服务器。 按照如何在 Ubuntu 18.04 上安装 Linux、Apache、MySQL、PHP (LAMP) 堆栈的指南设置 Apache、MySQL 和 PHP 。对于本教程,不需要创建虚拟主机,因此您可以跳过步骤 4。 步骤 1 — 创建数据库 您将首先为您的项目创建一个示例数据库。为此,请通过 SSH 连接到您的服务器,然后运行以下命令以 root 用户身份登录到您的 MySQL 服务器: sudo mysql -u root -p ..
介绍 事件总线/发布-订阅模式是一种让应用程序的不相关部分相互通信的方式。 Vue 组件中使用的事件系统可用于事件总线/发布订阅模式。 注意:本教程专门针对 Vue 2。在 Vue 3 中,$on、$off、 和$once已被删除。建议使用提供此功能的外部库。 在本文中,您将应用 Vue 强大的内置事件总线。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 熟悉设置 Vue.js 项目和使用 Vue.js 组件可能会有所帮助。 本教程已通过 Node v15.3.0、npmv6.14.9 和vuev2.6.11 验证。 第 1 步 – 设置项目 出于本教程的目的,您将从使用@vue/cli. npx @vue/cli create vue-event-bus-example –default 这将使用默认配置配置一个新的 Vue 项目:Vue 2, babel, eslint。 导航到新创建的项目目录: cd vue-event-bus-example 您需要创建事件总线并将其导出到某个地方,以便其他模块和组件可以使用它。首先,创建一个新文件。导入 Vue 库。然后,导出它的一个实例。 源代码/事件总线.js import ..
介绍 您可以使用该<datalist>元素为您的文本输入提供一点提升。这是一个有点像的融合<input>和<select>。本文将概述如何使用它。 先决条件 HTML5 的一般知识。要全面了解 HTML5 标记语言,请浏览我们的系列“如何用 HTML 构建网站”。 使用<datalist>元素 这是<datalist>在 HTML5 标记中使用该元素的方式: <label for=”favorite-band”>Your favorite band?</label> <input list=”fish” name=”fish-choice” id=”fish-choice>” /> <datalist id=”fish”> <option value=”Shark”> <option value=”Tuna”> <option value=”Ulua”> </datalist> 结论 该<datalist>元素是HTML的一个非常有用的功能。 要更全面地了解 HTML5 标记语言,请浏览我们的系列,如何用 HTML 构�..
介绍 Jupyter Notebook是一个开源 Web 应用程序,可让您创建和共享交互式代码、可视化等。该工具可用于多种编程语言,包括 Python、Julia、R、Haskell 和 Ruby。它通常用于处理数据、统计建模和机器学习。 Jupyter Notebooks(或简称“Notebooks”)是由 Jupyter Notebook 应用程序生成的文档,其中包含计算机代码和富文本元素(段落、方程、数字、链接等),有助于呈现和共享可重复的研究。因此,它们可以成为用于数据驱动或基于编程的演示或作为教学工具的绝佳工具。 本教程将引导您设置 Jupyter Notebook 以从 Ubuntu 20.04 服务器运行,并演示如何通过隧道从本地计算机连接和使用 Notebook。在本指南结束时,您将能够使用在远程服务器上运行的 Jupyter Notebook 运行 Python 3 代码。 先决条件 为了完成本指南,您应该拥有一个带有基本防火墙的全新 Ubuntu 20.04 服务器实例和一个配置了 sudo 权限的非 root 用户。您可以通过运行我们的初始服务器设置教程来了解如何进行设置。 第 1 步 – 设置 Python 首先,我们将从 Ubuntu 存储库安装 Python 编程环境所需的依赖项。Ubuntu 20.04 预装了 Python 3。稍后我们将使用 Python 包管理器 pip 安装其他组件。 ..
介绍 Chart.js是一个流行的 JavaScript 图表库,ng2-charts是 Angular 2+ 的包装器,用于将 Chart.js 集成到 Angular 中。 在本教程中,您将使用 Chart.js 并ng2-charts在 Angular 应用程序中创建示例图表。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 熟悉设置 Angular 项目和使用 Angular 组件可能会有所帮助。 本教程已通过 Node v14.13.1、npmv6.14.8、angularv10.1.6、chart.jsv2.9.4 和v2.4.2验证ng2-charts。 步骤 1 — 设置项目 您可以使用它@angular/cli来创建一个新的 Angular 项目。 在终端窗口中,使用以下命令: npx @angular/cli new angular-chartjs-example –style=css –routing=false –skip-tests 这将配置一个新的 Angular 项目,其样式设置为“CSS”(与“Sass”、Less 或“Stylus”相反),没有路由,并跳过测试。 导航到新创建的项目目录: cd angular-chartjs-example 从您的项目文件夹中,运行以下命令进行安装chart.js: npm ..
介绍 如果您正在构建使用 API 的应用程序,您需要在开发期间使用 API 密钥测试环境,并在生产期间使用 API 密钥用于实时环境。在 Angular 中,您可以使用该environment.ts文件创建环境变量。 注意:这篇文章适用于 Angular 2+ 应用。 在本教程中,您将学习如何在 Angular 中使用环境变量。 先决条件 如果你想跟随这篇文章,你需要: Node.js 的本地开发环境。遵循如何安装 Node.js 并创建本地开发环境。 本教程已通过 Node v16.2.0、npmv7.15.1 和@angular/corev12.0.3 验证。 检测环境 Angular CLI项目已经使用production环境变量在生产环境中启用生产模式: src/main.ts // … if (environment.production) { enableProdMode(); } Angular 还为我们提供了一个名为的实用函数isDevMode,它可以检查应用程序是否在开发模式下运行: src/app/app.component.ts import { Component, OnInit, isDevMode } from ‘@angular/core’; @Component({ … }) export class ..
本教程的早期版本由Melissa Anderson编写。 介绍 MongoDB,也称为Mongo,是许多现代 Web 应用程序中使用的开源文档数据库。它被归类为NoSQL 数据库,因为它不依赖于传统的基于表的关系数据库结构。 相反,它使用具有动态模式的类似 JSON 的文档,这意味着与关系数据库不同,MongoDB 在向数据库添加数据之前不需要预定义的模式。您可以随时根据需要随时更改架构,而无需使用更新的架构设置新数据库。 在本教程中,您将在 Ubuntu 18.04 服务器上安装 MongoDB,对其进行测试,并了解如何将其作为systemd服务进行管理。 先决条件 要学习本教程,您需要: 一台 Ubuntu 18.04 服务器。此服务器应具有非 root 管理用户和使用 UFW 配置的防火墙。按照我们针对 Ubuntu 18.04 的初始服务器设置指南进行设置。 第 1 步 – 安装 MongoDB Ubuntu 的官方软件包存储库包括稳定版本的 MongoDB。但是,在撰写本文时,默认 Ubuntu 存储库中可用的 MongoDB 版本是3.6,而最新的稳定版本是4.4。 要获得此软件的最新版本,您必须将 MongoDB 的专用包存储库包含到您的 APT 源中。然后,您将能够安装mongodb-org,这是一个始终指向最新版本 MongoDB 的元包。 首先,通过运行以下命令导入最新稳定版 MongoDB 的公共 GPG 密钥。如果您打算使用4.4以外的 MongoDB ..
介绍 地理定位是在用户与您的应用程序交互时识别用户当前物理位置的过程。 有一个geolocator包和一个Fluttergeocoding包可用于地理定位。 在本文中,您将创建一个示例 Flutter 应用程序,该应用程序使用geolocator和geocoding包来确定用户的位置。 先决条件 要完成本教程,您需要: 下载并安装Flutter。 下载并安装Android Studio 或 Visual Studio Code。 建议为您的代码编辑器安装插件: Flutter和Dart为 Android Studio 安装的插件。 Flutter 为 Visual Studio Code 安装的扩展。 本教程通过 Flutter v1.22.2、Android SDK v30.0.2、Android Studio v4.1 验证。本教程中的代码已更新为支持geolocator6+ 和geocoding1+。 步骤 1 — 设置项目 为 Flutter 设置环境后,您可以运行以下命令来创建新应用程序: flutter create flutter_geolocator_example 导航到新的项目目录: cd flutter_geolocator_example 使用flutter create将生成一个演示应用程序,该应用程序将显示单击按钮的次数。 pubspec.yaml在您的代码编辑器中打开并添加以下插件: pubspec.yaml dependencies: flutter: sdk: ..
介绍 在处理图像时,您可能会遇到希望保留原始纵横比的情况。保留纵横比将防止图像因拉伸或挤压而出现扭曲。此问题的常见解决方案是使用background-imageCSS 属性。更现代的方法是使用object-fitCSS 属性。 在本文中,您将浏览的效果fill,cover,contain,none,并scale-down提供给值object-fitCSS属性以及它如何裁剪和缩放图像。您还将探索object-positionCSS 属性以及它如何偏移图像。 先决条件 如果你想跟随这篇文章,你需要: 了解CSS 属性和值。 使用与style属性内联的 CSS 声明。 一个代码编辑器。 支持object-fit和 的现代网络浏览器object-position。 观察示例图像的默认行为 考虑以下用于显示示例图像的代码: <img src=”https://assets.digitalocean.com/articles/alligator/css/object-fit/example-object-fit.jpg” width=”600″ height=”337″ style=”width: 600px; height: 337px;” alt=”Sample image of a turtle riding on top of an alligator that is swimming in the water – scaled to 600 x 337.” /> 此代码将在浏览器中产生以下结果: 此图像的原始宽度为 1200 像素,高度为 674 ..