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

CSS读书笔记

——————————————精华部分——————————————

1、选择器
(1)基本选择器:
标签选择器 body{}
类选择器 class=''  .class名称{}
ID选择器 id=''  #id名称{}

优先级:ID选择器 > 类选择器 > 标签选择器

(2)层次选择器
后代选择器 body p{}
子选择器 body>p{}
相邻兄弟选择器 body + p{}
通用选择器 body~p{}

(3)结构伪类选择器
加冒号的条件
ul li:first-child{}

(4)属性选择器
a[id]{}

2、span标签
作用:重点突出的文字用span套起来

3、文本样式
排版:text-align
段落缩进:text-indent:
行高:line-height

4、a的结构伪类
鼠标悬浮的状态: a:hover

5、列表
列表类型 list-style
去掉原点: none

6、盒子模型
外边距:margin
内边距:padding
边框:border

7、display
块级元素作用及举例:独占一行,h1~h6,p,div,列表
行内元素作用及举例:不独占一行,span,a,img

块元素标签:block
行内标签:inline
写在一行的块级标签:inline-block
不显示:none

8、浮动
浮动标签:float
清除浮动:clear:both
解决父级边框塌陷的方法:增加空div并清除浮动

9、定位:
相对定位:relative,相对原文档流位置的偏移,原位置仍保留
绝对定位:absolute,相对于父级(非static定位)或浏览器的位置进行偏移,原位置不保留
固定位置:fixed

10、z-index
最高层级:999

11、透明度标签:opacity

——————————————详细说明——————————————

教程链接:2、什么是CSS和发展史_哔哩哔哩_bilibili

1、选择器

作用:选择页面上的某一个或者某一类元素

(1)基本选择器:

标签选择器: html标签{ … }

类选择器:class   .class的名称{ … },可以复用

ID选择器:id     #id名称{ … } , 唯一的不能复用

优先级:ID选择器 > 类选择器 > 标签选择器

(2)层次选择器

后代选择器:在某个元素的后面,

              祖爷爷  爷爷   爸爸   你

       body p{

        background: red;

}

影响所有的p标签

子选择器:一代,儿子

       body>p{

           background: red;

}

       只影响body下一级的p标签

相邻兄弟选择器:同辈

       .active + p {

              background: red;

}

       只影响下一个的相邻的兄弟

通用选择器:当前选中元素的向下的所有兄弟元素

       .active~p{

background: red;

}

影响向下的所有同级元素

(3)结构伪类选择器

伪类:条件

ul的第一个子元素:

ul li:first-child{

       background: red;

}

ul的最后一个子元素

ul li:last-child{

       background: red;

}

选中p1:定位到父元素,选择当前的第一个元素

       选择当前p元素的父级元素,选中父级元素的第一个

p:nth-child(1){

       background: red;

}

(4)属性选择器(常用)

可以是属性名,或者属性名=属性值(正则)

=为精确匹配, *=为包含

存在id属性的元素 a[]{},

a[id]{

       background: yellow;

}

a[id=first]{

       background: yellow;

}

class中有links的元素,

a[class*=”links”]{

       background: yellow;

}

2、span标签

作用:重点要突出的字,使用span标签套起来

3、文本样式

text-align: 排版 center左右居中

text-indent: 2em;  段落首行缩进。 2Em是2个字,2px是2个像素

行高line-height和块的高度height一致,就可以上下居中。

水平对齐,参照物a,b

img, span{

       vertical-align: middle;

}

 

4、a的结构伪类

a:hover   鼠标悬浮的状态

a:active   鼠标按住未释放的状态

5、列表

ul li

list-style:

       none 去掉原点

       circle 空心圆

decimal 数字

square  正方形

6、盒子模型

margin:外边距

padding:内边距

border:边框

外边距的妙用,居中元素。要求:外层为块元素,且有固定的宽度

margin: 0 auto;

margin: 0; 上下左右  都为0

margin: 0 1px;    上下为0,左右为1px

margin: 0 1px 2px 3px;  上0 下1px 左2px 右3px

7、display

块级元素: 独占一行

h1 ~ h6,p,div,列表…

行内元素:不独占一行

span  a  img  strong …

行内元素可以被包含在块级元素中,反之则不可以。

block:块元素

inline:行内元素

inline-block:保持块元素的特性,但是可以写在一行

none:不显示

8、浮动float

当元素设置浮动后,会自动脱离文档流。

向左浮动或者向右浮动,向左或向右移动,直到自己的边界紧贴着包含块(一般是父元素)或者其他浮动元素的边界为止。

9、float父级边框塌陷问题

clear: right;  右侧不允许有浮动元素

clear: left;   左侧不允许有浮动元素

clear: both;  两侧不允许有浮动元素

解决方案:

(1)增加父级元素的高度

(2)增加一个空的div标签,清除浮动

<div class=”clear”></div>

.clear{

        clear: both;

        margin: 0;

        padding: 0;

}

(3)在父级元素中增加一个 overflow: hidden;

原因:

隐藏溢出:当内容超过其父元素时,可以使用该属性和值将溢出的部分裁剪掉。

清除浮动:当子元素浮动时,按照上一个特性应该将子元素超出的部分截掉。但是子元素有浮动无法裁剪,所以只能由父元素增加高度去包裹住子元素,使得父元素拥有了高度,而这个高度是跟随子元素自适应的高度,这样就把浮动的子元素包含在父元素内了。

(4)父类添加一个伪类: after

#father:after{

        content: ‘’;

        display: block;

        clear: both;

}

小结:

(1)浮动元素后面增加空div

简单,代码中尽量避免空div

(2)设置父元素的高度

简单,元素假设有了固定的高度,就会被限制

(3)overflow

简单,下拉的一些场景避免使用

(4)父类添加一个伪类:after(推荐)

写法稍微复杂一点,但是没有副作用

10、display和float对比

display的方向不可以控制

float浮动起来的话会脱离标准文档流,所以要解决父级边框塌陷的问题

11、定位

(1)相对定位 relative

相对于自己原来的位置进行偏移,需要加额外的定位

它仍然在标准文档流中,原来的位置会被保留

上下左右 比如:top: -20px;

(2)绝对定位 absolute

基于xx定位,上下左右

  1. 没有父级元素定位的前提下,相对于浏览器定位
  2. 假设父级元素存在定位,通常会相对于父级元素进行偏移
  3. 在父级元素范围内进行移动

相对于父级(非static定位)或浏览器的位置进行指定的偏移,绝对定位的话,它不在标准文档流中,原来的位置不会被保留。

(3)固定定位fixed

12、z-index

最低层级为0,最高层级为999

13、透明度

opacity: 0.5;  背景透明度

相关文章:

CSS读书笔记

——————————————精华部分—————————————— 1、选择器 &#xff08;1&#xff09;基本选择器&#xff1a; 标签选择器 body{} 类选择器 class .class名称{} ID选择器 id #id名称{} 优先级&#xff1a;ID选择器 > 类选择器 > 标签选择器 &am…...

Qt使用QSqlDatabase remoeDatabase()连接提示仍在使用解决方案

问题描述 调用QSqlDatabase的removeDatabase函数的时候&#xff0c;出现了如下错误 QSqlDatabasePrivate::removeDatabase: connection 05465461654654 is still in use, all queries will cease to work官方示例 [static] void QSqlDatabase::removeDatabase(const QString &…...

管易云与金蝶云星空对接集成仓库查询打通仓库新增

管易云与金蝶云星空对接集成仓库查询打通仓库新增 接通系统&#xff1a;管易云 管易云是金蝶旗下专注提供电商企业管理软件服务的子品牌&#xff0c;先后开发了C-ERP、EC-OMS、EC-WMS、E店管家、BBC、B2B、B2C商城网站建设等产品和服务&#xff0c;涵盖电商业务全流程。 对接目…...

ubuntu 安装 Mongodb 4.0、4.2、4.4

1. 安装 # 配置apt Repository mongodb 4.0&#xff0c; 4.2&#xff0c; 4.4 $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 68818c72e52529d4 #4.0 $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 4B7C549A058F8B6B #4.2 $ …...

详解Hugging Face Transformers的TrainingArguments

前言&#xff1a; TrainingArguments是Hugging Face Transformers库中用于训练模型时需要用到的一组参数&#xff0c;用于控制训练的流程和效果。 使用示例&#xff1a; from transformers import Trainer,TrainingArguments training_args TrainingArguments(output_dir&q…...

【LeetCode-中等题】17. 电话号码的字母组合

文章目录 题目方法一&#xff1a;递归回溯 题目 方法一&#xff1a;递归回溯 参考讲解&#xff1a;还得用回溯算法&#xff01;| LeetCode&#xff1a;17.电话号码的字母组合 首先可以画出树图&#xff1a; 先将数字对应的字符集合 加入到一个map集合 这里需要一个index来控…...

读高性能MySQL(第4版)笔记06_优化数据类型(上)

1. 良好的逻辑设计和物理设计是高性能的基石 1.1. 反范式的schema可以加速某些类型的查询&#xff0c;但同时可能减慢其他类型的查询 1.2. 添加计数器和汇总表是一个优化查询的好方法&#xff0c;但它们的维护成本可能很 1.3. 将修改schema作为一个常见事件来规划 2. 让事情…...

mac如何创建mysql数据库

使用mac创建mysql数据库十分简单&#xff0c;我们只需要按照以下步骤即可完成。 首先&#xff0c;我们需要安装mysql&#xff0c;我们可以通过官网下载对应的安装包&#xff0c;或者通过Homebrew进行安装。 接下来&#xff0c;我们需要启动mysql服务&#xff0c;在终端中输入以…...

Ceph入门到精通-centos8 install brctl

在centos7上是可以直接yum安装bridge-utils的&#xff0c;但是centos8不行 经过分析 brctl有提供centos的rpm包&#xff0c;里面只有一个二进制脚本&#xff0c;所以直接下载安装即可 rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/bridge-utils-1.5-9.el7…...

sqli第一关

1.在下使用火狐访问sqlilabs靶场并使用burpsuite代理火狐。左为sqlilabs第一关&#xff0c;右为burpsuite。 2.输入?id1 and 11 与?id1 and 12试试 可以看出没有变化哈&#xff0c;明显我们输入的语句被过滤了。在?id1后面尝试各种字符&#xff0c;发现单引号 包…...

入行IC | 新人入行IC选择哪个岗位更好?

很多同学入行不知道怎么选择岗位。IC的岗位一般有设计、验证、后端、封装、测试、FPGA等等。但是具体到每个人身上&#xff0c;就要在开始的时候确定下你要找的职位&#xff0c;可以有两个或三个&#xff0c;但是要分出主次&#xff0c;主次不分会让你纠结整个找工作的过程。 …...

时间旅行的Bug 奇怪的输入Bug

故事一&#xff1a;时间旅行的Bug 在一个普通的工作日&#xff0c;程序员小明正在开发一个时间旅行的应用程序。这个应用程序可以让用户选择一个特定的日期和时间&#xff0c;然后将用户的意识传送到过去或未来的那个时刻。小明对这个项目非常兴奋&#xff0c;他认为这将是一个…...

解决nbsp;不生效的问题

代码块 {{title}} title:附 \xa0\xa0\xa0件,//或者 <span v-html"title"></span> title:附 件&#xff1a;,效果图...

【Lidar】Cloud Compare介绍安装包

CloudCompare是一款基于GPL开源协议的3D点云处理软件&#xff0c;最初被设计用来对稠密的三维点云进行直接比较。它依赖于一种特定的八叉树结构&#xff0c;在进行点云对比这类任务时具有出色的性能。在2005年后&#xff0c;CloudCompare实现了点云和三角形网格之间的比较。 Cl…...

Java中的Maven是什么?

Maven是一个开源的项目管理和构建工具&#xff0c;用于Java项目的构建、依赖管理和项目信息管理。它提供了一种标准的项目结构、规范的构建过程和丰富的插件生态系统&#xff0c;简化了项目的管理和构建过程。 Maven基于项目对象模型&#xff08;Project Object Model&#xf…...

计算机操作系统

计算机操作系统 1.进程管理 1.1 基础概念 进程&线程 进程是操作系统资源分配的基本单位。一个进程运行时&#xff0c;会获取必要的CPU、内存地址空间&#xff0c;以及运行时必要的IO设备。 线程则是执行调度的最小单位。一个进程会由一个线程或者多个线程执行调度任务。…...

海学会读《乡村振兴战略下传统村落文化旅游设计》2023年度许少辉八一新书

海学会读《乡村振兴战略下传统村落文化旅游设计》2023年度许少辉八一新书...

tkinter树形图组件

文章目录 初步回调函数绑定滚动条 初步 Treeview是ttk中的树形表组件&#xff0c;功能十分强大&#xff0c;非常适用于系统路径的表达。为了知道属性图到底是什么&#xff0c;下面先做个最简单的树形图 其代码如下 import tkinter as tk from tkinter import ttkdct {"…...

多线程的创建

一、基本概念 1 cpu CPU的中文名称是中央处理器&#xff0c;是进行逻辑运算用的&#xff0c;主要由运算器、控制器、寄存器三部分组成&#xff0c;从字面意思看就是运算就是起着运算的作用&#xff0c;控制器就是负责发出cpu每条指令所需要的信息&#xff0c;寄存器就是保存运…...

【django】APPEND_SLASH 路由末尾的斜杠问题

url路由末尾是否加斜杠的规范 加斜杠&#xff1a;表示是目录不加斜杠&#xff1a; 表示是文件 在django中的setting中&#xff0c;默认APPEND_SLASH True, 即当请求的路由末尾没有加斜杠&#xff0c; 如果尝试加上斜杠后&#xff0c;能在后端路由里匹配到&#xff0c;则会自…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...