CSS回顾-基础知识详解

news2025/4/17 20:21:33

一、引言

在前端开发领域,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);

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

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

相关文章

SSH和NFS

文章目录 SSH和NFS1 SSH远程管理1.1 概述1.2 ssh服务端和客户端1.3 用法1.3.1 服务器命令行的远程登录方式1.3.2 scp1.3.3 sftp1.3.4 ssh的密钥登录 2 NFS2.1 概述2.2 nfs操作步骤 SSH和NFS 1 SSH远程管理 1.1 概述 SSH&#xff08;Secure Shell&#xff09;协议是一种用于远…

Springboot 启动端口占用如何解决

Springboot 启动端口占用如何解决 1、报错信息如下 *************************** APPLICATION FAILED TO START ***************************Description:Web server failed to start. Port 9010 was already in use.Action:Identify and stop the process thats listening o…

SpringBoot 打造图片阅后即焚功能

阅后即焚”&#xff08;Snapchat-like feature&#xff09;是指一种社交媒体或信息传递功能&#xff0c;用户在阅读某条信息或查看某张图片后&#xff0c;该信息或图片会自动销毁&#xff0c;无法再次查看。这种功能的主要目的是保护用户的隐私和信息安全&#xff0c;防止敏感信…

FFmpeg 4.3 音视频-多路H265监控录放C++开发十三.2:avpacket中包含多个 NALU如何解析头部分析

前提&#xff1a; 注意的是&#xff1a;我们这里是从avframe转换成avpacket 后&#xff0c;从avpacket中查看NALU。 在实际开发中&#xff0c;我们有可能是从摄像头中拿到 RGB 或者 PCM&#xff0c;然后将pcm打包成avframe&#xff0c;然后将avframe转换成avpacket&#xff0…

Vue之插槽(slot)

插槽是vue中的一个非常强大且灵活的功能&#xff0c;在写组件时&#xff0c;可以为组件的使用者预留一些可以自定义内容的占位符。通过插槽&#xff0c;可以极大提高组件的客服用和灵活性。 插槽大体可以分为三类&#xff1a;默认插槽&#xff0c;具名插槽和作用域插槽。 下面…

华为鸿蒙HarmonyOS NEXT升级HiCar:打造未来出行新体验

随着科技的不断进步&#xff0c;智能出行已成为我们生活中不可或缺的一部分。华为凭借其在智能科技领域的深厚积累&#xff0c;推出了全新的鸿蒙HarmonyOS NEXT系统&#xff0c;旨在为用户打造一个“人车家”的无缝协同出行体验。这一系统的核心亮点之一&#xff0c;就是其内置…

Clickhouse集群新建用户、授权以及remote权限问题

新建用户 create user if not exists user on cluster 集群名称 IDENTIFIED WITH plaintext_password BY 密码;给用户授查询、建表、删表的权限 GRANT create table,select,drop table ON 数据库实例.* TO user on cluster 集群名称 ;在其他节点下用户建本地表成功&#…

Serverless架构在实时数据处理中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 Serverless架构在实时数据处理中的应用 Serverless架构在实时数据处理中的应用 Serverless架构在实时数据处理中的应用 引言 Ser…

Scrapy爬取heima论坛所有页面内容并保存到数据库中

前期准备&#xff1a; Scrapy入门_win10安装scrapy-CSDN博客 新建 Scrapy项目 scrapy startproject mySpider03 # 项目名为mySpider03 进入到spiders目录 cd mySpider03/mySpider03/spiders 创建爬虫 scrapy genspider heima bbs.itheima.com # 爬虫名为heima &#…

QSS 设置bug

问题描述&#xff1a; 在QWidget上add 一个QLabel&#xff0c;但是死活不生效 原因&#xff1a; c 主程序如下&#xff1a; QWidget* LOGO new QWidget(logo_wnd);LOGO->setFixedSize(logo_width, 41);LOGO->setObjectName("TittltLogo");QVBoxLayout* tit…

TKinter实现与Dash应用的同步启停控制

使用Python集成Tkinter和Dash&#xff1a;创建交互式数据可视化应用 在数据可视化项目中&#xff0c;我们经常需要结合传统GUI和现代Web可视化框架的优势。本文将介绍如何整合Tkinter和Dash&#xff0c;创建一个既有桌面应用界面&#xff0c;又能展示交互式图表的应用程序。 …

FreeRTOS学习13——任务相关API函数

任务相关API函数 任务相关API函数任务相关API函数介绍任务相关 API 函数详解函数 uxTaskPriorityGet()函数 vTaskPrioritySet()函数 uxTaskGetSystemState()函数 vTaskGetInfo()函数 xTaskGetApplicationTaskTag()函数 xTaskGetCurrentHandle()函数 xTaskGetHandle()函数 xTask…

2022-2023全国高校计算机能力挑战赛区域赛python组编程题

mi目录 2022 1. 2. 1. 使用 format() 方法 2. 使用 f-string&#xff08;Python 3.6 及以上&#xff09; 2023 1. 2. 3. 4 闽农大宝玲楼 2022 1. 1.某动物研究员给动物园的动物们定了一个园区幸福值&#xff0c;其中园区幸福值的计算为一个园区内“所有动物的活动时…

在Element Ui中支持从系统粘贴版中获取图片和PDF,Docx,Doc,PPT等文档

在上一篇中&#xff0c;我们单纯的实现了Ctrl V实现从粘贴版中获取图片信息&#xff0c;但是点击上传的时候会有个bug&#xff0c;就是点击文件上传的时候&#xff0c;会出现一个bug&#xff0c;这篇&#xff0c;我们将在上一篇的基础上进行完善&#xff0c;并支持从粘贴版中获…

【Android学习】2024最新版Android Studio安装与配置

准备工作 Windows系统的要求 一、下载 Android Studio官网&#xff1a;https://developer.android.google.cn/studio?hlen 今天是2024年9月27日&#xff0c;Android Studio已经更新到了Koala版本 直接下载 二、安装 笔者当前环境变量中配置的JDK版本为1.8 双击.exe文件运行…

如何解决JAVA程序通过obloader并发导数导致系统夯住的问题 | OceanBase 运维实践

案例背景 某保险机构客户的数据中台&#xff0c;自系统上线后不久&#xff0c;会定期的用 obload 工具从上游业务系统导入数据至OceanBase数据库。但&#xff0c;不久便遇到了应用服务器的 Memory 与 CPU 资源占用持续攀升&#xff0c;最终导致系统夯住而不可用的异常。 memo…

2分钟在阿里云ECS控制台部署个人应用(图文示例)

作为一名程序员&#xff0c;我有大量的个人代码和应用托管在Github/Gitee这些代码仓库。当我想要部署这些代码到我的阿里云ECS服务器时&#xff0c;往往会很麻烦&#xff0c;主要问题有这些&#xff1a; 需要手动安装和配置git&#xff0c;过程非常繁琐。每次都需要登录到机器…

Oracle XE命令行创建数据库的一波三折(已解决)

这是一个目录 前言创建预备创建一、创建配置文件指定控制文件路径二、使用命令行创建数据库三、初始化数据库四、创建服务五、配置监听 Oracle XE尾声 前言 这篇文章是我在误装了oracle xe&#xff08;精简版数据库&#xff09;后有感而写&#xff0c;对于xe的具体区别将在文末…

第四十一章 Vue之初识VueX

目录 一、引言 1.1. vuex的概念 1.2. vuex使用场景 1.3. 优势 二、创建演示项目 2.1. 构建项目步骤 2.2. 项目最终生成结构 2.3. 创建项目文件 2.3.1. App.vue 2.3.2. Son1.vue 2.3.3. Son2.vue 三、创建一个空仓库 3.1. 安装vuex 3.2. 新建仓库 3.3. 挂载仓库…

机器学习-35-提取时间序列信号的特征

文章目录 1 特征提取方法1.1 特征提取过程1.2 两类特征提取方法2 基于数据驱动的方法2.1 领域特定特征提取2.2 基于频率的特征提取2.2.1 模拟信号2.2.2 傅里叶变换2.2.3 抽取最大幅值对应特征2.2.4 抽取峰值幅值对应特征2.3 基于统计的特征提取2.4 基于时间的特征提取3 参考附录…