前端开发:入门(一)

当我们开始学习前端开发时,首先接触到的是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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新数据不影响原来的数据

问题描述 新数据修改时&#xff0c;原来的数据也会受影响 const obj1 ref({ name: slx, age: 20 })const obj2 obj1obj2.value.name hhhhconsole.log(obj1, obj1.value)console.log(obj2, obj2.value)解决方法 (仅适用于对象 在这段代码中&#xff0c;obj1 和 obj2 指向同…

【Python基础】文件详解(文件基础、csv文件、时间处理、目录处理、excel文件、jsonpicke、ini配置文件)

文章目录 &#xff08;一&#xff09;文件详解1 快速入门文件操作1.1 快速实现文件读取1.2 快速实现文件写入 2 文件打开方式详解2.1 open方法2.2 打开方式2.3 文件读写操作2.3.1 基本读写2.3.2 读写方式打开2.3.3 实现重复读取 3 文件编码问题4 文件读写方法4.1 文件读取方式4…

【PTA编程题】7-1 保持链表有序

对于输入的若干学生的信息&#xff0c;按学号顺序从小到大建立有序链表&#xff0c;最后遍历链表&#xff0c;并按顺序输出学生信息。 输入格式: 首先输入一个正整数T&#xff0c;表示测试数据的组数&#xff0c;然后是T组测试数据。每组测试数据首先输入一个正整数n&#xf…

IT行业证书的获取与价值:提升职业竞争力的关键

目录 IT行业证书的价值和作用 1. Cisco&#xff08;思科&#xff09;认证&#xff08;如CCNA、CCNP、CCIE&#xff09;&#xff1a; 2. 微软认证&#xff08;如MCSA、MCSE、MCSD&#xff09;&#xff1a; 3. 计算机网络技术&#xff08;CompTIA Network、CompTIA Security&a…

《汇编语言》- 读书笔记 - 各章检测点归档

《汇编语言》- 读书笔记 - 各章检测点归档 检测点 1.1检测点 2.1检测点 2.2检测点 2.3检测点 3.1检测点 3.2检测点 6.1检测点 9.1 检测点 1.1 1个CPU 的寻址能力为8KB&#xff0c;那么它的地址总线的宽度为 13 。 解&#xff1a;8KB 8192B 213 1KB的存储器有 10…

构建高效直播美颜系统:美颜SDK集成与性能优化指南

如今&#xff0c;美颜技术的广泛应用成为各类直播平台的标配之一。今天&#xff0c;小编将与大家进一步讨论如何构建高效的直播美颜系统&#xff0c;重点关注美颜SDK的集成和性能优化方面。 一、美颜SDK的选择与集成 选择合适的美颜SDK是构建高效直播美颜系统的第一步。不同的…

MATLAB频域分析(附完整代码)

1. MATLAB进行频域分析举例 以下是一个使用MATLAB进行频域分析的例子。在这个例子中&#xff0c;我们将生成一个含有两个不同频率分量的信号&#xff0c;然后使用快速傅里叶变换&#xff08;FFT&#xff09;来分析其频域特性。 main.m文件 clc;close all;clear all;warning of…

12. onnx转为rknn测试时有很多重叠框的修改(python)

我们下载rknn-toolkit2-master后并进行前面的处理后&#xff0c;进入到rknn-toolkit2-master\examples\onnx\yolov5文件夹&#xff0c;里面有个test.py文件&#xff0c;打开该文件&#xff0c;其代码如下&#xff1a; # -*- coding: utf-8 -*- # coding:utf-8import os import…

msvcp120.dll丢失如何解决/找不到msvcp120.dll的5种有效的解决方法

在计算机系统运行过程中&#xff0c;如果遇到“找不到msvcp120.dll”的提示信息&#xff0c;这代表了何种具体状况呢&#xff1f;首先&#xff0c;我们需要明确msvcp120.dll文件的重要性。msvcp120.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;这是一…

工作与生活平衡:在生活中寻找和谐

工作和生活是我们生活中不断交织的两个重要方面。对许多人来说&#xff0c;找到两者之间的完美平衡已经成为一个持久的挑战。然而&#xff0c;与其专注于平衡&#xff0c;更重要的是要认识到工作和生活并不是可以相互平衡的两个分离实体&#xff0c;而是一个相互影响的循环。正…

[word] word小数点对齐怎么设置 #微信#其他#其他

word小数点对齐怎么设置 使用Word编辑文档的时候&#xff0c;如果有小技巧的话&#xff0c;可以解决很多遇到的问题&#xff0c;也让工作更高效的完成&#xff0c;下面给大家分享word小数点对齐怎么设置的小技巧。 1、设置格式 选中内容&#xff0c;点击段落一一制表符&#…

科普类——双目视觉在无人驾驶汽车中的应用(一)

科普类——双目视觉在无人驾驶汽车中的应用&#xff08;一&#xff09; 双目视觉在无人驾驶汽车中的应用主要体现在以下几个方面&#xff1a; 深度感知与距离测量&#xff1a;双目视觉系统通过两个摄像头同时捕捉同一场景的图像&#xff0c;利用视差&#xff08;即同一物体在两…

扩展鸿蒙textinput组件

扩展鸿蒙textinput组件&#xff0c;支持快速扩展展性&#xff0c;标题文本等&#xff0c;文本内容双向绑定、文本组件快速复用。 组件代码 /*** 单选文本*/ Component export default struct DiygwInput{//绑定的值Link value:string;//未选中图标State labelImg: Resource …

探索虚拟与增强现实的无限可能:塑造未来的生活体验

美国当地时间2月2日&#xff0c;苹果首款头显Vision Pro正式上市&#xff0c;当天&#xff0c;在员工高喊“AVP&#xff08;Apple Vision Pro&#xff09;”呼声中&#xff0c;苹果首席执行官蒂姆‧库克&#xff08;Tim Cook&#xff09;在位于纽约曼哈顿第五大道的苹果旗舰店开…

ShardingSphere 5.x 系列【3】分库分表中间件技术选型

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 前言2. My Cat3. ShardingSphe…

【Java万花筒】Java GUI测试与自动化:探索多重库的全方位解决方案

GUI测试全能手&#xff1a;Java中TestFX、FEST Swing、Robot类等库的终极对比 前言 在当今软件开发的领域中&#xff0c;图形用户界面&#xff08;GUI&#xff09;测试与自动化是确保应用程序质量和稳定性的关键环节。Java作为一种广泛应用的编程语言&#xff0c;在GUI开发中…

Docker 一小时从入门到实战 —— Docker commands | Create your own image | vs VM ... 基本概念扫盲

Docker crash course 文章目录 Docker crash course1. What and Why of Docker?2.1 What2.2 What problem does it solve?2.2.1 before containers2.1.2 with containers 2. Docker vs Virtual Machines2.1 Difference2.2 Benefits 3. Install docker locally4. Images vs Co…

【CSS】外边距折叠(margin 塌陷)

外边距折叠(collapsing margins) 毗邻的两个或多个margin会合并成一个margin&#xff0c;叫做外边距折叠。 规则如下: 两个或多个毗邻的普通流中的块元素垂直方向上的 margin会折叠浮动元素 / inline-block元素 / 绝对定位元素 / 行内元素的margin不会和垂直方向上的其他元素…

【网站项目】046人事管理信息系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

9、nfs-subdir-external-provisioner

9、nfs-subdir-external-provisioner k8s&#xff08;pv 与 pvc&#xff09;动态存储 StorageClass k8s-1.29.1 持久化存储&#xff08;nfs动态存储&#xff09; 1、部署nfs nfs 服务端&#xff08;k8s-master&#xff09; # 所有服务端节点安装nfs yum -y install nfs-ut…