前端三件套html/css/js的基本认识以及示例程序

news2025/9/19 21:28:20

简介

本文简要讲解了html,css,js.主要是让大家简要了解网络知识

因为实际开发中很少直接写html&css,所以不必过多纠结,了解一下架构就好

希望深度学习可以参考MDN和w3school

HTML

基础

HTML (Hyper Text Markup Language) 不是一门编程语言,而是一种用来告知浏览器如何组织页面的标记语言.

主要用于页面结构的组织

最简单的一个内容是这样的

<p>welcome to html</p>

属性

使用属性来给元素设定额外信息,属性的基本写法为

<p class="foobar">EESAST</p>

用空格与元素名或前一个属性隔开,属性名="值"(单引号双引号都可)

比较典型的例子就是元素<a>,用来创建链接

<a href="https://eesast.com" title="科协官网">EESAST</a>

常用标签

  1. 文档结构标签:
    • <!DOCTYPE html>: 定义HTML文档类型和版本.
    • <html>: HTML文档的根元素.
    • <head>: 包含文档的元信息,如标题、字符集等.
    • <title>: 定义文档的标题,显示在浏览器的标题栏或标签页上.
    • <body>: 包含文档的主要内容.
  2. 文本标签:
    • <h1> to <h6>: 定义标题,h1为最高级标题,h6为最低级标题.
    • <p>: 定义段落.
    • <br>: 插入换行.
    • <hr>: 插入水平线.
  3. 链接和图像标签:
    • <a>: 定义超链接.
    • <img>: 插入图像.
  4. 列表标签:
    • <ul>: 无序列表.
    • <ol>: 有序列表.
    • <li>: 列表项.
  5. 表格标签:
    • <table>: 定义表格.
    • <tr>: 定义表格行.
    • <th>: 定义表头单元格.
    • <td>: 定义表格数据单元格.
  6. 表单标签:
    • <form>: 定义表单.
    • <input>: 定义输入字段.
    • <textarea>: 定义文本域.
    • <button>: 定义按钮.
    • <select>: 定义下拉列表.
    • <label>: 定义表单标签.
  7. 样式和格式标签:
    • <style>: 定义文档的样式信息.
    • <div>: 定义文档中的一个区块.
    • <span>: 定义文档中的内联元素容器.
    • <strong>: 定义强调文本.
    • <em>: 定义强调的文本.
  8. 其他常用标签:
    • <meta>: 定义文档的元信息,如字符集、关键词等.
    • <script>: 插入JavaScript代码.
    • <iframe>: 插入内联框架.
    • <head>: 定义文档的头部.
    • <footer>: 定义文档的页脚.

基本结构

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>我的测试站点</title>
  </head>
  <body>
    <p>这是我的页面</p>
  </body>
</html>

基本布局

  • <header>:页眉.
  • <nav>:导航栏.
  • <main>:主内容.主内容中还可以有各种子内容区段,可用<article><section><div>等元素表示.
  • <aside>:侧边栏,经常嵌套在<main>中.
  • <footer>:页脚.

关于完整的 html 元素和属性,可以参考这里

应用 CSS 和 JavaScript

对于 CSS,需要加入一个<link>元素,rel="stylesheet"表明这是文档的样式表,而 href 包含了样式表文件的路径,这个元素一般放在head里

<link rel="stylesheet" href="my-css-file.css" />

对于 js 脚本,加入<script>元素,src 为脚本的路径.把它放在文档的尾部</body>标签之前是一个更好的选择,这样可以确保在加载脚本之前浏览器已经解析了 HTML 内容

<script src="my-js-file.js"></script>

这里 script 元素没有内容,但他不是一个空元素,你也可以直接把脚本写在元素里

CSS

基础

CSS (Cascading Style Sheets,层叠样式表),用于定义样式,实现很多炫酷的功能,如

h1 {
  color: red;
  font-size: 5em;
}

主要语法如下

选择器 : 语法由一个 选择器 (selector) 开头.它选择 (selects)了我们将要用来添加样式的 HTML 元素.在这个例子中我们为一级标题(主标题<h1>)添加样式.

样式修改 : 接着输入一对大括号{ }.在大括号内部定义一个或多个形式为 属性 (property):值 (value);

元素选择器

标签匹配

使用元素选择器来直接匹配一种 html 元素

p {
  color: green;
}

id匹配

#ID {
    color: red;
}

多标签匹配

不同的选择器可以用,隔开来使用多个选择器

p, li { color: green; }

这种直接指定元素类型的写法只能同时应用于所有同类元素,在实际使用的时候是十分不方便的,因此我们还可以使用类名来进一步指定作用的对象.前面说到 HTML 中的元素可以添加属性,这里的类名选择器就对应标签中的class属性,比如

<ul>
  <li>项目一</li>
  <li class="special">项目二</li>
  <li>项目 <em></em></li>
</ul>

同标签特殊匹配

.special {
  color: orange;
  font-weight: bold;
}

这里指定了属于 special 类的元素进行设置,在在选择器的开头加.即为指定类,当然可以同时指定元素和类

li.special,
span.special {
  color: orange;
  font-weight: bold;
}

元素位置匹配

嵌套关系

li em {
  color: rebeccapurple;
}

表示选择嵌套在<li>内部的<em>

相邻关系

h1 + p {
  font-size: 200%;
}

表示选择跟在<h1>后面的<p>

例子

可以尝试下解读这个选择器

body h1 + p .special {
  color: yellow;
  background-color: black;
  padding: 5px;
}

盒模型

参考:https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Building_blocks/The_box_model

在 CSS 中,所有的元素都被一个个的“盒子(box)”包围着,理解这些“盒子”的基本原理,可以帮助我们使用 CSS 实现准确布局、处理元素排列.

CSS 中组成一个块级盒子需要:

  • Content box: 这个区域是用来显示内容,大小可以通过设置 widthheight.
  • Padding box: 包围在内容区域外部的空白区域; 大小通过 padding 相关属性设置.
  • Border box: 边框盒包裹内容和内边距.大小通过 border 相关属性设置.
  • Margin box: 这是最外面的区域,是盒子和其他元素之间的空白区域.大小通过 margin 相关属性设置.

如下图:

boxmodel.png

在标准模型中,如果你给盒设置 widthheight,实际设置的是 content box. padding 和 border 再加上设置的宽高一起决定整个盒子的大小

.box {
  width: 350px;
  height: 150px;
  margin: 25px;
  padding: 25px;
  border: 5px solid black;
}

可以尝试计算一下这个盒子的大小

JS

简介

这里主要介绍浏览器对象模型,用于浏览器的日常开发,我们可以通过js方便的操控这些对象

BOM

BOM,一个基于js的浏览器对象,但并不是W3C(World Wide Web Consortium,万维网联盟)标准,不同浏览器存在差异

如图,是浏览器模型的基本结构,在浏览器环境下,一般可以省略window

我们主要控制的还是DOM对象

BOM.png

常用属性

  • open()/close()打开/关闭窗口

  • alert()弹窗警告

DOM

符合W3C标准,在日常开发更常见

添加/删除

// 添加/删除 HTML 元素
// appendChild(): 将新元素作为其它元素的子节点进行添加(添加到尾部)
// insertBefore(): 将新元素添加到其它元素的头部

let para = document.createElement("p"); // 创建一个段落
let text = document.createTextNode("abc"); // 创建一个文本节点
para.appendChild(text); // 将该段落与文本合成一个元素 <p>abc</p>
x.appendChild(para); // 将新元素 para 添加到 x 的尾部
x.insertBefore(para); // 将新元素 para 添加到 x 的头部

// 删除元素时需要知道该节点的父节点
// removeChild(): 将某元素的子节点移除
// 一般来说是这样删除节点的:
// child.parentNode.removeChild(child); // 先找父节点,再删除

查找

let x= document.getElementById ("content"); //通过id
let x = document.getElementsByClassName("content"); //通过

修改

通过查找然后赋值实现

// 利用 innerHTML 属性修改元素的内容:
let x = document.getElementById("content"); // 找到对应的元素
x.innerHTML = "hello world";

// 利用 style 属性修改元素的 CSS 格式:
document.getElementById("content").style.color = "red"; 

使用

直接写在 HTML 中:

一般放在body最后面,避免阻塞

<script>
  console.log("Hello World!");
</script>

通过文件的路径引入:

defer表示在html解析完毕后执行,避免阻塞

<script src="___.js" defer></script>

示例

下面是一个使用了html,css,js的简单实例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello World Example</title>
    <style>
        body {
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100vh;
        }

        #helloText {
            color: red;
        }
    </style>
</head>

<body>
    <div>
        <p id="helloText">Hello World</p>
        <button id="changeColorButton" onclick="changeColor()">Change Color to black</button>
    </div>

    <script>
        function changeColor() {
            document.getElementById('helloText').style.color = 'black';
        }
    </script>
</body>

</html>

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

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

相关文章

微服务(1)

目录 1.什么是微服务&#xff1f;谈谈你对微服务的理解&#xff1f; 2.什么是Spring Cloud&#xff1f; 3.Springcloud中的组件有哪些&#xff1f; 3.具体说说SpringCloud主要项目&#xff1f; 5.SpringCloud项目部署架构&#xff1f; 1.什么是微服务&#xff1f;谈谈你对微…

OpenCV-Python(30):Harris角点检测

目标 理解Harris角点检测的概念掌握函数cv2.cornerHarris()、cv2.cornerSubPix()的用法 Harris算法原理 通过前面的图像特征介绍&#xff0c;我们知知道了角点的一个特性&#xff1a;向任何方向移动变化都很大。Chris_Harris 和Mike_Stephens 在1988 年的文章《A Combined Co…

【滑动窗口】C++算法:K 个不同整数的子数组

作者推荐 动态规划 多源路径 字典树 LeetCode2977:转换字符串的最小成本 本题涉及知识点 滑动窗口 LeetCoe992 K 个不同整数的子数组 给定一个正整数数组 nums和一个整数 k&#xff0c;返回 nums 中 「好子数组」 的数目。 如果 nums 的某个子数组中不同整数的个数恰好为 …

【DevOps 工具链】日志管理工具 - 22种 选型(读这一篇就够了)

文章目录 1、简述2、内容分类3、归纳对比表&#xff08;排序不分先后&#xff09;4、日志管理主要目的5、日志管理工具 22种 详细&#xff08;排序不分先后&#xff09;5.1、ManageEngine EventLog Analyzer5.1.1、简介5.1.2、效果图5.1.3、日志管理架构5.1.4、EventLog Analyz…

进行VMware日志管理

随着公司转向虚拟化其 IT 空间&#xff0c;虚拟环境日志监控正在占据日志管理的很大一部分,除了确保网络安全外&#xff0c;虚拟机日志监控还有助于管理虚拟化工具&#xff0c;这是最复杂的任务之一。 对虚拟环境日志的监控分析 当今公司中最受欢迎的虚拟平台之一是 VMware。…

基于SSM的蛋糕甜品店管理系统的设计与开发论文

基于SSM的蛋糕甜品店管理系统的设计与开发 摘要 如今&#xff0c;科学技术的力量越来越强大&#xff0c;通过结合较为成熟的计算机技术&#xff0c;促进了学校、医疗、商城等许多行业领域的发展。为了顺应时代的变化&#xff0c;各行业结合互联网、人工智能等技术&#xff0c…

软件工程导论——(为什么要学习软件工程?软件工程能学到什么?如何学习软件工程?)

导论&#xff08;引言&#xff09;&#xff1a; 1.为什么要学习软件工程&#xff1f; 软件工程知识并不只是项目管理可以用&#xff0c;同样适用于开发岗。比如开发也要做需求分析和架构设计&#xff0c;也要做计划。学习软件工程后也可以帮助开发人员更好的理解软件项目的整个…

Solidworks学习笔记

本内容为solidworks的学习笔记&#xff0c;根据自己的理解进行记录&#xff0c;部分可能不正确&#xff0c;请自行判断。 学习视频参考&#xff1a;【SolidWorks2018视频教程 SW2018中文版软件基础教学知识 SolidWorks自学教程软件操作教程 sw视频教程 零基础教程 视频教程】 h…

智能透明加密、半透明加密和落地加密的区别是什么?

智能透明加密、半透明加密和落地加密的主要区别如下&#xff1a; PC端访问地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 保护对象和方式&#xff1a; 智能透明加密&#xff1a;系统根据预设的敏感数据特征&#xff0c;对正…

FindMy技术用于遥控器

遥控器已经悄然成为我们生活中的常客。无论是控制电视机的开关&#xff0c;调整音量&#xff0c;切换频道&#xff0c;还是控制空调的温度&#xff0c;调节灯光亮度&#xff0c;甚至远程操控智能家居设备&#xff0c;遥控器都为我们提供了极大的便利。 将遥控器与FindMy技术相结…

Linux:apache优化(2)—— 网页传输压缩

网页传输压缩 客户端在请求httpd服务器数据&#xff0c;httpd服务器在返回数据包给客户端时&#xff0c;先对返回的数据进行压缩&#xff0c;压缩之后再传输 作用&#xff1a;配置 Apache 的网页压缩功能&#xff0c;是使用 Gzip 压缩算法来对 Apache 服务器发布的网页内容进行…

冠赢互娱基于 OpenKrusieGame 实现游戏云原生架构升级

作者&#xff1a;力铭 关于冠赢互娱 冠赢互娱是一家集手游、网游、VR 游戏等研发、发行于一体的游戏公司&#xff0c;旗下官方正版授权的传奇类手游——《仙境传奇》系列深受广大玩家们的喜爱。基于多年 MMORPG 类型游戏的自研与运营经验&#xff0c;冠赢互娱正式推出了 2D M…

基于ssm的OA办公系统设计与实现+vue论文

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统办公信息管理难度大&#xff0c;容错率低&#xff0c;管理…

听GPT 讲Rust源代码--src/tools(39)

File: rust/src/tools/rustfmt/src/config/config_type.rs 在Rust代码中&#xff0c;rust/src/tools/rustfmt/src/config/config_type.rs文件的作用是定义了与配置相关的数据结构和函数。 Config struct&#xff08;配置结构体&#xff09;&#xff1a;该结构体用于存储rustfmt…

前后端分离架构的特点以及优缺点

文章目录 一、前后端不分离架构(传统单体结构)1.1 什么是前后端不分离1.2 工作原理1.3 前后端不分离的优缺点1.4 应用场景 二、前后端分离架构2.1 为什么要前后端分离2.2 什么是前后端分离2.3 工作原理2.4 前后端分离的优缺点 参考资料 一、前后端不分离架构(传统单体结构) 首…

python测试工具: 实现数据源自动核对

测试业务需要&#xff1a; 现有A系统作为下游数据系统&#xff0c;上游系统有A1,A2,A3... 需要将A1,A2,A3...的数据达到某条件后&#xff08;比如&#xff1a;A1系统销售单提交出库成功&#xff09;自动触发MQ然后再经过数据清洗落到A系统&#xff0c;并将清洗后数据通过特定…

ElasticSearch 架构设计

介绍 ElasticSearchMySQLIndexTableDocumentRowFieldColumnMappingSchemaQuery DSLSQLaggregationsgroup by&#xff0c;avg&#xff0c;sumcardinality去重 distinctreindex数据迁移 ElasticSearch 中的一个索引由一个或多个分片组成 每个分片包含多个 segment&#xff08;分…

【Spark精讲】一文讲透SparkSQL执行过程

SparkSQL执行过程 逻辑计划 逻辑计划阶段会将用户所写的 SQL语句转换成树型数据结构(逻辑算子树)&#xff0c; SQL语句中蕴含的逻辑映射到逻辑算子树的不同节点。 顾名思义&#xff0c;逻辑计划阶段生成的逻辑算子树并不会直接提交执行&#xff0c;仅作为中间阶段 。 最终逻辑…

算法每日一题:参加考试的最大学生数 | 动态规划 | 状态压缩

大家好&#xff0c;我是星恒 今天的题目竟然是一道困难题目&#xff0c;看着就不简单&#xff0c;我们的目标是&#xff1a;理解如何做 学一些思路&#xff01; 这次题目涉及的知识&#xff1a;动态规划&#xff0c;状态压缩&#xff08;位运算&#xff09; 给你一个 m * n 的…

挑战Python100题(8)

100+ Python challenging programming exercises 8 Question 71 Please write a program which accepts basic mathematic expression from console and print the evaluation result. 请编写一个从控制台接受基本数学表达式的程序,并打印评估结果。 Example: If the follo…