您当前的位置:首页 > 电脑百科 > 程序开发 > 前端

解密前端三巨头:HTML、CSS和JavaScript的关系

时间:2023-10-07 15:05:06  来源:微信公众号  作者:w3cschool编程狮

如果你想成为一名Web开发者,或者只是想了解网页是如何构建的,那么你一定会遇到这三个词:htmlcssJAVAScript。它们是构建现代网页的三大核心技术,它们虽然看似不同,但在实际中相互协作,共同创造出丰富交互和视觉效果的网页体验。那么,它们分别是什么,又是如何关联的呢?来和小狮妹一起来看看吧。

解密前端三巨头:HTML、CSS和JavaScript的关系

HTML:网页的身体

HTML(超文本标记语言)是一种用于标记和组织网页内容的语言。它使用一些特殊的符号(称为标签)将页面元素(如标题、段落、图片、链接等)组织起来,告诉浏览器如何显示内容。例如,以下是一个简单的HTML文档:

<html><head><title>我的第一个网页</title></head><body><h1>欢迎来到我的网站</h1><p>这是一个简单的示例。</p><img src="logo.png" alt="我的logo"><a href="https://www.bing.com">点击这里访问必应搜索</a></body></html>

这个文档包含了以下几个元素:

  • <html>和</html>:表示文档的开始和结束。
  • <head>和</head>:表示文档的头部信息,包含了文档的标题、元数据等。
  • <title>和</title>:表示文档的标题,显示在浏览器的标签栏上。
  • <body>和</body>:表示文档的主体内容,显示在浏览器的窗口上。
  • <h1>和</h1>:表示一个一级标题,通常用于显示最重要的信息。
  • <p>和</p>:表示一个段落,通常用于显示正文内容。
  • <img>:表示一个图片,需要指定图片的来源(src属性)和替代文字(alt属性)。
  • <a>和</a>:表示一个链接,需要指定链接的目标地址(href属性)和显示文字。

可以看到,HTML使用了一对一对的标签来包裹页面元素,每个标签都有一个开始符号(<)和一个结束符号(>),其中有一个标签名(如html、head、title等),有些标签还有一些属性(如src、alt、href等),用于提供更多的信息。每个开始标签都需要有一个对应的结束标签(除了一些特殊的标签,如img),结束标签在标签名前加上一个斜杠(/)。这样就形成了一个树状的结构,称为DOM(文档对象模型),它描述了页面元素之间的层次关系。

HTML是一种不严格的语言,即使有些标签未闭合或者嵌套错误也不会严重影响页面结构。但是为了保证代码的可读性和可维护性,我们还是应该遵循一些规范和习惯,比如缩进代码、使用小写字母、添加注释等。

HTML主要负责定义网页的内容和结构,但并不关心内容的样式和展示方式。如果我们只使用HTML来编写网页,那么网页可能会显得单调乏味。为了让网页更加美观和个性化,我们需要使用CSS来为HTML添加样式。

CSS:网页的衣服

CSS(层叠样式表)是一种用于为HTML文档添加样式和美化展示的语言。它负责定义页面元素的样式、排版和外观,比如颜色、字体、大小、边距、背景、布局等。例如,以下是一个简单的CSS样式表:


h1 {
  color: blue;
  font-family: Arial;
  font-size: 36px;
}

p {
  color: black;
  font-family: Times New Roman;
  font-size: 18px;
}

img {
  border: 5px solid red;
}

a {
  color: green;
  text-decoration: none;
}

这个样式表包含了以下几个部分:

  • h1、p、img、a:表示选择器,用于指定要应用样式的页面元素。这里使用了元素选择器,即直接使用元素的标签名。还有其他类型的选择器,比如类选择器(.class)、ID选择器(#id)、属性选择器([attribute])等,可以更加灵活地选择页面元素。
  • { }:表示声明块,用于包含一组样式声明。
  • color、font-family、font-size、border、text-decoration:表示属性,用于指定要修改的样式特征。
  • blue、Arial、36px、5px solid red、none:表示属性值,用于指定属性的具体值。属性值可以是预定义的关键字(如blue、none)、单位值(如36px)、颜色值(如red或#FF0000)等。

 

可以看到,CSS使用了一对一对的大括号来包裹一组样式声明,每个声明由一个属性和一个属性值组成,中间用冒号(:)分隔,每个声明后面用分号(;)结束。这样就形成了一个规则集,用于描述页面元素的外观和布局。

CSS与HTML紧密关联,通常不能脱离HTML。为了让CSS生效,我们需要将CSS与HTML关联起来。有三种方法可以实现这一点:

  • 内联样式:在HTML元素中使用style属性,直接写入CSS代码。例如:
<h1 style="color: blue; font-family: Arial; font-size: 36px;">欢迎来到我的网站</h1>
  • 内部样式表:在HTML文档的head部分使用style标签,写入CSS代码。例如:
 
<head><style>h1 {
      color: blue;
      font-family: Arial;
      font-size: 36px;
    }
    /* 其他样式 */</style></head>
  • 外部样式表:在HTML文档中使用link标签,引入外部的CSS文件。例如:
<head><link rel="stylesheet" href="style.css"></head>

其中,外部样式表是最常用和推荐的方法,因为它可以实现样式的复用和分离,提高代码的可读性和可维护性。

 

CSS是一种层叠的语言,即当一个页面元素有多个来源的样式时,它会按照一定的优先级来决定哪个样式生效。优先级由以下几个因素决定:

  • 来源:浏览器默认样式 < 用户自定义样式 < 开发者定义样式 < 内联样式 < !important
  •  
  • 特殊性:ID选择器 > 类选择器 > 元素选择器 > 通配符选择器
  •  
  • 顺序:后定义的样式 > 先定义的样式

 

因此,在编写CSS时,我们需要注意避免样式冲突和覆盖,并尽量使用简洁和高效的选择器。

CSS主要负责定义网页的样式和展示方式,但并不关心内容的交互和动态变化。如果我们只使用CSS来编写网页,那么网页可能会显得静态和无趣。为了让网页更加交互和动态,我们需要使用JavaScript来为HTML和CSS添加行为。

三、JavaScript:网页的高级动作

JavaScript是一种用于增强网页的交互性和动态性的语言。它是一种脚本语言,可以运行在客户端和服务器端。通过JavaScript,我们可以实现表单提交、动画效果、弹窗、数据处理等交互行为。例如,以下是一个简单的JavaScript代码:

 
// 获取页面元素var title = document.getElementById("title");
var button = document.getElementById("button");

// 定义一个函数,用于改变标题的颜色function changeColor() {
  // 生成一个随机的颜色值var randomColor = "#" + Math.floor(Math.random() * 16777215).toString(16);
  // 将标题的颜色设置为随机颜色
  title.style.color = randomColor;
}

// 给按钮添加一个点击事件,当点击时调用changeColor函数
button.addEventListener("click", changeColor);

这个代码包含了以下几个部分:

  • //:表示注释,用于解释代码的作用,不会被执行。
  • var:表示变量,用于存储数据。
  • document.getElementById:表示一个方法,用于获取页面元素。
  • function:表示一个函数,用于封装一段可重复执行的代码。
  • Math.floor、Math.random、toString:表示一些内置的对象和方法,用于进行数学运算和转换。
  • style:表示一个属性,用于获取或设置元素的样式。
  • addEventListener:表示一个方法,用于给元素添加事件监听器。

 

可以看到,JavaScript使用了一些变量、函数、对象、方法、属性等来操作页面元素和数据。每个语句后面用分号(;)结束。这样就形成了一个脚本,用于描述页面元素的行为和逻辑。

 

JavaScript可以独立存在,但通常用于操作HTML和CSS,以实现交互性和动态效果。为了让JavaScript生效,我们需要将JavaScript与HTML关联起来。有两种方法可以实现这一点:

  • 内部脚本:在HTML文档中使用script标签,写入JavaScript代码。例如:
<script>// JavaScript代码</script>
  • 外部脚本:在HTML文档中使用script标签,引入外部的JavaScript文件。例如:
<script src="script.js"></script>

其中,外部脚本是最常用和推荐的方法,因为它可以实现脚本的复用和分离,提高代码的可读性和可维护性。

 

JavaScript是一种灵活和强大的语言,它有很多特性和特点,比如:

 

  • 动态类型:不需要声明变量的类型,可以随时改变变量的值和类型。
  • 函数式编程:可以将函数作为参数或返回值传递给其他函数,实现高阶函数和闭包等特性。
  • 原型继承:可以通过原型链来实现对象之间的继承关系,而不是通过类和构造函数。
  • 异步编程:可以通过回调函数、事件循环、Promise等机制来实现非阻塞的代码执行。

 

因此,在编写JavaScript时,我们需要注意理解和掌握这些特性和特点,并尽量遵循一些规范和习惯,比如使用严格模式(“use strict”)、避免全局变量、使用===而不是==等。

 

HTML、CSS和JavaScript是构建现代网页的三大核心技术,它们虽然看似不同,但在实际中相互协作,共同创造出丰富交互和视觉效果的网页体验。理解这三者之间的协作和关系对于成为一名优秀的Web开发者至关重要。



Tags:HTML   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
如何使用 templ 在 Go 中编写 HTML 用户界面?
简介templ[1] 是一个在 Go 中编写 HTML 用户界面的语言。使用 templ,我们可以创建可呈现 HTML 片段的组件,并将它们组合起来创建屏幕、页面、文档或应用程序。安装我们可以通...【详细内容】
2023-12-21  Search: HTML  点击:(165)  评论:(0)  加入收藏
前端工作方式要换了?HTMX简介:无需JavaScript的动态HTML
HTMX允许你使用扩展的HTML语法代替 JavaScript 来实现交互性。HTMX 在标记中直接为你提供HTTP 交互,并支持许多其他交互需求,无需求助于 JavaScript。这是一个有趣的想法,可能...【详细内容】
2023-10-19  Search: HTML  点击:(292)  评论:(0)  加入收藏
解密前端三巨头:HTML、CSS和JavaScript的关系
如果你想成为一名Web开发者,或者只是想了解网页是如何构建的,那么你一定会遇到这三个词:HTML、CSS和JavaScript。它们是构建现代网页的三大核心技术,它们虽然看似不同,但在实际中...【详细内容】
2023-10-07  Search: HTML  点击:(234)  评论:(0)  加入收藏
HTMX简介:无需借助JavaScript的动态HTML
译者 | 布加迪审校 | 重楼HTML让您可以使用扩展的HTML语法而不是JavaScript来实现交互性。HTMX直接在标记中为您提供了HTTP交互,它支持其他许多交互要求,无需借助JavaScript。...【详细内容】
2023-10-07  Search: HTML  点击:(367)  评论:(0)  加入收藏
htmx:增强版 HTML 来了!
如今,Web 用户期望得到单页应用(SPA)提供的流畅、动态的体验。然而,创建 SPA 往往需要使用复杂的框架,如 React 和 Vue,学习和使用起来可能比较困难。这就是htmx的用武之地:一种通...【详细内容】
2023-09-03  Search: HTML  点击:(220)  评论:(0)  加入收藏
加入GitHub Accelerator,htmlx 2.0 要来了!
本文主要向大家介绍 htmlx 加入 GitHub Accelerator,关于 htmlx 的原理,以前有单独发表过文章介绍: 让 React 代码行数减少78%的 htmlx 有这么神?大家有感兴趣的可以阅读,话不多...【详细内容】
2023-08-25  Search: HTML  点击:(362)  评论:(0)  加入收藏
爬虫解析HTML动态JS,技术应用揭秘
在当今互联网时代,大量的信息都储存在了各种网页中。而对于开发者、数据分析师和研究人员来说,获取并分析这些网页中的数据是非常重要的任务之一。然而,随着技术的不断发展,许多...【详细内容】
2023-06-29  Search: HTML  点击:(219)  评论:(0)  加入收藏
利用ChatGPT辅助处理Html数据
使用chatgpt进行辅助编程首先要清晰描述自己需求,生成代码通过不断调试及优化,最终完成任务。有它,对程序员是好事也是坏事。一、确认功能请编程实现以下功能:1.所有html保存在a...【详细内容】
2023-05-31  Search: HTML  点击:(421)  评论:(0)  加入收藏
HTMLUnit无法抓取Vue页面,前端开发者困扰
最近,很多前端开发者在使用 HTMLUnit 进行页面爬取时,发现无法抓取到 Vue 生成的页面。这是一个普遍的问题,许多人都在寻找解决方案。本文将对这个问题进行详细分析,并提供解决...【详细内容】
2023-05-23  Search: HTML  点击:(294)  评论:(0)  加入收藏
一篇文章带你学会HTML以及最常用的标签
HTML是一种标记语言,用于创建网页。在本文中,我们将介绍HTML的基础知识,代码写入到本地文件,并以.html结尾,双击浏览器打开就可以查看效果。HTML文档结构HTML文档由标签组成,每个...【详细内容】
2023-05-16  Search: HTML  点击:(374)  评论:(0)  加入收藏
▌简易百科推荐
20k级别前端是怎么使用LocalStorage的,想知道吗?
当咱们把咱们想缓存的东西,存在localStorage、sessionStorage中,在开发过程中,确实有利于咱们的开发,咱们想看的时候也是一目了然,点击Application就可以看到。前言大家好,我是林...【详细内容】
2024-03-26  前端之神  微信公众号  Tags:前端   点击:(11)  评论:(0)  加入收藏
前端不存在了?盲测64%的人更喜欢GPT-4V的设计,杨笛一等团队新作
3 月 9 日央视的一档节目上,百度创始人、董事长兼 CEO 李彦宏指出,以后不会存在「程序员」这种职业了,因为只要会说话,人人都会具备程序员的能力。「未来的编程语言只会剩下两种...【详细内容】
2024-03-11  机器之心Pro    Tags:前端   点击:(9)  评论:(0)  加入收藏
前端开始“锈化”?Vue团队开源JS打包工具:基于Rust、速度极快、尤雨溪主导
Vue 团队已正式开源Rolldown &mdash;&mdash; 基于 Rust 的 JavaScrip 打包工具。Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口...【详细内容】
2024-03-09  OSC开源社区    Tags:Vue   点击:(11)  评论:(0)  加入收藏
两年前端经验还不会手写Promise?
什么是promise?当我们处理异步操作时,我们经常需要进行一系列的操作,如请求数据、处理数据、渲染UI等。在过去,这些操作通常通过回调函数来处理,但是回调函数嵌套过多会导致代码...【详细内容】
2024-03-07  海燕技术栈  微信公众号  Tags:Promise   点击:(23)  评论:(0)  加入收藏
网站开发中的前端和后端开发有什么区别
前端开发和后端开发都是干什么的?有哪些区别?通俗地讲,前端干的工作是用户可以直接看得见的,而后端开发的工作主要在服务端,用户不太能直接看到。虽然前端开发和后端开发的工作有...【详细内容】
2024-02-21  CarryData    Tags:前端   点击:(31)  评论:(0)  加入收藏
网站程序开发中的前后端分离技术
随着互联网的快速发展和技术的不断创新,传统的网站开发模式已经难以满足日益增长的业务需求。为了提高开发效率、增强系统的可维护性和可扩展性,前后端分离技术逐渐成为了网站...【详细内容】
2024-01-31  网站建设派迪星航    Tags:前后端分离   点击:(23)  评论:(0)  加入收藏
如何优雅的实现前端国际化?
JavaScript 中每个常见问题都有许多成熟的解决方案。当然,国际化 (i18n) 也不例外,有很多成熟的 JavaScript i18n 库可供选择,下面就来分享一些热门的前端国际化库!i18nexti18ne...【详细内容】
2024-01-17  前端充电宝  微信公众号  Tags:前端   点击:(68)  评论:(0)  加入收藏
Vue中Scope是怎么做样式隔离的?
scope样式隔离在 Vue 中,样式隔离是通过 scoped 特性实现的。当在一个组件的 <style> 标签上添加 scoped 特性时,Vue 会自动为这个样式块中的所有选择器添加一个唯一的属性,以...【详细内容】
2024-01-04  海燕技术栈  微信公众号  Tags:Vue   点击:(80)  评论:(0)  加入收藏
vue3中 ref和 reactive的区别 ?
最近有朋友在面试过程中经常被问到这么一个问题,vue3 中的ref 和 reactive的区别在哪里,为什么 要定义两个API 一个 api不能实现 响应式更新吗??带着这个疑问 ,我们 接下来进行逐...【详细内容】
2024-01-03  互联网高级架构师  今日头条  Tags:vue3   点击:(37)  评论:(0)  加入收藏
React18 与 Vue3 全方面对比
1. 编程风格 & 视图风格1.1 编程风格 React 语法少、难度大;Vue 语法多,难度小例如指令:Vue<input v-model="username"/><ul> <li v-for="(item,index) in list" :key="inde...【详细内容】
2024-01-03  爱做梦的程序员  今日头条  Tags:Vue3   点击:(72)  评论:(0)  加入收藏
站内最新
站内热门
站内头条