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);

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

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

相关文章

11.08-10.14谷粒商城

谷粒商城--品牌管理 前端表单校验 品牌新增 品牌修改 校验规则 dataRule: {name: [{ required: true, message: "品牌名不能为空", trigger: "blur" }],logo: [{ required: true, message: "品牌logo地址不能为空", trigger: "blur"…

无插件H5播放器EasyPlayer.js网页web无插件播放器选择全屏时,视频区域并没有全屏问题的解决方案

EasyPlayer.js H5播放器&#xff0c;是一款能够同时支持HTTP、HTTP-FLV、HLS&#xff08;m3u8&#xff09;、WS、WEBRTC、FMP4视频直播与视频点播等多种协议&#xff0c;支持H.264、H.265、AAC、G711A、MP3等多种音视频编码格式&#xff0c;支持MSE、WASM、WebCodec等多种解码方…

基于Spring Boot的电子商务系统设计

5 系统实现 系统实现部分就是将系统分析&#xff0c;系统设计部分的内容通过编码进行功能实现&#xff0c;以一个实际应用系统的形式展示系统分析与系统设计的结果。前面提到的系统分析&#xff0c;系统设计最主要还是进行功能&#xff0c;系统操作逻辑的设计&#xff0c;也包括…

CSP-X2024山东小学组T2:消灭怪兽

题目链接 题目名称 题目描述 怪兽入侵了地球&#xff01; 为了抵抗入侵&#xff0c;人类设计出了按顺序排列好的 n n n 件武器&#xff0c;其中第 i i i 件武器的攻击力为 a i a_i ai​&#xff0c;可以造成 a i a_i ai​ 的伤害。 武器已经排列好了&#xff0c;因此不…

游戏引擎学习第九天

视频参考:https://www.bilibili.com/video/BV1ouUPYAErK/ 修改之前的方波数据&#xff0c;改播放正弦波 下面主要讲关于浮点数 1. char&#xff08;字符类型&#xff09; 大小&#xff1a;1 字节&#xff08;8 位&#xff09;表示方式&#xff1a;char 存储的是一个字符的 A…

JWTUtil工具类

写一个Jwt工具类 导入如下pom.xml依赖 <!--fastjson依赖--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.33</version></dependency><!--jwt依赖--><dependenc…

使用React和Vite构建一个AirBnb Experiences克隆网站

这一篇文章中&#xff0c;我会教你如何做一个AirBnb Experiences的克隆网站。主要涵盖React中Props的使用。 克隆网站最终呈现的效果&#xff1a; 1. 使用vite构建基础框架 npm create vitelatestcd airbnb-project npm install npm run dev2. 构建网站的3个部分 网站从上…

K8S containerd拉取harbor镜像

前言 接前面的环境 K8S 1.24以后开始启用docker作为CRI&#xff0c;这里用containerd拉取 参考文档 正文 vim /etc/containerd/config.toml #修改内容如下 #sandbox_image "registry.aliyuncs.com/google_containers/pause:3.10" systemd_cgroup true [plugins.…

unity小:shaderGraph不规则涟漪、波纹效果

实现概述 在本项目中&#xff0c;我们通过结合 Sine、Polar Coordinates 和 Time 节点&#xff0c;实现了动态波纹效果。以下是实现细节&#xff1a; 核心实现 Sine 波形生成&#xff1a; 使用 Sine 节点生成基本的波形。该节点能够创建周期性变化&#xff0c;为波纹效果提供…

设计模式(四)装饰器模式与命令模式

一、装饰器模式 1、意图 动态增加功能&#xff0c;相比于继承更加灵活 2、类图 Component(VisualComponent)&#xff1a;定义一个对象接口&#xff0c;可以给这些对象动态地添加职责。ConcreteComponent(TextView)&#xff1a;定义一个对象&#xff0c;可以给这个对象添加一…

(附项目源码)nodejs开发语言,212 个性化音乐推荐系统的设计与实现,计算机毕设程序开发+文案(LW+PPT)

摘要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作规…

面试时问到软件开发原则,我emo了

今天去一个小公司面试&#xff0c;面试官是公司的软件总监&#xff0c;眼镜老花到看笔记本电脑困难&#xff0c;用win7的IE打开leetcode网页半天打不开&#xff0c;公司的wifi连接不上&#xff0c;用自己手机热点&#xff0c;却在笔记本电脑上找不到。还是我用自己的手机做热点…

数字IC后端低功耗设计实现案例分享(3个power domain,2个voltage domain)

下图所示为咱们社区T12nm A55低功耗实现项目。其实这个项目还可以根据产品的需求做一些改进。改进后项目实现的难度会大大增加。也希望通过今天的这个项目案例分享&#xff0c;帮助到今年IC秋招的同学。 芯片低功耗设计实现upf编写指南&#xff08;附低功耗项目案例&#xff0…

自动驾驶仿真:软件在环(SIL)测试详解(精简版入门)

自动驾驶仿真&#xff1a;软件在环&#xff08;SIL&#xff09;测试详解 一、引言 自动驾驶技术的快速发展对测试验证提出了更高要求。软件在环&#xff08;Software-in-the-Loop&#xff0c;简称SIL&#xff09;仿真测试作为自动驾驶系统验证的重要手段&#xff0c;通过将自…

03-axios常用的请求方法、axios错误处理

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

2002.6 Partitioning the UMLS semantic network.划分 UMLS 语义网络

Partitioning the UMLS semantic network | IEEE Journals & Magazine | IEEE Xplore 问题 统一医学语言系统&#xff08;UMLS&#xff09;语义网络中的语义类型&#xff08;ST&#xff09;在知识表示和应用中存在不足&#xff0c;例如 ST 的组织方式缺乏直观性和可解释性…

WSL与Ubuntu系统--使用Linux

WSL与Ubuntu系统--使用Linux 前言基础教学视频卸载链接网络配置方法1方法2 正式安装步骤步骤1 基本命令修改网络配置Ubuntu系统的导出与导入文件操作给Ubuntu创造界面--也就是在装一个有界面的UbuntuHyper-v与windows主机文件共享 前言 需要链接梯子&#xff0c;并且梯子十分稳…

ZooKeeper单机、集群模式搭建教程

单点配置 ZooKeeper在启动的时候&#xff0c;默认会读取/conf/zoo.cfg配置文件&#xff0c;该文件缺失会报错。因此&#xff0c;我们需要在将容器/conf/挂载出来&#xff0c;在制定的目录下&#xff0c;添加zoo.cfg文件。 zoo.cfg logback.xml 配置文件的信息可以从二进制包…

AlphaFold3中文使用说明

目录 1. 在线网站用例1. 使用json输入预测蛋白结构 2. 本地命令行2.1 运行示例2.2 AF3输入A&#xff09;指定输入B&#xff09;输入格式b&#xff09;JSON最外层结构b.1 序列多序列比对&#xff08;MSA&#xff09;结构模板&#xff08;templates&#xff09; b.2 共价键b.3 用…

vue2/vue3中使用的富文本编辑器vue-quill

前言&#xff1a; 整理下常用的富文本编辑器工具。 vue3: 实现效果&#xff1a; 实现步骤&#xff1a; 1、安装插件&#xff0c; 编辑器核心插件 vueup/vue-quill yarn add pnpm i npm i cnpm i vueup/vue-quill vueup/vue-quill 2、安装选择性插件 &a…