当前位置: 首页 > news >正文

CSS回顾-基础知识详解

一、引言

在前端开发领域,CSS 曾是构建网页视觉效果的关键,与 HTML、JavaScript 一起打造精彩的网络世界。但随着组件库的大量涌现,我们亲手书写 CSS 样式的情况越来越少,CSS 基础知识也逐渐被我们遗忘。
现在,这种遗忘带来了诸如样式调整困难、面对兼容性问题不知所措等麻烦。所以,我们有必要回顾 CSS,重拾这些重要知识,为更好地开发网页助力。

二、基础介绍

2.1 什么是CSS

层叠样式表(Cascading Style Sheets,缩写为 CSS)是一种专门用于描述文档(如网页、XML 文档等)呈现方式的样式表语言之一(XSL、LESS、SASS)。

我们知道HTML是负责搭建网页文档的结构地基,而CSS就是给这个网页增加色彩与动画的,最终变成精美的界面呈现给用户。

2.2 基础语法

CSS 是一门基于规则的语言。是由选择器样式信息组成:选择器 {样式信息}

h1 {color: red;font-size: 20px;
}

上面写了一个简单示例,我们可以看到h1就代表选择器的一种标签选择器,括号中包裹的就是对应的样式对象信息,由属性、属性值组成。上面样式的意思是:将界面上h1标签元素文字样式设置为红色,文字大小设置为20px;

注意:具体的选择器类别样式信息后面会总结(挖一个坑,后面回填的),请大家持续关注。

2.3 注释语法

在 CSS(层叠样式表)中,注释用于在代码中添加说明性文字,这些文字不会被浏览器解析为样式规则。CSS 注释有两种常见的语法:

  1. 多行注释:/* 这是
    注释内容 */
  2. 单行注释:/* 这是注释内容 */
/* 这是h1标签样式 */
h1 {/* 多行注释color: red;font-size: 20px;*/
}

三、引用方式

我们配置的css的样式最终是要作用到网页结构信息上面的,而书写的位置也会有不同,书写位置不同会导致最终界面呈现的效果不同。主要分为以下三种:

  1. 外部样式表(外联样式)
  2. 内部样式表(style标签)
  3. 行内样式表(内联样式)

3.1 外部样式表(外联样式)

外部样式表是将 CSS 代码保存在一个独立的.css文件中,然后在 HTML 文档中通过<link>标签或者@import规则来引用这个文件。

首先在外部新建.css后缀的文件,里面书写css样式。示例:

/* style.css 文件样式 */
h1 {color: red;font-size: 20px;
}

主界面引用:

  <!-- link标签引入 --><!-- <link rel="stylesheet" href="./css/style.css"> --><style>/* 内部样式中使用@import引入(不推荐用于 HTML 文件,可以在.css文件中引入) */@import url("./css/style.css");</style>

3.2 内部样式表(style标签)

内部样式表是在 HTML 文档的<head>标签内使用<style>标签来定义 CSS 规则。这些规则只适用于当前的 HTML 文档。

<style>h1 {color: red;font-size: 20px;}
</style>

3.3 行内样式表(内联样式)

内联样式是直接在 HTML 元素的style属性中添加 CSS 规则。这种方式将样式直接应用于特定的元素,优先级非常高。

<h1 style="color: red;font-size: 20px;">h1标题</h1>

3.4 总结

  1. 外联样式
    1. 优点:实现样式和内容完全分离,HTML 文件更简洁专注于结构。多个 HTML 文件可共享,提高代码复用性和可维护性,修改样式表可影响所有引用页面。
    2. 缺点:需要额外管理样式表文件,文件丢失或路径错误会导致样式加载失败,开发时可能需同时打开 HTML 和 CSS 文件编辑,对简单页面稍复杂,但大型项目中优势更明显。
  2. 内部样式表
    1. 优点:能集中管理文档内的样式,较内联样式可维护性有所提高。
    2. 缺点:多个 HTML 页面共享样式时,需在各页面重复编写,会导致代码冗余,大型项目中使 HTML 文件臃肿,不利于代码组织管理。
  3. 内联样式
    1. 优点:简单直接,可快速对个别元素设置样式。
    2. 缺点:可维护性差,样式代码在 HTML 元素中,若多个元素需相同样式,代码会重复,不符合样式和内容分离原则。

在实际的网页开发中,外部样式表是最常用的引入方式,因为它最符合代码的组织和复用原则,能够提高开发效率和代码的可维护性。

四、盒模型

CSS 盒模型是网页布局的基础概念,它把每个 HTML 元素看作一个矩形盒子。这个盒子由内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。

div {width: 300px;height: 150px;margin: 20px;padding: 10px;border: 4px solid red;
}

在这里插入图片描述

如上图蓝色部分就是代表元素内容所占宽高,绿色部分代表内容区与边框之前的间距padding,黄色部分代表元素边框,橙色部分代表元素与其他周围元素之间的间距

4.1 内容区(Content)

内容区是盒模型的核心部分,用于显示元素包含的文本、图像等实际内容.

在上方例子中,widthheight属性分别设置了<div>元素内容区的宽度为 300px 和高度为 150px。

4.2 内边距(Padding)

内边距是内容区和边框之间的空间。它可以用于在内容和边框之间添加空白,使内容不会直接贴在边框上,增强了内容的可视性和布局的美观性。

在上面的例子中,设置了四个方向上下左右边距都为10px;还有其他几种书写方式:

  1. padding: 1px 2px 3px 4px;(对应上、右、下、左不同的边距大小)
  2. padding: 1px 2px 3px;(对应上、左右、下不同的边距大小)
  3. padding: 1px 3px;(对应上下、左右不同的边距大小)
  4. 或者单独配置边距:padding-leftpadding-top

4.3 边框(Border)

边框是围绕在内边距和内容区外部的线条,用于划分元素的边界。边框可以有不同的样式、宽度和颜色。

border是一个简写方式:border:边框宽度 边框样式 边框颜色;

还可以拆开分别配置:

  1. border-width: 边框宽度
  2. border-style: 边框样式,如solid(实线)、dashed(虚线)、dotted(点线)等)
  3. border-color: 边框颜色(颜色英文或颜色进制,rgb)

还可以单独设置某一边的边框:border-leftborder-left-color

在上面的例子中,只是单纯的设置了四个边为4px的红色实线边框

4.4 外边距(Margin)

边距是元素边框与相邻元素之间的空间。它用于控制元素之间的间距,使页面布局更加合理。

在上面的例子中,设置了四个方向上下左右边距都为20px;还有其他几种书写方式:

  1. margin: 1px 2px 3px 4px;(对应上、右、下、左不同的边距大小)
  2. margin: 1px 2px 3px;(对应上、左右、下不同的边距大小)
  3. margin: 1px 3px;(对应上下、左右不同的边距大小)
  4. 或者单独配置边距:margin-leftmargin-top

4.5 标准盒模型与怪异盒模型

标准盒模型:在标准盒模型中,元素的宽度(width)和高度(height)只包括内容区域的大小,不包括内边距和边框。 如上图:

  1. 元素实际在页面所占宽度=宽度300(width)+ 内边距10*2(padding) + 边框4*2(border);
  2. 元素实际在页面所占高度=高度150(width)+ 内边距10*2(padding) + 边框4*2(border);

怪异盒模型(IE 盒模型):在怪异盒模型中,元素的宽度(width)和高度(height)是指内容区、内边距和边框的总和,外边距不包括在内。可以通过box - sizing属性来切换盒模型。

div {width: 300px;height: 150px;margin: 20px;padding: 10px;border: 4px solid red;box-sizing: border-box;
}

经过上方样式配置后,就会将元素更改为怪异盒模型:

  1. 元素实际在页面所占宽度300=宽度(width)+ 内边距(padding) + 边框(border);
  2. 元素实际在页面所占高度150=高度(width)+ 内边距(padding) + 边框(border);

相关文章:

CSS回顾-基础知识详解

一、引言 在前端开发领域&#xff0c;CSS 曾是构建网页视觉效果的关键&#xff0c;与 HTML、JavaScript 一起打造精彩的网络世界。但随着组件库的大量涌现&#xff0c;我们亲手书写 CSS 样式的情况越来越少&#xff0c;CSS 基础知识也逐渐被我们遗忘。 现在&#xff0c;这种遗…...

Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别

Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别 keyword 与 text 区别term 查询match 查询match_phrase 查询match_phrase_prefix 查询写在最后 在讲述 es 查询时 term、match、match_phrase、match_phrase_prefix 的区别之前&#xff0c;先来了…...

低代码平台:跨数据库处理的重要性与实现方式

一、低代码平台概述 低代码平台作为一种创新的软件开发工具&#xff0c;为开发者带来了极大的便利。它具备可视化编程工具和大量预构建组件&#xff0c;这使得开发者无需编写大量代码就能创建应用程序&#xff0c;显著降低了软件开发的技术门槛。无论是专业开发人员还是业务人员…...

【jvm】如何破坏双亲委派机制

目录 1.说明2.重写ClassLoader的loadClass方法2.1 原理2.2 实现步骤2.3 注意事项 3.使用线程上下文类加载器3.1 原理3.2 实现步骤3.3 应用场景 4.利用SPI机制4.1 原理4.2 实现步骤4.3 应用场景 5.Tomcat等容器的自定义类加载器5.1 原理5.2 实现方式5.3 应用场景 1.说明 1.双亲委…...

ReactPress与WordPress:一场内容管理系统的较量

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress WordPress官网&#xff1a;https://wordpress.org/ ReactPress与WordPress&#xff1a;一场内容管理系统的较量 在当今数字化时代&#xff0c;内容管理系统&#xff08;CMS&#xff09;已成为…...

网络安全练习之 ctfshow_web

文章目录 VIP题目限免&#xff08;即&#xff1a;信息泄露题&#xff09;源码泄露前台JS绕过协议头信息泄露robots后台泄露phps源码泄露源码压缩包泄露版本控制泄露源码(git)版本控制泄露源码2(svn)vim临时文件泄露cookie泄露域名txt记录泄露敏感信息公布内部技术文档泄露编辑器…...

在 Service Worker 中caches.put() 和 caches.add()/caches.addAll() 方法他们之间的区别

在 Service Worker 中&#xff0c;caches.put(request, response) 和 caches.add(request)/caches.addAll(requests) 方法都用于将资源添加到缓存中&#xff0c;但它们的使用场景和目的略有不同。 caches.put(request, response)&#xff0c;一用在fetch事件当中&#xff0c;由…...

UNIAPP发布小程序调用讯飞在线语音合成+实时播报

语音合成能够将文字转化为自然流畅的人声&#xff0c;提供100发音人供您选择&#xff0c;支持多语种、多方言和中英混合&#xff0c;可灵活配置音频参数。广泛应用于新闻阅读、出行导航、智能硬件和通知播报等场景。 在当下大模型火爆的今日&#xff0c;语音交互页离不开语音合…...

跳房子(弱化版)

题目描述 跳房子&#xff0c;也叫跳飞机&#xff0c;是一种世界性的儿童游戏&#xff0c;也是中国民间传统的体育游戏之一。 跳房子的游戏规则如下&#xff1a; 在地面上确定一个起点&#xff0c;然后在起点右侧画 n 个格子&#xff0c;这些格子都在同一条直线上。每个格子内…...

ubuntu22 安装 minikube

在Ubuntu 22上安装Minikube&#xff0c;你可以按照以下步骤进行&#xff1a; 安装依赖&#xff1a; 更新系统并安装必要的依赖项&#xff1a; sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl安装Docker&#xff1a; Minikube可以使用D…...

STM32 | 超声波避障小车

超声波避障小车 一、项目背题 由于超声波测距是一种非接触检测技术&#xff0c;不受光线、被测对象颜色等的影响&#xff0c;较其它仪器更卫生&#xff0c;更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境&#xff0c;具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于…...

打造旅游卡服务新标杆:构建SOP框架与智能知识库应用

随着旅游业的蓬勃兴起&#xff0c;旅游卡产品正逐渐成为市场的焦点。为了进一步提升服务质量和客户体验&#xff0c;构建一套高效且标准化的操作流程&#xff08;SOP&#xff09;变得尤为重要。本文将深入探讨如何构建旅游卡的SOP框架&#xff0c;并介绍如何利用智能知识库技术…...

通过脚本,发起分支合并请求和打tag

#!/bin/bash # Set GitLab API URL and access token GITLAB_API_URL"http://IP/api/v4" ACCESS_TOKEN"Token秘钥" # Define repository IDs declare -A repo_ids( ["gitIP:kingmq/client.git"]"123" ["gitIP:kingmq/s…...

【视频讲解】Python深度神经网络DNNs-K-Means(K-均值)聚类方法在MNIST等数据可视化对比分析...

全文链接&#xff1a;https://tecdat.cn/?p38289 分析师&#xff1a;Cucu Sun 近年来&#xff0c;由于诸如自动编码器等深度神经网络&#xff08;DNN&#xff09;的高表示能力&#xff0c;深度聚类方法发展迅速。其核心思想是表示学习和聚类可以相互促进&#xff1a;好的表示会…...

网络安全在线网站/靶场:全面探索与实践

目录 1. CyberPatriot 简介 功能与特点 适用人群 2. Hack The Box 简介 功能与特点 适用人群 3. OverTheWire 简介 功能与特点 适用人群 4. VulnHub 简介 功能与特点 适用人群 5. PortSwigger Web Security Academy 简介 功能与特点 适用人群 6. TryHackM…...

Ceph 中Crush 算法的理解

Crush&#xff08;Controlled Replication Under Scalable Hashing&#xff09;算法是一种可扩展的、分布式的副本数据放置算法&#xff0c;广泛用于存储系统中&#xff0c;特别是Ceph分布式存储系统中。以下是对CRUSH算法的详细解释&#xff1a; 一、算法原理 CRUSH算法根据…...

D70【 python 接口自动化学习】- python 基础之数据库

day70 Python综合实践 学习日期&#xff1a;20241116 学习目标&#xff1a; MySQL 数据库 Q -- Python 综合实践 学习笔记&#xff1a; 案例需求 数据内容 DDL定义 总结 1. 使用Python实现读取写入数据库操作 ps.今天去看航展了&#xff0c;歼20简直不要太快&#xff0c;明…...

C# LINQ数据访问技术

文章目录 1.LINQ 的基本概念1.1 LINQ 的优势1.2 LINQ 数据访问的方式 2.LINQ 基本操作2.1 查询语法2.2 方法语法 3.LINQ 常用查询方法3.1 Where3.2 Select3.3 OrderBy / OrderByDescending3.4 GroupBy3.5 Join3.6 Aggregate 4.LINQ 查询示例4.1 LINQ to Objects4.2 LINQ to SQL…...

【JavaSE线程知识总结】

多线程 一.创建线程1.多线程创建方式一(Thread)2.多线程创键方式二(Runnable)3.线程创建方式三 二.线程安全问题解决办法1.使用同步代码块synchornized 2 .使用Lock解决线程安全问题 三.总结 线程就是程序内部的一条执行流程 一.创建线程 常用的方法 Thread.currentThread()…...

FreeRTOS内存管理

1. 为什么要自己实现内存管理 对于内核对象&#xff0c;可以使用时分配&#xff0c;不使用时释放C语音的库函数不适应与FreeRTOS: 实现过于复杂&#xff0c;占用空间大并非线程安全的运行不确定性&#xff1a;每次运算时间不确定内存碎片化不太编译器配置不同调试难 2. 堆栈…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者&#xff0c;高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法&#xff0c;分为两大系列&#xff1a; 一、getElementBy... 系列 传统方法&#xff0c;直接通过 DOM 接口访问&#xff0c;返回动态集合&#xff08;元素变化会实时更新&#xff09;。…...