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

前端开发:入门(一)

当我们开始学习前端开发时,首先接触到的是HTML(超文本标记语言)。HTML是构建网页结构的基础。

1. HTML(超文本标记语言)

介绍和基础语法

HTML,即超文本标记语言,是一种用于创建网页结构的标记语言。它定义了网页的基本结构和内容,并通过一系列的标签来实现。让我们看一个简单的HTML文档的例子:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>My Webpage</title>
</head>
<body><h1>Hello, World!</h1><p>This is a simple webpage.</p>
</body>
</html>

在这个例子中,<!DOCTYPE html> 声明文档类型,<html> 元素包含整个HTML文档,<head> 包含元数据,而 <body> 包含实际的页面内容。

常用标签

HTML中有许多常用的标签,每个标签都有特定的作用。例如,<div> 用于定义文档中的区块,<span> 用于定义内联元素,<p> 表示段落。下面是一个简单的例子:

<div><p>This is a <span>sample</span> paragraph.</p>
</div>

在这个例子中,<div> 包裹了一个段落,而 <span> 用于包裹内联的文本。

表单和表格

HTML的表单和表格是与用户交互和展示数据的重要工具。

表单示例:
<form action="/submit" method="post"><label for="username">Username:</label><input type="text" id="username" name="username"><input type="submit" value="Submit">
</form>

在这个例子中,我们创建了一个简单的表单,包含一个文本输入框和一个提交按钮。

表格示例:
<table border="1"><tr><th>Name</th><th>Age</th></tr><tr><td>John</td><td>25</td></tr>
</table>

这个例子展示了一个简单的表格,包含表头和一个数据行。

这是HTML的基础部分,为构建网页提供了必要的结构和元素。

2. CSS(层叠样式表)

基本概念
选择器

选择器是用于选择要样式化的HTML元素的模式。有许多类型的选择器,其中最简单的是元素选择器,例如 h1div。还有类选择器(.class)、ID选择器(#id)和其他复杂的选择器,使得能够更准确地选择页面上的元素。

/* 元素选择器 */
body {font-family: 'Arial', sans-serif;background-color: #f0f0f0;
}/* 类选择器 */
.container {width: 80%;margin: 0 auto;
}
属性和值

CSS规则由属性和值组成。属性是要设置的样式特性,而值是该样式特性的设置值。下面是一些基本的属性和值示例:

/* 文字颜色 */
h1 {color: #333;
}/* 盒子模型属性 */
div {width: 200px;padding: 20px;margin: 10px;border: 1px solid #ccc;
}
盒模型

盒模型定义了一个HTML元素在页面上所占的空间,由内容区域、内边距、边框和外边距组成。

div {width: 200px;      /* 内容区域宽度 */padding: 20px;     /* 内边距 */margin: 10px;      /* 外边距 */border: 1px solid #ccc; /* 边框 */
}

这个例子中的 div 元素的总宽度是 (200 + 2*20 + 2*1 + 2*10)px

布局技术
Flexbox

Flexbox是一种弹性盒模型,使得在一个容器内的子元素能够更灵活地布局。

.container {display: flex;            /* 使用Flexbox布局 */justify-content: space-between; /* 在子元素之间创建空间 */
}.item {flex: 1;   /* 使每个子元素均匀占据可用空间 */
}

在这个例子中,.container 类是一个使用Flexbox布局的容器,justify-content 属性用于设置子元素之间的空间,而 .item 类表示Flexbox容器中的每个项目。

Grid

Grid是一种二维网格布局,适用于更复杂的布局需求。

.container {display: grid;                        /* 使用Grid布局 */grid-template-columns: repeat(3, 1fr); /* 定义三列,每列平均占据可用空间 */gap: 10px;                            /* 设置网格项之间的间隙 */
}

这个例子中的 .container 类使用Grid布局,通过 grid-template-columns 属性定义了三列,并通过 gap 属性设置了元素之间的间隙。

响应式设计

响应式设计确保网页在不同设备和屏幕尺寸上呈现出良好的效果。媒体查询是一种基本的响应式设计技术。

@media only screen and (max-width: 600px) {body {font-size: 14px;}
}

在这个例子中,当屏幕宽度小于等于600像素时,文字大小将调整为14像素。

这就是CSS的一些基本概念和更详细的示例。深入理解这些概念将为你提供更大的灵活性和精确性,使你能够更好地掌握前端开发中的样式和布局。

3. JavaScript

基本语法

JavaScript是一种解释型的脚本语言,用于为网页添加交互性。让我们首先了解一些基本的语法。

// 声明变量
let x = 5;
let y = 10;// 进行运算
let sum = x + y;// 输出结果
console.log(sum);

在这个例子中,我们声明了两个变量 xy,然后进行了加法运算,并通过 console.log() 输出了结果。

流程控制

流程控制结构使得我们能够根据条件执行不同的代码块,或者重复执行一段代码。

条件语句
let age = 25;if (age < 18) {console.log("You are a minor.");
} else {console.log("You are an adult.");
}

在这个例子中,根据年龄的不同,输出不同的消息。

循环结构
for (let i = 0; i < 5; i++) {console.log(i);
}

这个例子中的 for 循环会输出 0 到 4 的数字。

函数和作用域

函数是一段可重复使用的代码块,有助于模块化和组织代码。

function greet(name) {return "Hello, " + name + "!";
}console.log(greet("John"));

在这个例子中,greet 函数接受一个参数 name,并返回一个包含问候语的字符串。

DOM操作

JavaScript通过DOM(文档对象模型)来与HTML文档交互,实现动态效果。

<button id="myButton">Click me</button><script>document.getElementById("myButton").addEventListener("click", function() {alert("Button clicked!");});
</script>

在这个例子中,当按钮被点击时,弹出一个对话框。

事件处理

事件处理允许我们响应用户的交互行为,如点击、悬停等。

<button id="myButton">Click me</button><script>document.getElementById("myButton").addEventListener("click", function() {alert("Button clicked!");});
</script>

这个例子中,当按钮被点击时,通过事件处理函数弹出一个提示框。

JavaScript的基本语法和流程控制是构建更复杂前端逻辑的基石。在进一步学习前端框架之前,确保对这些基本概念有清晰的理解。
接下来,我们将深入研究前端框架,这些框架提供了一种组织和管理前端代码的结构,并引入了许多便利的开发概念。

4. 前端框架

React

React是由Facebook开发的一款JavaScript库,用于构建用户界面。它引入了组件化开发的概念,将用户界面拆分为独立的组件,提高了代码的可维护性和重用性。

import React, { useState } from 'react';function Counter() {const [count, setCount] = useState(0);return (<div><p>Count: {count}</p><button onClick={() => setCount(count + 1)}>Increment</button></div>);
}

在这个React组件中,我们使用了useState来跟踪count的状态,并在按钮点击时更新该状态,实现了一个简单的计数器。

Vue

Vue是一款渐进式JavaScript框架,专注于构建用户界面。它采用了响应式数据绑定和组件化开发的理念。

<template><div><p>Count: {{ count }}</p><button @click="increment">Increment</button></div>
</template><script>
export default {data() {return {count: 0,};},methods: {increment() {this.count++;},},
};
</script>

在这个Vue组件中,data 属性定义了 count 的初始值,而 methods 属性包含了 increment 方法,该方法在按钮点击时增加 count 的值。

Angular

Angular是由Google开发的一款前端框架,它采用了完整的MVC(模型-视图-控制器)架构。Angular使用TypeScript语言,提供了依赖注入、模块化等功能。

import { Component } from '@angular/core';@Component({selector: 'app-counter',template: `<div><p>Count: {{ count }}</p><button (click)="increment()">Increment</button></div>`,
})
export class CounterComponent {count = 0;increment() {this.count++;}
}

在这个Angular组件中,通过 @Component 装饰器定义了组件的元数据,template 属性包含了组件的HTML模板,而在 CounterComponent 类中定义了 count 属性和 increment 方法。

这三个框架都提供了强大的工具和抽象,简化了前端开发中的很多复杂性。选择框架通常取决于项目需求和开发者的个人偏好。

5. 版本控制 - Git

版本控制是一种记录和管理项目代码历史的方法,其中Git是最流行的版本控制系统之一。Git通过跟踪文件的变化、创建不同的版本(提交)以及支持分支和合并操作来帮助团队协同开发。

以下是一些常用的Git命令:

# 初始化仓库
git init# 将文件添加到暂存区
git add filename# 提交更改
git commit -m "Commit message"# 查看提交历史
git log# 创建分支
git branch branchname# 切换分支
git checkout branchname# 合并分支
git merge branchname# 撤销更改
git reset --hard HEAD

这些命令涵盖了Git的基本用法,从创建仓库、添加和提交更改,到分支管理和撤销操作。使用Git可以确保团队在协同开发中保持代码的一致性和可追溯性。

6. 包管理工具 - npm或Yarn

包管理工具用于管理项目中的依赖项,确保项目在不同环境中的一致性。在前端开发中,两个常见的包管理工具是npm(Node Package Manager)和Yarn。

npm

npm是JavaScript的包管理工具,随同Node.js一起安装。它通过package.json文件来记录项目的依赖项和配置。

# 初始化项目,创建package.json文件
npm init# 安装依赖包
npm install package-name# 全局安装包
npm install -g package-name# 删除依赖包
npm uninstall package-name
Yarn

Yarn是由Facebook、Google、Exponent和Tilde等公司共同开发的包管理工具。它与npm兼容,并引入了一些改进,如离线模式、版本锁定等。

# 初始化项目,创建package.json文件
yarn init# 安装依赖包
yarn add package-name# 全局安装包
yarn global add package-name# 删除依赖包
yarn remove package-name

这两个工具的使用方式基本相似,选择使用哪一个通常取决于个人偏好或项目团队的规范。

深入了解版本控制和包管理工具将使你更好地管理项目,协同开发,以及确保项目的可维护性和稳定性。

相关文章:

前端开发:入门(一)

当我们开始学习前端开发时&#xff0c;首先接触到的是HTML&#xff08;超文本标记语言&#xff09;。HTML是构建网页结构的基础。 1. HTML&#xff08;超文本标记语言&#xff09; 介绍和基础语法 HTML&#xff0c;即超文本标记语言&#xff0c;是一种用于创建网页结构的标记…...

简单实验 java spring cloud 自定义负载均衡

1.概要 1.1 说明 这个是在前一个测试上的修改&#xff0c;所以这里只体现修改的内容。前一个测试的地址&#xff1a;检查实验 spring cloud nacos nacos-server-2.3.0-CSDN博客 1.2 记忆要点 1.2.1 引入对象 Autowired DiscoveryClient discoveryClient; 1.2.2 获取服务实…...

简单说说redis分布式锁

什么是分布式锁 分布式锁&#xff08;多服务共享锁&#xff09;在分布式的部署环境下&#xff0c;通过锁机制来让多客户端互斥的对共享资源进行访问/操作。 为什么需要分布式锁 在单体应用服务里&#xff0c;不同的客户端操作同一个资源&#xff0c;我们可以通过操作系统提供…...

什么是 Java 中的 IO 和 NIO?它们之间有什么区别?什么是 Java 中的内存管理和垃圾回收?常见的垃圾回收算法有哪些?

什么是 Java 中的 IO 和 NIO&#xff1f;它们之间有什么区别&#xff1f; 在 Java 中&#xff0c;IO&#xff08;Input/Output&#xff09;和NIO&#xff08;New IO&#xff09;都是用于处理输入输出操作的API。它们之间有以下区别&#xff1a; IO&#xff08;传统IO&#xff…...

【图论】基环树

基环树其实并不是树&#xff0c;是指有n个点n条边的图&#xff0c;我们知道n个点n-1条边的连通图是树&#xff0c;再加一条边就会形成一个环&#xff0c;所以基环树中一定有一个环&#xff0c;长下面这样&#xff1a; 由基环树可以引申出基环内向树和基环外向树 基环内向树如…...

如何快速捕获和验证用户软件需求,实现快速迭代

在软件开发过程中&#xff0c;快速捕获和验证用户需求&#xff0c;以及迅速迭代功能&#xff0c;是保持项目敏捷性和用户满意度的关键。下面将介绍一些建议&#xff0c;帮助你在软件开发过程中更有效地满足用户需求。 1. 深入沟通与用户互动 要捕获用户需求&#xff0c;必须与…...

爱上算法:每日算法(24-2月4号)

&#x1f31f;坚持每日刷算法&#xff0c;&#x1f603;将其变为习惯&#x1f91b;让我们一起坚持吧&#x1f4aa; 文章目录 [232. 用栈实现队列](https://leetcode.cn/problems/implement-queue-using-stacks/)思路CodeJavaC 复杂度 [225. 用队列实现栈](https://leetcode.cn/…...

【Node系列】创建第一个服务器应用

文章目录 一、node介绍二、node创建应用三、node创建应用步骤四、相关链接 一、node介绍 Node.js是一个基于Chrome V8引擎的JavaScript运行环境&#xff0c;可以用于构建高性能的网络应用程序。它采用事件驱动、非阻塞I/O模型&#xff0c;使得程序可以以高效地方式处理并发请求…...

Linux命令基础学习 (2月4日打卡

1. ls - 列出目录内容 命令格式&#xff1a;ls [选项] [文件/目录] 常用选项&#xff1a; -l&#xff1a;以详细列表格式显示-a&#xff1a;显示所有文件&#xff0c;包括以.开头的隐藏文件 2. mkdir - 创建新目录 命令格式&#xff1a;mkdir [选项] 目录名 常用选项&…...

Python 基础知识概览

Python是一种简洁、易学、强大的编程语言&#xff0c;广泛应用于各种领域&#xff0c;包括Web开发、数据分析、人工智能等。本文将介绍一些Python的基础知识&#xff0c;帮助初学者建立对这门语言的基本了解。 1. Python 的简介 Python是一种高级、面向对象、解释型的编程语言…...

Adobe Camera Raw for Mac v16.1.0中文激活版

Adobe Camera Raw for Mac是一款强大的RAW格式图像编辑工具&#xff0c;它能够处理和编辑来自各种数码相机的原始图像。以下是关于Adobe Camera Raw for Mac的一些主要特点和功能&#xff1a; 软件下载&#xff1a;Adobe Camera Raw for Mac v16.1.0中文激活版 RAW格式支持&…...

zabbix自定义监控项

zabbix自定义监控项 1.安装zabbix_get软件 [rootchang local]# yum install zabbix-get2.编辑自定义监控项文件 [rootchang ~]# vim /etc/zabbix/zabbix_agentd.d/cpu.conf UserParametercheck_cpu,top -bn 1 -i -c |grep id |cut -d , -f 4 | tr -d id #UserParameter表示…...

使用Pycharm在本地调用chatgpt的接口

目录 1.安装环境 2.建立多轮对话的完整代码&#xff08;根据自己使用的不同代理需要修改端口&#xff08;port&#xff09;&#xff09; 3.修改代码在自己的Pycharm上访问chagpt的api并实现多轮对话&#xff0c;如果不修改是无法成功运行的。需要确定秘钥和端口以保证正常访…...

HarmonyOS远程真机调试方法

生成密钥库文件 打开DevEco Studio&#xff0c;点击菜单栏上的build&#xff0c; 填一些信息点击&#xff0c;没有key的话点击new一个新的key。 生成profile文件 AppGallery Connect (huawei.com) 进入该链接网站&#xff0c;点击用户与访问将刚生成的csr证书提交上去其中需…...

基于SpringBoot的后端导出Excel文件

后端导出Excel&#xff0c;前端下载。 系列文章指路&#x1f449; 系列文章-基于SpringBoot3创建项目并配置常用的工具和一些常用的类 文章目录 后端导出Excel引入依赖写入响应 前端下载后端导出失败和成功返回的内容类型不同&#xff0c;因此需要分别判断。 工具类ServletUti…...

2 月 5 日算法练习- 动态规划

DP&#xff08;动态规划&#xff09;全称Dynamic Programming&#xff0c;是运筹学的一个分支&#xff0c;是一种将复杂问题分解成很多重叠的子问题、并通过子问题的解得到整个问题的解的算法。 在动态规划中有一些概念&#xff1a; n<1e3 [][] &#xff0c;n<100 [][][…...

SpringBoot整合EasyCaptcha图形验证码

简介 EasyCaptcha&#xff1a;https://github.com/ele-admin/EasyCaptcha Java图形验证码&#xff0c;支持gif、中文、算术等类型&#xff0c;可用于Java Web、JavaSE等项目。 添加依赖 <dependency><groupId>com.github.whvcse</groupId><artifactId…...

学习数据结构和算法的第3天

常数循环的复杂度 计算Func4的时间复杂度 voidFunc4(int N) { int count 0; for (int k 0; k < 100; k) { count; } printf("%d\n", count); }O&#xff08;1&#xff09; 不是代表算法运行一次&#xff0c;是常数次 strchar的时间复杂度 #include<stdi…...

SpringBoot实战第三天

今天主要完成了&#xff1a; 新增棋子分类 棋子分类列表 获取棋子分类详情 更新棋子分类 更新棋子分类和添加棋子分类_分组校验 新增棋子 新增棋子参数校验 棋子分类列表查询(条件分页) 先给出分类实体类 Data public class Category {private Integer id;//主键IDNot…...

mysql学习打卡day22

今日成果&#xff1a; select * from employees where salary > (select avg(salary) from employees); -- 查询超过平均工资的员工select * from clients where client_id not in (select distinct client_id from invoices); -- 查询没有发票的用户 感谢各位读者查阅&…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

循环语句之while

While语句包括一个循环条件和一段代码块&#xff0c;只要条件为真&#xff0c;就不断 循环执行代码块。 1 2 3 while (条件) { 语句 ; } var i 0; while (i < 100) {console.log(i 当前为&#xff1a; i); i i 1; } 下面的例子是一个无限循环&#xff0c;因…...

安全领域新突破:可视化让隐患无处遁形

在安全领域&#xff0c;隐患就像暗处的 “幽灵”&#xff0c;随时可能引发严重事故。传统安全排查手段&#xff0c;常常难以将它们一网打尽。你是否好奇&#xff0c;究竟是什么神奇力量&#xff0c;能让这些潜藏的隐患无所遁形&#xff1f;没错&#xff0c;就是可视化技术。它如…...

Clickhouse统计指定表中各字段的空值、空字符串或零值比例

下面是一段Clickhouse SQL代码&#xff0c;用于统计指定数据库中多张表的字段空值情况。代码通过动态生成查询语句实现自动化统计&#xff0c;处理逻辑如下&#xff1a; 从系统表获取指定数据库&#xff08;替换your_database&#xff09;中所有表的字段元数据根据字段类型动态…...