速通前端篇 —— CSS

速通前端篇 —— CSS

找往期文章包括但不限于本期文章中不懂的知识点:

个人主页:我要学编程程(ಥ_ಥ)-ZEEKLOG博客

所属专栏:速通前端

目录

CSS的介绍

基本语法规范

CSS选择器

标签选择器

class选择器 

id选择器 

复合选择器 

通配符选择器

CSS常见样式 

颜色 color

字体大小 font-size 

边框 border 

宽度 与 高度 

内边距

外边距 


CSS的介绍

CSS(Cascading Style Sheet),层叠样式表,用于控制页面的样式。CSS能够对网页中元素位置的排版进行像素级精确控制,实现美化页面的效果。能够做到页面的样式和结构分离。简单理解,CSS就是类似于对页面进行"化妆",让页面变得更加好看。

基本语法规范

选择器+{一条/N条声明}

1、选择器决定针对谁修改 (找谁);2、声明决定修改啥(干啥);3、声明的属性是键值对,使用";"区分键值对,使用":"区分键和值。

既然CSS是"化妆",那首先得要对象才行,这个对象就是HTML的代码。

CSS有三种引入方式,引入到HTML的代码中:

引入方式描述
行内样式在标签内使用style属性,属性值是css属性键值对
内部样式定义<style>标签,在标签内部定义css样式
外部样式定义<link>标签,通过href属性引入外部的css文件

代码演示:

1、行内样式:

2、内部样式:

3、外部样式: 

三种引入方式的对比: 

行内样式,只适合于写简单样式,只针对某个标签生效。缺点是不能写太复杂的样式。

内部样式会出现大量的代码冗余,不方便后期的维护,所以不常用。

外部样式,html和css实现了完全的分离,企业开发常用方式。

注意:内部样式虽然可以写在任何地方,但我们常是写在 head 标签中。

CSS选择器

CSS选择器的主要功能就是选中页面指定的标签元素,选中了元素,才可以设置元素的属性。

CSS选择器主要分以下几种:
1、标签选择器
2、class选择器
3、id选择器
4、复合选择器
5、通配符选择器

下面我们一 一来学习:

标签选择器

class选择器 

class是标签的一个属性,可以认为有相同class的标签被认为是同一组,在此基础上我们就可以进行一些列的其他操作,比较方便。

注意:

1、类名是可以随便取的,但不能是数字。 

2、一个类可以被多个标签使用,一个标签也能使用多个类(多个类名要使用空格分割,这种做法可以让代码更好复用)

id选择器 

复合选择器 

复合选择器是通过多个标签唯一的那个标签,然后进行设置相关属性的。和在文件夹中查找某个文件差不多。

如果我们只想将 有序列表下的div设置成红色,就可以使用复合选择器。

如果想更详细的一点的话,可以写成 body ol div 或者直接将 html 给包裹进来都是没问题的。 

注意:

1、上面的 ol 与 div 可以是任意选择器的组合,也可以是任意数量选择器的组合。

2、这里的标签不一定要是相邻的标签,例如,父标签-子标签。可以直接是 父标签-孙子标签。

3、如果想要选择多种标签,可以使用 ","来分隔。

通配符选择器

这里的通配符和我们在Java中学习的通配符是一样的,都是可以去代表所有,只不过Java中的通配符只能作为接收方,而不能是发送方(与多态一样,向上转型可以,但是向下转型就会失败)。而这里的通配符是全部都行。

这里通配符是采用 *。 

CSS常见样式 

颜色 color

color 是用来设置字体的颜色的,颜色的表示方式有三种。第一种就是我们前面直接使用英文单词去表述的;第二种是使用三原色的参数来设置的;第三种是在第二种的基础上,使用十六进制的数字来表示的。

第一种前面有,因此这里不作演示,我们直接来看第二种与第三种的方式。

1、使用三原色:

三原色(rgb)指的是 red、green、blue,三种颜色。通过参数来调整三者的占比,从而实现不同的颜色。

如果要变为绿色的话,就是(0, 255, 0)。 

2、使用十六进制数:

因为rgb的参数范围是(0,255),可以用2^8来表示,如果把2^8看成比特位的话,就是可以用8个比特位来表示,而一个十六进制位可以表示4位二进制,即 两个十六进制位可以表示上述rgb的参数范围。

字体大小 font-size 

边框 border 

边框是一个复合属性,常用的包括 边框粗细、边框样式、边框颜色。既可以一起同时设置,也可以分开设置三者。

样式说明举例
border-width设置边框粗细取数值
border-style设置边框样式dotted:点状
border-color设置边框颜色与color是相同的,有三种方式

上面是三者分开设置的,下面来尝试三者一起设置。

注意:并不只是div才能设置边框,几乎所有的标签都是可以设置边框的。

宽度 与 高度 

width 设置宽度、height 设置高度。

注意:只有块级元素可以设置宽高。常见的块级元素有: h1-h6、P、div等,常见的行内元素有:span、a。块级元素是独占一行的,因此可以设置其相关的属性,而行内元素是不能独占一行的,也就是会和其他的元素一起占据一行,如果去设置其的宽高,那别的元素也需要改变,这就不合理,因此行内元素不能设置宽高。当然,我们也可以使用 display 属性来修改元素的显示模式。

display : block 改成块级元素;display : inline 改成行内元素。

内边距

padding:内边距,其含义是内容和边框之间的距离。

内容默认是顶着边框来放置的,可以用padding来控制这个距离。

padding也是一个复合样式,可以对四个方向分开设置。

padding-top(顶部)、padding-bottom(底部)、padding-left(左部)、padding-right(右部)

当然,也可以设置边框为实线去观察。

外边距 

margin:外边距,其含义是元素与元素之间的距离。同样元素与元素之间默认也是挨着的。

margin也是一个复合样式,可以给四个方向都加上外边距。与内边距类似,这里就不再演示了。 

前面的样式涉及到了一个著名的IE盒子模型:

好啦!本期 速通前端篇 —— CSS 的学习之旅 就到此结束啦!我们下一期再一起学习吧!

Read more

前端团队协作最佳实践:让团队效率飞起来

前端团队协作最佳实践:让团队效率飞起来 毒舌时刻 团队协作?听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂流程。你以为随便开几个会就能提高团队效率?别做梦了!到时候你会发现,会议时间比开发时间还多,团队效率反而下降了。 你以为使用Git就能解决所有协作问题?别天真了!Git的冲突解决能让你崩溃,分支管理能让你晕头转向。还有那些所谓的协作工具,看起来高大上,用起来却各种问题。 为什么你需要这个 1. 提高开发效率:良好的团队协作可以减少沟通成本,提高开发效率。 2. 减少错误:团队协作可以帮助你发现和修复代码中的错误,减少生产环境中的问题。 3. 知识共享:团队协作可以促进知识共享,提高团队整体水平。 4. 项目管理:良好的团队协作可以帮助你更好地管理项目,确保项目按时完成。 5. 团队凝聚力:良好的团队协作可以增强团队凝聚力,提高团队成员的工作积极性。 反面教材 // 1. 代码冲突 // 开发者A修改了文件 function getUser(id) { return fetch(`/api/users/${id}

从零开始微调Qwen3-VL模型|借助Qwen3-VL-WEBUI极速落地

从零开始微调Qwen3-VL模型|借助Qwen3-VL-WEBUI极速落地 @[toc] 引言:为什么需要微调多模态大模型? 随着视觉-语言任务的复杂化,通用预训练模型在特定场景下的表现逐渐显现出局限性。例如,在工业质检、医疗影像分析或教育内容生成等垂直领域,模型不仅需要“看懂”图像,还需理解行业语义并输出结构化结果。 Qwen3-VL-4B-Instruct 作为阿里通义千问系列中最新一代的多模态大模型,具备强大的图文理解与生成能力。而通过 Qwen3-VL-WEBUI 镜像工具,开发者无需深入底层代码即可完成从环境搭建到部署推理的全流程操作——尤其适合希望快速验证业务逻辑的技术团队。 本文将带你: - ✅ 搭建基于 Qwen3-VL-WEBUI 的本地开发环境 - ✅ 准备符合规范的多模态微调数据集 - ✅ 使用 ms-swift 框架进行 LoRA 微调 - ✅ 将微调后模型集成至 Web UI 实现交互式推理 💡 本文适用于具备基础 Python 和深度学习知识的工程师,建议使用至少 24GB 显存的 GPU(如 RTX 4090)

前端模块化开发:从面条代码到结构化代码的蜕变

前端模块化开发:从面条代码到结构化代码的蜕变 毒舌时刻 模块化开发?不就是把代码分成几个文件嘛,有什么大不了的?我见过很多所谓的模块化代码,其实就是把一堆函数随便塞进不同的文件里,根本没有任何结构可言。 你以为把代码分成模块就万事大吉了?别天真了!如果你的模块设计不合理,反而会让代码变得更加混乱。比如那些互相依赖的模块,就像一团乱麻,让你根本理不清头绪。 为什么你需要这个 1. 代码可维护性:模块化代码结构清晰,易于理解和维护,当需要修改某个功能时,只需要修改对应的模块即可。 2. 代码复用:模块化可以让你在不同的项目中复用相同的代码,减少重复开发的工作量。 3. 团队协作:模块化可以让不同的开发者负责不同的模块,减少代码冲突和沟通成本。 4. 性能优化:模块化可以帮助你实现代码分割,减少初始加载时间,提高应用的性能。 反面教材 // 这是一个典型的面条代码 let users = []; let products = []; function fetchUsers() { fetch('https://api.example.com/

前端实现交互式3D人体肌肉解剖图:基于 Three.js + React Three Fiber 的完整方案

本文将详细介绍如何在前端实现一个交互式的3D人体肌肉解剖展示工具,用户可以旋转、缩放模型,点击任意肌肉查看中英文名称。 为什么要做这个? 传统的肌肉解剖学习通常依赖静态图片或昂贵的3D软件。作为健身爱好者,我希望能有一个免费、易用的在线工具来学习肌肉解剖知识。于是我决定自己动手,基于开源的 Z-Anatomy 项目,在浏览器中实现一个交互式的3D肌肉解剖图。 如果你想先体验效果,可以试试这个在线的3D肌肉功能解剖工具。 技术架构概览 ┌─────────────────────────────────────────────────────────────┐ │ 用户浏览器 │ ├─────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │ │ GLB 模型 │ -> │ Three.js │ -> │ React Three │ │ │ │ (Draco) │ │ 场景渲染 │ │ Fiber