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

Web - CSS3基础语法与盒模型

概述

这篇文章是关于 Web 前端 CSS3 的基础语法与盒模型的讲解。包括 CSS3 层叠性及处理冲突规则、伪元素和新增伪类元素、属性选择器等。还介绍了文本与字体属性,如段落和行相关属性、字体文本属性。最后阐述了盒子模型,如元素隐藏、行内与块元素转换、盒子构成及相关属性等。

css3 层叠样式表

css全名叫做层叠样式表,层叠性是它很重要的性质,多个选择器可以同时作用于同一个标签,效果叠加。

css有严密的处理冲突的规则:ID权重 > Class权重 > 标签权重,复杂选择器可以通过个数的形式,计算权重:

项目权重值
ID2
Class1
Tag0
伪元素

1、::before 和::after

在被选元素的内容前面或后面插入额外的内容,常用来添加一些装饰性的元素或实现特定的布局效果。

p::before {content: "▶";color: blue;margin-right: 5px;
}p::after {content: "◀";color: green;margin-left: 5px;
}

2、::first-letter

用于选择并设置文本块中第一个字母的样式,可实现首字下沉等效果。

p::first-letter {font-size: 2em;color: red;float: left;margin-right: 5px;
}

3、::first-line

用来选择并设置文本块中第一行的样式,比如可以改变第一行文本的字体、颜色、背景等。

p::first-line {font-weight: bold;color: purple;
}

4、::selection

用于设置用户选中页面元素时的样式,包括文字选中时的背景色和文字颜色等。

p::selection {background-color: yellow;color: black;
}

5、::placeholder

用于设置表单输入框中占位文本的样式,可调整占位文本的颜色、字体等。

input::placeholder {color: gray;font-style: italic;
}

6、::marker

主要用于设置列表项标记(如项目符号或数字)的样式。

ul li::marker {color: red;font-size: 1.2em;
}
新增伪类元素

1、:empty 选择空标签
2、:focus 选择当前获得焦点的表单元素
3、:enabled 和 :disabled 分别匹配可使用(启用)和不可使用(禁用)的表单元素。
4、:checked 匹配被选中的表单元素,如复选框、单选框。
5、root 选择根元素,即<html>标签

属性选择器
举例意义
img[alt]选择有alt属性的img标签
img[alt=“故宫”]选择有alt属性是故宫的img标签
img[alt^=“北京”]选择有alt属性是北京开头的img标签
img[alt$=“夜景”]选择有alt属性是夜景结尾的img标签
img[alt*=“美”]选择有alt属性中含有美的img标签
img[alt~=“手机拍摄”]选择有alt属性中有空格隔开的手机拍摄字样的img标签
img[alt=“参赛作品”]
序号选择器
举例意义
:first-child选择父元素的第一个子元素
:last-child选择父元素的最后一个子元素
:nth-child(n)第n个子元素
:nth-of-type(n)选择父元素下指定类型的第n个元素,只针对指定类型的元素进行计数和选择,而不会考虑其他类型的元素
:nth-last-child(n)]从父元素的最后一个子元素开始计数,选择第n个元素
:nth-last-of-type(n)从父元素的最后一个指定类型的子元素开始计数,选择第n个元素
元素关系选择器
名称举例意义
子选择器div > pdiv的子标签p
相邻兄弟选择器img+p图片后面紧跟着的将被选中
通用兄弟选择器p~spanp元素之后的所有同层级span元素

文本与字体属性

文本相关的属性普遍具有继承性,只需要给祖先标签设置,即可在后代所有标签中生效。因为文字相关属性有继承性,所以通常会设置body标签的字号、颜色、行高等,这样就能当做整个网页的默认样式了。

继承性有一个重要的原则:就近原则,在继承的情况下,选择器权重计算失效,而是就近原则。

段落和行相关属性

1、text-indent

设置段落首行的缩进,可以使用长度值(如px、em、rem等)或百分比来指定缩进量。

p { text-indent: 2em; }

2、line-height

设置段落行与行之间的垂直间距,即行高。可以是数字、长度值或百分比。数字表示相对于字体大小的倍数;长度值直接指定行高的具体尺寸;百分比是相对于字体大小的比例。

p { line-height: 1.5; }

3、text-align

设置段落文本的水平对齐方式,left(左对齐)、right(右对齐)、center(居中对齐)、justify(两端对齐)等。

p { text-align: center; }

4、letter-spacing

设置字符之间的水平间距,长度值,正值会增加字符间距,负值会减小字符间距。

p { letter-spacing: 2px; }

5、word-spacing

设置单词之间的水平间距,长度值,用于调整单词之间的间隔距离。

p { word-spacing: 5px; }
字体文本属性

1、font-family

指定文本使用的字体族。可以设置多个字体,按优先级排列,浏览器会依次尝试使用这些字体,直到找到可用的字体。

p {font-family: "微软雅黑", Arial, sans-serif;
}

2、font-size

设置字体的大小。可以使用多种单位,如 px(像素)、em 、rem、% 等,网页文字正文字号通常是16px,浏览器最小支持10px字号。

3. font-weight

设置字体的粗细程度。常见取值有 normal(正常粗细)、bold(粗体),还可以使用数字值,范围从 100 - 900,数字越大字体越粗。

strong {font-weight: bold;
}
span {font-weight: 600;
}

4、font-style

设置字体的样式,主要用于指定文本是否为斜体。取值有 normal(正常样式)、italic(斜体)。

5、text-decoration

text-decoration属性用于设置文本的修饰线外观的(下划线、删除线)

p.red-underline {text-decoration-line: underline;text-decoration-color: red;
}

盒子模型

在 CSS3 中,有多种方法可以隐藏元素,每种方法都有其特点和适用场景:

元素的隐藏

1、display

该属性值会让元素完全从文档流中移除,就好像这个元素在 HTML 文档中不存在一样。它不会占据页面的空间,也不会响应任何用户交互事件。

.hidden-element {display: none;
}

2、visibility

元素虽然在页面上不可见,但它仍然占据原来的空间,并且保留其布局位置。也就是说,它会影响页面的布局,但不会显示内容,同时也不会响应鼠标事件等交互操作。

行内元素和块元素的相互转换

在 CSS3 中,可以使用display属性来实现行内元素和块元素的相互转换。

1、行内元素转换为块元素

span {display: block;
}

2、块元素转换为行内元素

块元素如<div><p>等,默认会独占一行。若要将块元素转换为行内元素,需将display属性值设置为inline。

div {display: inline;
}

3、转换为行内块元素

还有一种常见的情况是将元素转换为行内块元素,即display属性值设置为inline-block。这种方式结合了行内元素和块元素的部分特点,元素既可以在一行内显示,又可以设置宽度、高度等块级元素的属性。

p {display: inline-block;
}
盒子模型

所有的html标签都可以看成柜型盒子,由width、height、padding、border构成,成为盒模型。

需要注意的是:++width、height不是盒子的总宽高,盒子的总宽度 = width + 左右padding + 左右border,盒子的总高度 = height + 上下padding + 上下border++

1、box-sizing

在 CSS3 中,box-sizing 属性用于定义元素在计算宽度和高度时所采用的盒模型类型,它可以改变元素的宽度和高度的计算方式。

2、margin

margin是盒子的外边距,即盒子其他盒子的距离,竖直方向的margin有塌陷现象:小的margin会塌陷到大的margin中,从而margin不叠加,只以大值为准。

一些元素比如body、ul、p,都有默认的margin,在开始制作网页的时候,要将他们清除。

盒子的水平居中,将盒子的左右两边的margin都设置成auto,盒子将水平居中。盒子的垂直居中,需要使用绝对定位技术实现。

3、padding

padding是盒子的内边距,即盒子边框内壁到文字的距离

4、width属性

width属性表示盒子内容的宽度,单位属性通常是px,移动端开发也会涉及百分数、rem等单位。

当块级元素div、h、li等没有设置width属性时,它将自动撑满,但这不意味着width属性可以继承。

5、height属性

height属性表示盒子的内容高度,height属性的单位通常是px,移动端开发也会涉及到百分数、rem等单位。

盒子的height属性如果不设置,它将自动被其内容撑开,如果没有内容,则height默认是0。

相关文章:

Web - CSS3基础语法与盒模型

概述 这篇文章是关于 Web 前端 CSS3 的基础语法与盒模型的讲解。包括 CSS3 层叠性及处理冲突规则、伪元素和新增伪类元素、属性选择器等。还介绍了文本与字体属性&#xff0c;如段落和行相关属性、字体文本属性。最后阐述了盒子模型&#xff0c;如元素隐藏、行内与块元素转换、…...

自然语言处理-词嵌入 (Word Embeddings)

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 词嵌入&#xff08;Word Embedding&#xff09;是一种将单词或短语映射到高维向量空间的技术&#xff0c;使其能够以数学方式表示单词之间的关系。词嵌入能够捕捉语义信息&#xff0c;使得相似的词在向量空间中具有…...

深度学习之“线性代数”

线性代数在深度学习中是解决多维数学对象计算问题的核心工具。这些数学对象包括标量、向量、矩阵和张量&#xff0c;借助它们可以高效地对数据进行操作和建模。以下将详细介绍这些数学对象及其在深度学习中的典型用途。 数学对象概述 标量 标量是最简单的数学对象&#xff0…...

SpringBoot的配置(配置文件、加载顺序、配置原理)

文章目录 SpringBoot的配置(配置文件、加载顺序、配置原理)一、引言二、配置文件1、配置文件的类型1.1、配置文件的使用 2、多环境配置 三、加载顺序四、配置原理五、使用示例1、配置文件2、配置类3、控制器 六、总结 SpringBoot的配置(配置文件、加载顺序、配置原理) 一、引言…...

【C++语言】卡码网语言基础课系列----13. 链表的基础操作I

文章目录 背景知识链表1、虚拟头节点(dummyNode)2、定义链表节点3、链表的插入 练习题目链表的基础操作I具体代码实现 小白寄语诗词共勉 背景知识 链表 与数组不同&#xff0c;链表的元素存储可以是连续的&#xff0c;也可以是不连续的&#xff0c;每个数据除了存储本身的信息…...

python小知识-jupyter lab

python小知识-jupyter lab 1. Jupyter Lab功能介绍 Jupyter Lab 是一个基于网页的交互式开发环境&#xff0c;它支持 Jupyter Notebook、文本编辑器、终端、数据可视化以及其他自定义组件。它提供了一个灵活的用户界面&#xff0c;允许用户创建和共享包含实时代码、方程、可视…...

数组—学习

1.基础知识 1. 高精度计算 高精度算法是处理大数&#xff08;超过64位&#xff09;的计算方法。C标准库没有直接支持大数运算&#xff0c;因此需要使用数组来模拟大数的存储和运算。 2. 全局静态数组 全局变量&#xff08;包括静态数组&#xff09;在C中会在程序启动时自动初…...

解决国内服务器 npm install 卡住的问题

在使用国内云服务器时&#xff0c;经常会遇到 npm install 命令执行卡住的情况。本文将分享一个典型案例以及常见的解决方案。 问题描述 在执行以下命令时&#xff1a; mkdir test-npm cd test-npm npm init -y npm install lodash --verbose安装过程会卡在这个状态&#xf…...

CVE-2023-38831 漏洞复现:win10 压缩包挂马攻击剖析

目录 前言 漏洞介绍 漏洞原理 产生条件 影响范围 防御措施 复现步骤 环境准备 具体操作 前言 在网络安全这片没有硝烟的战场上&#xff0c;新型漏洞如同隐匿的暗箭&#xff0c;时刻威胁着我们的数字生活。其中&#xff0c;CVE - 2023 - 38831 这个关联 Win10 压缩包挂…...

流媒体娱乐服务平台在AWS上使用Presto作为大数据的交互式查询引擎的具体流程和代码

一家流媒体娱乐服务平台拥有庞大的用户群体和海量的数据。为了高效处理和分析这些数据&#xff0c;它选择了Presto作为其在AWS EMR上的大数据查询引擎。在AWS EMR上使用Presto取得了显著的成果和收获。这些成果不仅提升了数据查询效率&#xff0c;降低了运维成本&#xff0c;还…...

Clion开发STM32时使用stlink下载程序与Debug调试

一、下载程序 先创建一个文件夹&#xff1a; 命名&#xff1a;stlink.cfg 写入以下代码: # choose st-link/j-link/dap-link etc. #adapter driver cmsis-dap #transport select swdsource [find interface/stlink.cfg]transport select hla_swdsource [find target/stm32f4x.…...

无人机图传模块 wfb-ng openipc-fpv,4G

openipc 的定位是为各种模块提供底层的驱动和linux最小系统&#xff0c;openipc 是采用buildroot系统编译而成&#xff0c;因此二次开发能力有点麻烦。为啥openipc 会用于无人机图传呢&#xff1f;因为openipc可以将现有的网络摄像头ip-camera模块直接利用起来&#xff0c;从而…...

C语言 --- 分支

C语言 --- 分支 语句分支语句含义if...else语句单分支if语句语法形式 双分支 if-else 语句语法形式 悬空else含义问题描述 多分支 if-else 语句语法形式 switch...case语句含义语法形式 总结 &#x1f4bb;作者简介&#xff1a;曾与你一样迷茫&#xff0c;现以经验助你入门 C 语…...

面经--C语言——sizeof和strlen,数组和链表,#include <>和 #include ““ #define 和typedef 内存对齐概述

文章目录 sizeof 和 strlen数组和链表总结 #include <>和 #include ""#define 和typedef内存对齐概述对齐规则示例&#xff1a;结构体的内存对齐分析&#xff1a; 内存对齐的常见规则&#xff1a;填充字节的计算对齐影响的实际例子 sizeof 和 strlen 特性size…...

低代码系统-产品架构案例介绍、炎黄盈动-易鲸云(十二)

易鲸云作为炎黄盈动新推出的产品&#xff0c;在定位上为低零代码产品。 开发层 表单引擎 表单设计器&#xff0c;包括设计和渲染 流程引擎 流程设计&#xff0c;包括设计和渲染&#xff0c;需要说明的是&#xff1a;采用国际标准BPMN2.0&#xff0c;可以全球通用 视图引擎 视图…...

自制虚拟机(C/C++)(三、做成标准GUI Windows软件,扩展指令集,直接支持img软盘)

开源地址:VMwork 要使终端不弹出&#xff0c; #pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup") 还要实现jmp near 0x01类似的 本次的main.cpp #include <graphics.h> #include <conio.h> #include <windows.h> #includ…...

[c语言日寄]C语言类型转换规则详解

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…...

Rust 的基本类型有哪些,他们存在堆上还是栈上,是否可以COPY?

Rust 的基本类型主要包括以下几类&#xff1a; 1. 整数类型&#xff08;Integer&#xff09; Rust 提供了有符号和无符号的整数类型&#xff1a; 有符号整数&#xff08;i8, i16, i32, i64, i128, isize&#xff09;无符号整数&#xff08;u8, u16, u32, u64, u128, usize&a…...

oracle 19C RAC打补丁到19.26

oracle 19CRAC打补丁到19.26 本文只保留简介命令和每个命令大概的用时&#xff0c;方便大家直接copy使用&#xff0c;并了解每个命令的预期时间&#xff0c;减少命令执行期的等待焦虑。 1.本次所需的补丁如下 p6880880_190000_Linux-x86-64.zip &#xff08;.43的opatch&…...

利用Spring Batch简化企业级批处理应用开发

1. 引言 1.1 批处理的重要性 在现代企业系统中,批处理任务用于处理大量数据,如报表生成、数据迁移、日终结算等。这些任务通常不需要实时响应,但需要高效、可靠地完成。批处理可以显著提高系统性能,减少实时系统的负载,并确保数据的完整性和一致性。 1.2 Spring Batch简…...

三、js笔记

(一)JavaScript概述 1、发展历史 ScriptEase.(客户端执行的语言):1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言)Javascript:Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigat…...

C# 语言基础全面解析

.NET学习资料 .NET学习资料 .NET学习资料 一、引言 C# 是一种功能强大、面向对象且类型安全的编程语言&#xff0c;由微软开发&#xff0c;广泛应用于各种类型的软件开发&#xff0c;从桌面应用、Web 应用到游戏开发等领域。本文将全面介绍 C# 语言的基础知识&#xff0c;帮…...

基于SpringBoot的青年公寓服务平台的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

Bash 基础与进阶实践指南

目录 Bash 简介与基础基本命令与文件操作权限管理与用户管理重定向与管道变量与环境变量通配符与正则表达式Shell 脚本结构与控制流常用内建命令与技巧文本处理常用命令作业控制与进程管理别名与函数实用技巧与注意事项更多 Bash 进阶话题参考资源 1. Bash 简介与基础 1.1 什…...

深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据

深入探讨&#xff1a;服务器如何响应前端请求及后端如何查看前端提交的数据 一、服务器如何响应前端请求 前端与后端的交互主要通过 HTTP 协议实现。以下是详细步骤&#xff1a; 1. 前端发起 HTTP 请求 GET 请求&#xff1a;用于从服务器获取数据。POST 请求&#xff1a;用…...

使用LLaMA-Factory对AI进行认知的微调

使用LLaMA-Factory对AI进行认知的微调 引言1. 安装LLaMA-Factory1.1. 克隆仓库1.2. 创建虚拟环境1.3. 安装LLaMA-Factory1.4. 验证 2. 准备数据2.1. 创建数据集2.2. 更新数据集信息 3. 启动LLaMA-Factory4. 进行微调4.1. 设置模型4.2. 预览数据集4.3. 设置学习率等参数4.4. 预览…...

Kafka分区策略实现

引言 Kafka 的分区策略决定了生产者发送的消息会被分配到哪个分区中&#xff0c;合理的分区策略有助于实现负载均衡、提高消息处理效率以及满足特定的业务需求。 轮询策略&#xff08;默认&#xff09; 轮询策略是 Kafka 默认的分区策略&#xff08;当消息没有指定键时&…...

在无sudo权限Linux上安装 Ollama 并使用 DeepSeek-R1 模型

本教程将指导你如何在 Linux 系统上安装 Ollama&#xff08;一个本地运行大型语言模型的工具&#xff09;&#xff0c;并加载 DeepSeek-R1 模型。DeepSeek-R1 是一个高性能的开源语言模型&#xff0c;适用于多种自然语言处理任务。 DeepSeek-R1 简介 DeepSeek-R1 是 DeepSeek …...

Vue.js `v-memo` 性能优化技巧

Vue.js v-memo 性能优化技巧 今天我们来聊聊 Vue 3.2 引入的一个性能优化指令&#xff1a;v-memo。如果你在处理大型列表或复杂组件时&#xff0c;遇到性能瓶颈&#xff0c;那么 v-memo 可能会成为你的得力助手。 什么是 v-memo&#xff1f; v-memo 是 Vue 3.2 新增的内置指…...

蓝桥杯思维训练营(一)

文章目录 题目总览题目详解翻之一起做很甜的梦 蓝桥杯的前几题用到的算法较少&#xff0c;大部分考察的都是思维能力&#xff0c;方法比较巧妙&#xff0c;所以我们要积累对应的题目&#xff0c;多训练 题目总览 翻之 一起做很甜的梦 题目详解 翻之 思维分析&#xff1a;一开…...