CSS笔记——基本语法及相关知识

news2024/12/29 11:24:50

CSS层叠样式表是用于定义 HTML 或 XML 文档的样式和布局的语言。它可以让开发者更加灵活地控制页面元素的样式和排版,从而提高页面的可读性和用户体验

一、css样式书写顺序和规范

CSS样式的书写顺序和规范是为了让代码更易读、易维护和易扩展。下面是一些常见的规范:

  1. 建议按照以下顺序书写CSS属性:
    • 定位属性:position, top, right, bottom, left, z-index;
    • 盒模型属性:display, box-sizing, width, height, padding, border, margin;
    • 字体相关属性:font, line-height, text-align, text-transform, text-decoration;
    • 背景相关属性:background, color;
    • 其他属性:cursor, overflow, opacity等。
  2. 为了提高可读性和可维护性,建议每个属性单独一行,并且在属性名和属性值之间加一个空格。
  3. 使用缩写属性可以减少代码量,但是要确保清楚明白地说明每个属性的取值,尽量避免缩写造成的混淆和错误。
  4. 避免使用通配符(*)选择器和!important,因为它们会对性能和代码的可维护性产生负面影响。
  5. 使用语义化的命名规范来命名类名和ID名,以便于理解和扩展。
  6. 对于重复的样式代码,可以使用继承或者共享类名的方式来减少代码量。
  7. 在注释中说明样式的用途和意义,以便于其他人理解和维护代码。
  8. 在项目中统一使用一种CSS预处理器(如Sass、Less等),可以提高代码的可读性和可维护性。

总之,规范的CSS样式书写可以提高代码的质量和可维护性,减少代码错误和浪费的时间。

二、基本语法及相关知识

1、引入方式

  • 内联样式:在HTML元素中使用style属性设置CSS样式规则。

    <!-- HTML元素 -->
    <div style="background-color: #f0f0f0;">Hello World</div>
    
  • 内部样式表 :在HTML文档头部使用<style>标签定义CSS样式规则。

    <!-- HTML文档头部 -->
    <style>
      body {
        background-color: #f0f0f0;
      }
    </style>
    
  • 外部样式表 : 将CSS样式规则存储在一个单独的CSS文件中,使用<link>标签将CSS文件链接到HTML文档中。

    可以利用浏览器的缓存机制

    <link rel="stylesheet" href="styles.css">
    

需要注意的是,在使用CSS时,应该遵循以下一些最佳实践:

  1. 将CSS样式规则尽可能地存储在外部样式表中,以避免代码冗余和维护问题。如果必须使用内部样式或内联样式,应该限制其使用范围。
  2. 命名CSS类名和ID时,应该遵循一定的命名规范,以避免命名冲突和代码难以理解。常见的命名规范包括BEM、OOCSS和SMACSS等。
  3. 在编写CSS样式规则时,应该尽可能地避免使用!important声明,因为它会覆盖其他样式规则,增加了代码的复杂度。
  4. 在编写CSS时,应该注重样式的可读性和可维护性,可以通过拆分样式文件、模块化CSS等方式提高代码的可维护性。

2、注释方式

/*   xxxxxx   */

3、CSS选择器

标签选择器(Type Selector):通过元素的标签名匹配元素。

/* 选择所有的段落元素 */
p {
  color: red;
}

类选择器(Class Selector):通过元素的class属性匹配元素。

/* 选择class属性为"my-class"的所有元素 */
.my-class {
  font-weight: bold;
}

ID选择器(ID Selector):通过元素的id属性匹配元素。

/* 选择id属性为"my-id"的元素 */
#my-id {
  color: blue;
}

通配符选择器(Universal Selector):匹配所有元素。

注:选择器会遍历所有元素,尽量避免使用

/* 选择所有元素 */  
* {
  margin: 0;
  padding: 0;
}

属性选择器(Attribute Selector):通过元素的属性值匹配元素。

/* 选择所有title属性值中包含"example"的元素 */
[title*="example"] {
  font-style: italic;
}

在这里插入图片描述

伪类选择器(Pseudo-class Selector):匹配元素的特定状态,例如hover、active、focus等。

/* 选择所有被鼠标悬停的链接 */
a:hover {
  color: green;
}

伪元素选择器(Pseudo-element Selector):用于选择元素的特定部分,例如元素的第一个字母或第一个行。

/* 选择元素的第一个字母 */
p::first-letter {
  font-size: 2em;
}

4、css命名规范

  1. 可以包含字母、数字、破折号(-)和下划线(_)
  2. 字母或破折号(-)开头,而不是数字或下划线。
  3. 名称应该简洁、有意义,能够准确描述选择器、属性或值所表示的内容。
  4. 名称应该使用小写字母,**不要使用大写字母。**虽然CSS不区分大小写,但为了保持一致性,建议使用小写字母。
  5. 名称可以使用短横线(-)来分隔单词,例如font-size。不要使用下划线(_)或驼峰式命名法(camelCase)
  6. 避免使用具有歧义的名称,例如left、right、top、bottom等名称在不同的上下文中可能会有不同的意义,因此不应该使用这样的名称。
  7. 避免使用CSS关键字作为名称,例如margin、padding、font等。
  8. 在为选择器、属性或值命名时,应该尽可能使用英文单词,而不是缩写或拼音。
  9. 选择器、属性或值的命名应该具有可读性和易于理解的特点,以便于其他人理解代码并进行维护。

5、CSS复合选择器

后代选择器 : 使用空格分隔不同的选择器。例如,选择一个父元素内的子元素可以这样写:

父元素 子元素 {
  /* 样式 */
}

子元素选择器(Child Selector): 使用 “>” 符号分隔不同的选择器。这个选择器只会选择作为某个元素子元素的元素,不会选择孙元素。例如:

父元素 > 子元素 {
  /* 样式 */
}

相邻兄弟选择器(Adjacent Sibling Selector): 使用 “+” 符号分隔不同的选择器。这个选择器会选择紧随在某个元素后面的相邻兄弟元素。例如:

元素1 + 元素2 {
  /* 样式 */
}

**通用兄弟选择器(General Sibling Selector)**使用 “~” 符号分隔不同的选择器。这个选择器会选择在某个元素之后的所有兄弟元素。例如:

元素1 ~ 元素2 {
  /* 样式 */
}:

**属性选择器(Attribute Selector)**用于选择具有指定属性的元素。例如,选择所有带有 title 属性的元素可以这样写:

元素[属性名] {
  /* 样式 */
}

6、CSS样式优先级

选择器相同,执行样式层叠性

选择器不同,执行样式优先级

​ 在CSS中,样式的优先级是根据特定的规则来确定的,一般按照以下优先级从高到低:

  1. !important声明:使用!important声明的样式具有最高优先级,会覆盖其他所有规则。 无穷大
  2. 行内样式:在HTML标签内部使用style属性设置的样式优先级次之。 1,0,0,0
  3. ID选择器:使用ID选择器定义的样式具有比大多数其他选择器更高的优先级。 0,1,0,0
  4. 类选择器、属性选择器和伪类选择器:这些选择器的优先级相同,具有比元素选择器更高的优先级。 0,0,1,0
  5. 元素选择器和伪元素选择器:这些选择器的优先级最低,除非它们具有其他选择器所没有的关键字,如:not()。 0,0,0,1

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

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

相关文章

嵌入式Linux应用开发-Makefile 的使用

嵌入式Linux应用开发-Makefile 的使用 第三章 Makefile 的使用3.1 配套视频内容大纲3.1.1 Makefile 规则与示例3.1.2 通用 Makefile 的使用3.1.3 通用 Makefile 的解析 3.2 Makefile 规则3.3 Makefile 文件里的赋值方法3.4.1 字符串替换和分析函数3.4.2 文件名函数3.4.3 其他函…

NeRF中的位置编码

朴素NeRF中直接采用频率变换来做位置编码&#xff0c;为的是避免空间相邻采样点在MLP表示中的过平滑问题。比如位置(237, 332, 198)和位置(237,332,199)这两个点作为MLP的输入&#xff0c;MLP可能对个位不够敏感&#xff0c;导致输出过平滑的问题。例如&#xff1a; 由于缺乏位…

华为云云耀云服务器L实例评测 | 实例使用教学之软件安装:华为云云耀云服务器环境下安装 Docker

华为云云耀云服务器L实例评测 &#xff5c; 实例使用教学之软件安装&#xff1a;华为云云耀云服务器环境下安装 Docker 介绍华为云云耀云服务器 华为云云耀云服务器 &#xff08;目前已经全新升级为 华为云云耀云服务器L实例&#xff09; 华为云云耀云服务器是什么华为云云耀云…

特种设备安全监测终端,降低安全隐患风险!

特种设备运行关系到人民生命财产安全&#xff0c;关系到经济健康发展&#xff0c;关系到社会的稳定。有关特种设备的事故基本都发生在使用过程中&#xff0c;因此&#xff0c;使用过程的安全管理是特种设备的管理重点。针对国内特种设备本身存在事故隐患及安装、维修、操作、指…

基于微信小程序的快递配送管理平台系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

亚马逊投资Anthropic; OpenAI将推出新版ChatGPT

&#x1f989; AI新闻 &#x1f680; 亚马逊投资Anthropic获得可靠AI基础模型开发合作 摘要&#xff1a;亚马逊投资Anthropic至多40亿美元&#xff0c;将共同开发可靠高性能的基础模型&#xff0c;并能提前使用Anthropic技术。Anthropic将主要依赖亚马逊的云服务来训练未来的…

cJSON.c 在mfc中编译失败报 lnk2005错误

问题一、在MFC工程中导入cJson.c 编译时报以下错误&#xff1a; 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C1853 “x64\Release\xxx.pch”预编译头文件来自编译器的早期版本&#xff0c;或者预编译头为 C 而在 C 中使用它(或相反) xxx …

机器学习与数据挖掘第三、四周

为什么第二周没有呢……因为刚换老师&#xff0c;自学要适应一段时间。 本课程作者之后的学习目标是&#xff1a;实操代码&#xff0c;至少要将作者参加数学建模中用到的数据处理方法都做一遍。 首先&#xff0c;作者复习一下李宏毅老师的两节课程。 机器学习概述 机器学习就…

前言技术 VScode + 其他插件-1

一、VScode 提升编程效率&#xff0c;免费 IDE&#xff08;Integrated Development Environment&#xff0c;集成开发环境&#xff09;是含代码编辑器、关键词高亮、智能感应、智能纠错、格式美化、版本管理等功能于一身的 "高级代码编辑器" 每个 IT 工程师都要有自…

【专升本】1. 英语考试介绍

一、考试方式 基础题&#xff1a;80% 难题&#xff1a;20% 二、试卷结构 1. 语音 级别&#xff1a;不重要原因&#xff1a;1分/题 2. 语法与词 级别&#xff1a;基础&#xff0c;一般 原因&#xff1a;1分/题 3. 汇完形填空 级别&#xff1a;比较重要原因&#xff1a;…

PyTorch 深度学习之逻辑斯蒂回归Logistic Regression(五)

Revision-Linear Regression Classfication The MNIST dataset train: 训练集还是测试集 The CIFAR-10 dataset 1. Regression VS Classfication 输出概率 1.1 How to map [0,1] 导数: 正态分布 1.2 Sigmoid functions 2. Logistic Regression model loss function for Bin…

Spring事务this自调用的理解误区?真的会让事务失效吗?

文章目录 前言this调用是什么this调用事务失效案例this调用事务仍然生效案例&#xff1f;总结 如何解决this调用事务失效 前言 我们经常谈到Spring事务失效会有多种场景导致&#xff1a;可参考我另外一篇文章 一文清晰讲解Transactional 注解失效场景 Transactional 应用在非…

代码随想录算法训练营第四十九天 | 动态规划 part 10 | 买卖股票的最佳时机i、ii

目录 121. 买卖股票的最佳时机思路代码 122.买卖股票的最佳时机II思路代码 121. 买卖股票的最佳时机 Leetcode 思路 贪心&#xff1a;记录最低值&#xff0c;并且遍历股票逐个寻找股票卖出最大值 动态规划&#xff1a; dp[i][0] 表示第i天持有股票所得最多现金 dp[i][1] 表示…

uniapp - 微信小程序实现腾讯地图位置标点展示,将指定地点进行标记选点并以一个图片图标展示出来(详细示例源码,一键复制开箱即用)

效果图 在uniapp微信小程序平台端开发,简单快速的实现在地图上进行位置标点功能,使用腾讯地图并进行标点创建和设置(可以自定义标记点的图片)。 你只需要复制代码,改个标记图标和位置即可。

工地临时用电之智慧用电:全方位保障用电安全

随着科技进步和智能化的发展&#xff0c;工地用电管理也迎来了智慧化的革新。智慧用电&#xff0c;作为智慧工地的重要组成部分&#xff0c;通过集中式管理和创新的技术手段&#xff0c;为工地提供了全方位的用电安全保障。 针对工地临时用 的现状及系统结构&#xff0c;力安科…

ElementUI之动态树+数据表格+分页->动态树,动态表格

动态树动态表格 1.动态树 //src/components/LeftNav.vue <template><el-menu router :default-active"$route.path" default-active"2" class"el-menu-vertical-demo" background-color"#334157" text-color"#fff&quo…

OWASP Top 10漏洞解析(1)- A1:Broken Access Control 访问控制失效

作者&#xff1a; gentle_zhou 原文链接&#xff1a;OWASP Top 10漏洞解析&#xff08;1&#xff09;- A1:Broken Access Control 访问控制失效-云社区-华为云 Web应用程序安全一直是一个重要的话题&#xff0c;它不但关系到网络用户的隐私&#xff0c;财产&#xff0c;而且关…

Logic Pro X10.7.9(mac乐曲制作软件)

Logic Pro X是由苹果公司开发的一款专业音频制作软件&#xff0c;主要用于音乐制作、录音、混音和母带处理等方面。以下是Logic Pro X的特点&#xff1a; 强大的音频编辑功能&#xff1a;Logic Pro X提供了丰富的音频编辑工具&#xff0c;包括波形编辑器、音频自动化、时间拉伸…

【Linux】——基操指令(一)

个人主页 代码仓库 C语言专栏 初阶数据结构专栏 Linux专栏 LeetCode刷题 算法专栏 目录 前言 基操前的碎碎念 计算机的层状结构 基础指令 查看登录用户指令 查看用户指令 查看当前所处工作目录 清屏指令 基操指令 ls命令 cd命令 makdir指令 rmdir指令 &…

UE学习记录06----根据Actor大小自适应相机位置

背景&#xff1a; staticMesh 会根据业务需要随时变化&#xff0c;然后通过staticMesh的大小自适应相机位置&#xff0c;捕捉画面用来预览该模型&#xff0c;使模型在画布中不会太大导致显示不全&#xff0c;也不会太小 参考&#xff1a; UE实现相机聚焦物体功能_右弦GISer的…