一篇学习CSS的笔记
一、简介
Cascading Style Sheets简称CSS,中文翻译为层叠样式表。当HTML被发明出来初期,不同的浏览器提供了各种各样的样式语言给用户控制网页的效果,HTML包含的显示属性并不是很多。但是随着各种使用者对HTML的需求,HTML添加了大量显示功能,以至于变得十分臃肿。随后CSS便诞生了。
CSS是一种用来表现HTML等文件样式的计算机语言。仅有HTML的网页显示效果往往简陋不堪到难以入目。因此CSS的与HTML就好像人类的血肉和骨架一样,没有了CSS的装饰HTML就像是没有了血肉的骨架一样没有了营养。
二、CSS引入方式
在实际编程中,将CSS引入到HTML一般有三种方式:内嵌式、外链式、行内式。
内嵌式:将CSS代码写到HTML中的style标签中。style标签的位置一般为head标签内部,与title同级,在其下方。
<head><title>Document</title><style>/* CSS代码 */</style>
</head>
外链式:CSS代码写到单独的.css文件中,通过原HTML中的link标签与其联系起来。link标签中的rel属性代表HTML与连接文件的关系,而stylesheet属性值代表关系为样式表。其href属性中要填入.css文件的路径。
<head><title>Document</title><link rel="stylesheet" href="地址">
</head>
行内式:CSS代码分散的写到个个标签的style属性中。·这样的CSS代码的作用范围与该标签范围保持一致,不会扩散到其他的标签。一般配合JS使用。
<div style="height: 10; width: 10;">这有一个div标签 </div>
三、基础选择器
要给HTML添加样式,首先就要确定样式的作用范围,具体上就是作用在哪些个标签上。CSS就是通过选择器来确定CSS的作用范围的。基础的选择器有四类:
标签选择器:标签选择器针对某一类标签,统一给该标签添加相应的样式。无论处于哪一级,只要标签与标签选择器选中的标签类型相符合,就会添加相应的样式。标签选择器结构: 标签名{相应CSS}
<style>div{/* 相应CSS代码 */}</style>
类选择器:如果想要针对具体的某个标签,可以使用类选择器。所有的HTML标签都有class属性,class属性的属性值被叫做类名。类名可以有数字、字母、下划线、中划线组成,但不能有中划线或者数字开头。一个标签可以有多个类名,类名之间用空格隔开。类名可以重复,一个类选择器可以选中多个标签。类选择器结构: .类名{相应CSS}
<!DOCTYPE html>
<head><title>Document</title><style>.onlydiv{/* 相应CSS */}</style>
</head>
<body><div class="onlydiv">666</div>
</body>
</html>
id选择器:id选择器也用于选中单独的一个标签。每个HTML标签都有id属性,id属性属性值设定规则与类名相似。当不同的是,id属性值就像人的身份证号一样不可以重复,且一个标签仅能有一个id属性值。也就是说,一个id选择器只能选中一个标签。结构:#id属性值{相应CSS}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#onlydiv{/* 相应CSS */}</style>
</head>
<body><div id="onlydiv"></div>
</body>
</html>
通配符选择器:通配符选择器可以选中页面中的所有标签。结构:*{相应CSS}
*{/* 相应CSS */}
四、文字和文本样式
CSS同样是通过各种属性来实现各种表现的。不过显示上与HTML属性略有不同。一般形式为 属性名:属性值;
height:10px;
1.字体样式
字体大小 font-size:取值为数字+px。单位不能省。一般默认字体大小为16px。
font-size: 10px;
字体粗细 font-weight:取值既可以是关键字,也可以是纯数字。使用关键字取值可以取值normal(正常)或者bold(加粗)。也可以使用数字取值,其中normal对应400,bold对用700。
font-weight: 500;
font-weight: normal;
字体样式 font-style:取值为关键字,normal(默认),itailc(倾斜)。
font-style: italic;
字体类型 font-family:字体大概分为三类:无衬线字体sans-serif(笔画均匀,没有笔锋),衬线字体serif(粗细不均,有笔锋),等宽字体monospace(每个字母或者宽度所占的宽度相同)。Windows默认微软雅黑就属于无衬线字体。取值时使用字体名。一般实际开发中,一般写入多个值,用逗号隔开。这样如果第一种字体无法生效时可以有其他的选择,而不至于无法显示。也可以使用字体大类,这样可以避免系统因某些字体缺失而无法显示。
font-family: PingFang SC, HarmonyOS_Regular, Helvetica Neue, Microsoft YaHei, sans-serif !important;\\B站
font系列连写:font:style weight size family;其中前两个属性可以省略,省略的话设定为默认值(如果先单独设定属性再连写,单独设置的将会被层叠起来)。
font: italic 500 5px Microsoft YaHei;
2.文本样式
文本缩进 text-indent:取值有两种,可以为数字+px,也可以为数字+em。1em等于当前文本的字体大小(font-size)值。如果想要缩进两个字的大小,仅需取值为2em即可。
text-indent: 16px;
text-indent: 2em;
文本水平对齐方式 text-align:值有三种:left(左对齐)、center(居中)、right(右对齐)。也使图片居中,仅需对其父元素使用text-align标签。
text-align: center;
文本修饰 text-decortation:underline(下划线),line-through(删除线),overline(上划线),none(无修饰线,常用于清除a标签默认的下划线)。
text-decoration: underline;
行高 line-height:可以使用像素单位,也可以使用纯数字。使用像素单位代表精确的行高,纯数字代表其font-size字号的倍数。line-height可以与font复合属性连写(font:style weight size/line-height family;),与size使用 “ / ” 隔开。使用复合属性连写需要注意覆盖问题。line-height也可被用来使单行文字垂直居中。只需要让行高的值和weight属性值相等即可。
line-height: 1;
垂直对齐方式vertical-align:
属性值 | 效果 |
---|---|
baseline | 基线对齐(默认) |
top | 顶部对齐 |
middle | 中线对齐 |
bottom | 底线对其 |
3.颜色常见取值方法
在一些以颜色为属性值的属性使用中,常常需要对颜色有准确的选择。这时候就需要使用相对更加精确的颜色表示方法。
关键字表示:使用预定义的颜色名,一般为对应的英文名,如 red,green,blue,yellow等。
background-color: blue;
rgb表示法:使用红绿蓝三原色表示, 每项的取值范围为0~255。rgb(0,0,0),rgb(255,57,34)等。
background-color: rgb(22, 33, 44);
rgba表示法:使用红绿蓝三原色+透明度,透明度的取值范围为0~1。rgba(23,56,89,0.7)
background-color: rgba(11, 22, 33, 0.5);
十六进制表示法(最常使用):使用十六进制数字表示。以#开头,每两位为一组,分别表示红绿蓝三种颜色。如果三组中的两位数都各自相同,那么每组两个就可以简写为一个。如“#ff0044”=“#f04”,“#009988”=“#098”。
background-color: #333;
五、选择器进阶
在相对复杂的应用场景中,基础选择器并不能够满足开发者的需要。因此利用标签之间的关系和用户鼠标的位置关系更为精确的确定css标签的作用范围。
1.后代选择器
根据HTML标签之间的嵌套关系,来选择父元素后代中符合条件的元素。
语法:选择器1 选择器2{css}
选择器之间用空格隔开,表示在选择器选中的范围内选中满足选择器2的范围。
2.子代选择器
选中某元素的子代元素。即选中最近的子极。
父选择器>子选择器{css}
3.并集选择器
选中多种标签设置设置相同样式。
选择器1,选择器2{css}
4.交集选择器
选中同时满足多个条件的元素。
标签.类名{css}
5.hover伪类选择器
伪类指定是元素的状态,选中元素在符合的状态下的样式来进行设置。
鼠标悬停状态 选择器:hover {css}
①链接伪类
针对链接的伪类有四种:
选择器 | 选中状态 |
---|---|
: link | 访问前 |
: visited | 访问后 |
: hover | 鼠标悬停时 |
: active | 点击时 |
在对这四种状态的样式进行设置的时候,需要按照固定顺序。即访问前>访问后>鼠标悬停时>点击时。
②结构伪类选择器
根据元素的结构关系来查找元素。用于多个相同标签同级排列时选中其中某个。
选择器 | 选中 |
---|---|
E: first-child | 第一个E元素 |
E: last-child | 最后一个E元素 |
E: nth-child(N) | 第N个E元素 |
ul li:first-child{background: url(路径) no-repeat fixed 0 0/0 0;}
③伪元素选择器
创建虚拟元素,常用来摆放装饰性内容。 伪元素选择器允许在选中元素的特定部分保持不同于元素本身的样式,就像在元素中嵌套了元素一样,但实际上还是在一个元素上。
伪元素选择器 | 说明 |
---|---|
E : : before | 在E元素里面前面部分添加一个伪元素 |
E : : after | 在E元素里面末尾部分添加一个伪元素 |
伪元素选择器必须设置content属性,用来设置伪元素的内容,如果没用内容,使用引号留空即可。 伪元素的默认显示模式是行内显示模式。权重和标签选择器相同。
div::after{content: "你好";}
6.Emmet语法
Emmet是一种代码的简写方式。帮助程序员快速书写代码。
Emmet | 结果 |
---|---|
标签名.类名 例:div.box | <div class="box"></div> |
标签名#id名 例: div#9527 | <div id="9527"></div> |
标签1+标签2 例:div+span | <div></div> <span></span> |
父标签>子标签 例:div>p | <div> <p></p> </div> |
标签名*个数 例:div*2 | <div></div> <div></div> |
标签名{文本} 例:div{我爱上班} | <div>我爱上班</div> |
对于CSS而言,属性可以简写,属性数值可以直接与属性连接,属性之间用+连接。
//w100+h100width: 100px;height: 100px;
六、背景属性元素
1.背景图片
background-image: url(图片路径);
背景图片默认平铺,就是如果图片大小不足以填满背景就使用多张图片拼接填充。可以使用background-repeat属性来控制背景图片的平铺方式。
属性值 | 平铺方式 |
---|---|
no-repeat | 不平铺 |
repeat | 平铺 |
repeat-x | 水平方向平铺 |
repeat-y | 竖直方向平铺 |
background-repeat: no-repeat;
背景图片位置可以通过background-position来调整
background-position: center -100px;
第一个值为x轴位置,第二个值为y轴位置。值可以是方位名词也可以是对于左上角的距离。
方位名词 | 位置 |
---|---|
left | 右边 |
right | 左边 |
center | 中间 |
top | 顶部 |
bottom | 底部 |
2.背景图缩放
background-size: contain;
background-size: 100px 100px;
background-size: 100% 100%;
background-size属性值可以是关键字,可以是x-y方向像素大小,也可以是x-y方向的背景大小的百分比。
关键字 | 作用 |
---|---|
contain | 等比例缩放图片直到图片完全放入背景 |
cover | 等比例缩放图片直到背景被图片完全覆盖 |
3.背景固定
固定住的背景图片不会随着鼠标的滚动而向上移动
background-attachment: fixed;
关键字 | 效果 |
---|---|
scroll | 滚动 默认 |
fixed | 固定 |
4.background复合写法
包括背景色、背景路径、背景平铺方式、背景位置、背景缩放、背景固定。
background: url(路径) no-repeat fixed 0 0/0 0;
背景复合写法中的属性之间不分顺序,但是背景位置与背景缩放要用\连接。也就是说在复合写法中设置背景缩放就一定要设置背景位置,且在其前用\连接。
七、显式模式
显示模式就是标签的显示方式。显示模式可以简单分为三类:
显示模式 | 特点 |
---|---|
行内显示 span | 一行可以放置多个,宽度属性不生效,宽度由内容撑开 |
块级显示 div | 独占一行,宽度默认为父级的100%,添加宽度属性生效 |
行内块显示 img | 一行可以放多个,宽度属性生效,宽度也可以由内容撑开 |
显示模式转换
display: inline;
行内 | inline |
块 | block |
行内块 | inline-block |
八、css三大特性
1.层叠性
相同的属性,后面的css属性覆盖前面的css属性。不同的属性都会生效。
2.优先级
优先级也叫权重。当多个选择器对同一标签属性设置时,通过比较不同选择器之间的权重来确定哪种选择器的属性会生效。
对于单个选择器来讲,选择器优先级高的样式生效。
通配符选择器<标签选择器<类选择器<id选择器<行内样式<!important。
选择器选中的范围越大,选择器的优先级越低。
对于选择器叠加作用时,通过比较权重来确定那种选择器属性生效。规则就是从权重最高位开始,比较同一级权重的选择器个数,如果个数相同,就向后比较下一级权重。
选择器 | 继承/通配符 | 标签选择器 | 类选择器 | id选择器 | 行内样式 | !important |
---|---|---|---|---|---|---|
权重 | 0 | 1 | 10 | 100 | 1000 | 无穷 |
3. 继承
子代会继承父代的样式。
九、 盒子模型
盒子模型是CSS中的一种思维模型。CSS假定所有的HTML文档元素都生成了一个描述该元素在HTML文档布局中所占空间的矩形元素框,将其看作是一个盒子。
盒子由内容区域、内边框、边框线、外边框组成。
width、height等属性是对内容生效的,盒子大小=内容大小+(内边距大小+边框线粗数+外边距大小)*2。也就是说盒子大小是外增的。如果想要自动固定盒子大小可以通过box-sizing属性:
box-sizing: border-box;\\內减
內减时width、height属性对应盒子整体大小。
1.边框线
边框线通过border属性设置边框线粗细、线条样式、线条颜色,给值不分先后顺序。
属性值 | 线条样式 |
---|---|
solid | 实线 |
dashed | 虚线 |
dotted | 点线 |
border: 1px solid #000;\\粗细、线条样式 、线条颜色
如果细分,边框实际上由四条边组成。CSS可以具体的对单边进行样式设置。四条边分别对应四个属性:border- 方位名词。取值与border属性相同。
border-top: 1px solid #000;
border-right: 1px solid #000;
border-bottom: 1px solid #000;
border-left: 1px solid #000;
2.内边距
内边距通过padding属性和padding-方位名词来设置内边距宽度。
padding: 10px;
padding-top: 10px;
padding-bottom: 10px;
padding-right: 10px;
padding-left: 10px;
除了上面这种单值写法,padding属性也可以多值书写。
padding: 10px 11px;\\上下10px 左右11px
padding: 10px 11px 12px;\\上10px 左右11px 下12px
padding: 10px 11px 12px 13px;\\上10px 右11px 下12px 左13px
3.外边距
外边距通过margin属性来设置,使用方法与padding属性相同。
margin: 10px 11px 12px 13px;
margin: 10px 11px 12px;
margin: 10px 11px;
margin: 10px;
margin-top: 10px;
margin-bottom: 10px;
margin-left: 10px;
margin-right: 10px;
margin属性也常被用于标签的水平居中。
margin-right: auto;
margin-left: auto;
4.清除默认样式
很多标签都有其默认的内外边距,如果忽视的话在开发中很容易造成结果与设计不符。因此在开发时一定要确保默认样式的清除。
*{margin: 0;padding: 0;box-sizing: border-box;}
在开发中,列表前面的
一般也是不要的。
li{list-style: none;}
5.元素溢出
盒子中的元素大小大于盒子本身大小的话,多余的部分会溢出盒子显示。
可以通过overflow属性设置溢出的样式。
属性值 | 效果 |
---|---|
hidden | 隐藏溢出的部分 |
scroll | 溢出的部分可以滚动滚动条查看,无论是否溢出都显示滚动条 |
auto | 溢出的部分滚动查看,溢出时才显示滚动条 |
div{width: 100px;height: 100px;overflow: hidden;}
6. 合并现象
垂直排列的兄弟元素,上下的margin会合并,只有值较大的margin会生效。
7.坍塌问题
父子级的标签,子级添加上外边距会产生塌陷问题,父子级一起向下移动。
解决方法:
- 取消子级margin,父级设置padding代替。
- 父级设置overflow: hidden
- 父级设置border-top
8.圆角边框
使用border-radius属性可以设置元素外边框为圆角。属性值可以是百分比,也可以是像素。
border-radius: 50px;
border-radius: 50%;\\标准圆
多值写法
border-radius: 10px 20px 30px 40px;\\左上10 右上20 右下30 左下40
border-radius: 10px 20px 30px;\\左上10 右上左下20 右下30
border-radius: 10px 20px;\\左上右下10 右上左下20
border-radius: 10px;\\10px
9.盒子阴影
使用box-shadow属性可以设置阴影效果。
box-shadow: x轴偏移量 y轴偏移量 模糊半径 扩散半径 颜色 内外阴影;
box-shadow: 10px 10px 3px 1px rgba(0,0,0,.4);
x轴偏移量和y轴偏移量必须给值,其他可以省略。内外阴影默认外阴影,内阴影给值inset。
十、浮动
1.标准流
标准流也叫文档流,指的是标签在页面中默认的排布规则。标准流是一种规则,例如行内元素就是一行放多个,块元素就是独占一行。
2.浮动
标准流是一种规则,但并不意味着必须遵循。块级标签独占一行,我们却有方法让其水平排列。浮动就是一种让块元素水平排列的方法。浮动的本质作用实际上是用于图文混排。
float: left;\\左浮动
————————————————
float: right;\\右浮动
- 浮动可以让盒子脱离标准流,不占用标准流的位置。就好像漂浮到了盒子上方,它们下面依然可以放置标准流,但是重叠的部分会被浮动的标签遮掩。
- 脱离标准流后自动具备行内块的特点,即一行可以放多个,宽高都生效。
- 当相邻两浮动高不同时,顶部对齐。
- 左浮动元素与盒子左侧顶部对齐,右浮动元素与盒子右侧顶部对齐。
3.清除浮动
浮动元素并不会占用标准流的位置,当然也就不能撑开父级盒子的高度(没有设置父级高度)。如果父级盒子内元素全部浮动,那么父级盒子后面的盒子布局就会混乱。因此常常需要解决浮动带来的这种问题。清除浮动使用clear属性。
额外标签法
在父元素内容最后添加一个块级元素,设置CSS清除浮动。
<html>
<head><title>Document</title><style>son1 son2{width: 100px;height: 100px;float: left;}clearbox{clear: both;}</style>
</head>
<body><div class="father"><div class="son1"></div><div class="son2"></div><div class="clearbox"></div></div>
</body>
</html>
单伪元素法
在父元素未添加伪元素清除浮动。
<html><head><title>Document</title><style>.box::after{content: "";display: block;clear: both;}</style>
</head>
<body><div class="box"><div class="firstcontent"></div><div class="secondcontent"></div></div>
</body>
</html>
双伪元素法
在父元素首未添加伪元素,并在尾部伪元素清除浮动。
<html><head><title>Document</title><style>.box::before,.box::after{content: "";display: table;}.box::after{clear: both;}</style>
</head>
<body><div class="box"><div class="firstcontent"></div><div class="secondcontent"></div></div>
</body>
</html>
十一、Flex
Flex布局也叫做弹性布局,是浏览器倡导的布局模型,适合结构化布局,有着强大的空间分布和对其能力。而且Flex布局没有浮动中的脱标现象,更加的简单灵活。
Flex布局通过父元素控制边界,父元素中的子级元素全部为Flex布局内容,不再区分行内或块显示模式,自动的挤压或拉伸。
在Flex布局下,
- 表明边界的父级叫做弹性容器(flex container)
- 被父级包裹的各个子级叫做弹性盒子(flex item)
- 默认水平方向为主轴(main axis)
- 默认垂直方向为交叉轴(corss axis)
- 主轴左侧默认为主轴起点(main start),右侧为终点(main end)。交叉轴顶部默认为轴起点(corss start),底部默认为轴终点(cross end)。
1. 属性
①display: flex
将父级弹性容器显示模式设定为flex,表明该范围为Flex应用区域。设置后子级自动挤压或拉伸。
②justify-content
主轴对齐方式
属性值 | 效果 |
---|---|
flex-start | 默认值,弹性盒子从轴起点开始依次排列 |
flex-end | 弹性盒子从终点向起点排列 |
center | 弹性盒子沿主轴居中排列 |
space-between | 弹性盒子沿主轴均匀排列,多余间距均分在弹性盒子之间 |
space-around | 弹性盒子沿主轴均匀排列,多余间距均分在弹性盒子两侧 |
space-evenly | 弹性盒子沿主轴均匀排列,弹性盒子与容器和弹性盒子之间的间距相等 |
③align-items
侧轴对齐方式
属性值 | 效果 |
---|---|
stretch | 弹性盒子沿侧轴被拉伸直到铺满容器 |
center | 弹性盒子沿侧轴居中排列 |
flex-start | 弹性盒子从起点开始依次排列 |
flex-end | 弹性盒子从终点开始依次排列 |
④flex-wrap
弹性盒子换行
在Flex布局中,弹性盒子默认都在一行上排布,如果子级的宽度和超过了父级盒子,那么会自动均匀挤压到父级可以容纳的程度。使用flex-wrap属性可以让超出部分的弹性盒子换行,从而避免挤压,达到想要的效果。
属性值 | 效果 |
---|---|
wrap | 换行 |
nowrap | 默认,不换行 |
⑤align-content
多行侧轴对齐,使用要求父级盒子有具体的高度。
属性值 | 效果 |
---|---|
flex-start | 默认值,弹性盒子从轴起点开始依次排列 |
flex-end | 弹性盒子从终点向起点排列 |
center | 弹性盒子沿侧轴居中排列 |
space-between | 弹性盒子沿侧轴均匀排列,多余间距均分在弹性盒子之间 |
space-around | 弹性盒子沿侧轴均匀排列,多余间距均分在弹性盒子两侧 |
space-evenly | 弹性盒子沿侧轴均匀排列,弹性盒子与容器和弹性盒子之间的间距相等 |
⑥align-self
对某个具体的弹性盒子设置侧轴对齐样式,作用于哪一个弹性盒子,就写于哪个盒子的CSS样式中。
属性值 | 效果 |
---|---|
flex-start | 默认值,弹性盒子从轴起点开始依次排列 |
flex-end | 弹性盒子从终点向起点排列 |
center | 弹性盒子沿侧轴居中排列 |
⑦flex-direction
修改主轴方向。
属性值 | 效果 |
---|---|
row | 默认,水平从左到右 |
column | 垂直,从上到下 |
row-reverse | 水平,从右到左 |
column-reverse | 垂直,从下到上 |
⑧flex
弹性伸缩比。作用于每个弹性盒子,属性值为整数。CSS可以通过flex的属性值将弹性容器分为flex属性值相加的份数,每个弹性盒子占的份数就是其对应的flex值。
十二、定位
定位是一种灵活改变盒子在网页中位置的方式。
定位可以大概分为两个步骤:
- 确定定位模式,是需要相对定位还是绝对定位。
- 设定边偏移,将盒子显示到需要的位置。
边偏移通过left、right、top、bottom属性来确定方位。
1.相对定位
position: relative;
相对定位的特点是不会脱离标准流,依旧占用原本盒子的位置。而且显示模式特点不变,块级元素相对定位依旧是块级,行内依旧是行内。相对于盒子原来的位置设定边偏移。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box .first{position: relative;left: 200px;top: 200px;color: blue;height: 200px;width: 200px;background-color: red;}.box .second{color: red;height: 200px;width: 200px;background-color: blue;}</style>
</head>
<body><div class="box"><div class="first">我要红色</div><div class="second">我要蓝色</div></div>
</body>
</html>
2.绝对定位
position: absolute;
绝对定位的特点是脱离标准流,不会占用原本的位置,显示模式体现为行内块。如果和盒子有继承关系的前辈们中有设定定位的,那么就依据有最近继承关系的前辈的位置来设定边偏移,如果前辈中没有,那么就依据浏览器的可视区设定边偏移。
3.子绝父相
在绝对定位的父级设置相对定位,这样就可以让绝对定位盒子相对于父级相对定位盒子设定位置,对绝对定位盒子进行有效的约束。
4.固定定位
position:fixed;
固定定位的特点是脱离标准流,不占用原来的位置,具有行内块的显示模式,依据浏览器窗口设定边偏移。固定定位的元素在网页滚动时不会改变位置。
5.粘性定位
position: sticky;
top: 0;
粘性定位必须与top、bottom、right、left属性配合使用,否则无效果。每当粘性定位元素随着浏览器的滑动到达边偏移设定的位置后,就会固定到该位位置。粘性定位并不会脱离标准流,依然占据原有位置。
6.层级
多个元素聚集在同一位置时会发生遮盖,这时层级高的显示,低的被遮盖。默认都有定位的情况下,后书写的覆盖先书写的。但是我们可以通过堆叠层级属性z-index设定定位元素的层级,改变定位元素的显示顺序。属性值为整数,数值越大,层级越高。
z-index: 2;
十三、精灵技术
CSS精灵(CSS Sprites),是一种网页图片的处理方式。就是把网页中一些固定的背景图片拼接到一张图片上,使用background-position属性精准定位出背景图片的位置。例:
精灵图可以减少服务器的请求次数,减轻服务器的压力。
十四、字体图标
字体图标是一种看着像图标的字体。网页中有一些简单的小图标使用字体图标来显示,可以使得网页更加的灵活。因为字体图标本质上还是一种字体,可以通过相关属性设置大小颜色等样式。
阿里巴巴字体库网址:iconfont-阿里巴巴矢量图标库
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./font_4934815_m04pwjy1n6/iconfont.css"><style></style>
</head>
<body><span class="iconfont icon-anquanbaozhang"></span>
</body>
</html>
十五、过渡 transition
使用transition属性可以为一个元素在不同状态之间切换的时候添加过渡效果。
transition: all 0.3s;
//第一个元素值为过渡效果的属性,一个为过渡效果的时间
//如果设置多个属性过渡效果,可以使用逗号隔开,如果全部属性都设置过渡效果可以使用all
transition: weight 0.3s,height 0.3s;
十六、透明度 opacity
设置整个元素的透明度(包含背景和内容)。属性值在0~1之间。0为完全透明,1为完全不透明。
opacity: 0.3;
十七、光标类型 cursor
鼠标悬停在元素上时的指针显示样式。
属性值 | 效果 |
---|---|
default | 箭头(默认) |
pointer | 小手,提示可点击 |
text | 工字形,提示可以选择文字 |
move | 十字光标,提示可以移动 |
相关文章:

一篇学习CSS的笔记
一、简介 Cascading Style Sheets简称CSS,中文翻译为层叠样式表。当HTML被发明出来初期,不同的浏览器提供了各种各样的样式语言给用户控制网页的效果,HTML包含的显示属性并不是很多。但是随着各种使用者对HTML的需求,HTML添加了大…...
Rust 学习笔记:自定义构建和发布配置
Rust 学习笔记:自定义构建和发布配置 Rust 学习笔记:自定义构建和发布配置发布配置文件自定义 profile 的选项 Rust 学习笔记:自定义构建和发布配置 发布配置文件 在 Rust 中,发布配置文件是预定义的和可定制的概要文件…...

StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
导读: 本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术,详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划,为您提供全面的技术解…...

笔试笔记(运维)
(数据库,SQL) limit1 随机返回其中一个聚合函数不可以嵌套使用 【^】这个里面的数据任何形式组合都没有 sql常用语句顺序:from-->where-->group by-->having-->select-->order by-->limit 只要其中一个表存在匹…...
JVM——云原生时代JVM的演进之路
引入 在风云变幻的技术世界里,JVM(Java Virtual Machine)作为 Java 语言的基石,长久以来承载着无数开发者构建软件系统的梦想。从 20 世纪 90 年代 Java 的诞生,到如今云原生时代的大幕拉开,JVM 经历了岁月…...

使用langchain实现五种分块策略:语义分块、父文档分块、递归分块、特殊格式、固定长度分块
文章目录 分块策略详解1. 固定长度拆分(简单粗暴)2. 递归字符拆分(智能切割)3. 特殊格式拆分(定向打击)Markdown分块 4. 语义分割(更智能切割)基于Embedding的语义分块基于模型的端到…...

【项目记录】登录认证(下)
1 过滤器 Filter 刚才通过浏览器的开发者工具,可以看到在后续的请求当中,都会在请求头中携带JWT令牌到服务端,而服务端需要统一拦截所有的请求,从而判断是否携带的有合法的JWT令牌。 那怎么样来统一拦截到所有的请求校验令牌的有…...
Debian上安装PostgreSQL的故障和排除
命令如下: apt install postgresql#可能是apt信息错误,报错 E: Failed to fetch http://deb.debian.org/debian/pool/main/p/postgresql-15/postgresql-client-15_15.12-0%2bdeb12u2_amd64.deb 404 Not Found [IP: 146.75.46.132 80] E: Failed to f…...

linux文件管理(补充)
1、查看文件命令 1.1 cat 用于连接文件并打印到标准输出设备上,它的主要作用是用于查看和连接文件。 用法: cat 参数 文件名 参数: -n:显示行号,会在输出的每一行前加上行号。 -b:显示行号,…...

Python训练营---Day42
DAY 42 Grad-CAM与Hook函数 知识点回顾 回调函数lambda函数hook函数的模块钩子和张量钩子Grad-CAM的示例 作业:理解下今天的代码即可 1、回调函数 回调函数(Callback Function)是一种特殊的函数,它作为参数传递给另一个函数&#…...

基于空天地一体化网络的通信系统matlab性能分析
目录 1.引言 2.算法仿真效果演示 3.数据集格式或算法参数简介 4.MATLAB核心程序 5.算法涉及理论知识概要 5.1 QPSK调制原理 5.2 空天地一体化网络信道模型 5.3 空天地一体化网络信道特性 6.参考文献 7.完整算法代码文件获得 1.引言 空天地一体化网络是一种将卫星通信…...

c++ opencv 形态学操作腐蚀和膨胀
https://www.jb51.net/article/247894.htm(上图图片来自这个博客) https://codec.wang/docs/opencv/basic/erode-and-dilate(上图图片参考博客) cv::Mat kernel cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3)); cv::erode(src, dst, kern…...
Axure组件即拖即用:横向拖动菜单(支持左右拖动选中交互)
亲爱的小伙伴,在您浏览之前,请关注一下,在此深表感谢!如有帮助请订阅专栏!免费哦! Axure横向菜单拖不动?一拖就乱?你缺的是这个"防手残"组件! 💢…...
Hadoop MapReduce:大数据处理利器
Hadoop 的 MapReduce 是一种用于处理大规模数据集的分布式计算框架,基于“分而治之”思想设计。以下从核心概念、工作流程、代码结构、优缺点和应用场景等方面详细讲解: 一、MapReduce 核心概念 核心思想: Map࿰…...
RabbitMQ-Go 性能分析
更多个人笔记见: github个人笔记仓库 gitee 个人笔记仓库 个人学习,学习过程中还会不断补充~ (后续会更新在github和 gitee上) 文章目录 对比功能没有rabbitMQ有rabbitMQwrk 测试分析 链接: 项目连接,完整…...

【c++】【数据结构】红黑树
目录 红黑树的定义红黑树的部分模拟实现颜色的向上更新旋转算法单旋算法双旋算法 红黑树与AVL树的对比 红黑树的定义 红黑树是一种自平衡的二叉搜索树,通过特定的规则维持树的平衡。红黑树在每个结点上都增加一个存储位表示结点的颜色,结点的颜色可以是…...

基于SpringBoot+Redis实现RabbitMQ幂等性设计,解决MQ重复消费问题
解决MQ重复消费问题 一、实现方案 本方案参考 「RabbitMQ消息可靠性深度解析|从零构建高可靠消息系统的实战指南」,向开源致敬! 1、业务层幂等处理: 每个消息携带一个全局唯一ID,在业务处理过程中,首先检查…...
React从基础入门到高级实战:React 生态与工具 - React 单元测试
React 单元测试 引言 在现代软件开发中,单元测试是确保代码质量和可靠性的关键环节。对于React开发者而言,单元测试不仅能帮助捕获潜在的错误,还能提升代码的可维护性和团队协作效率。随着React应用的复杂性不断增加,掌握单元测…...

使用lighttpd和开发板进行交互
文章目录 🧠 一、Lighttpd 与开发板的交互原理1. 什么是 Lighttpd?2. 与开发板交互的方式? 🧾 二、lighttpd.conf 配置文件讲解⚠️ 注意事项: 📁 三、目录结构说明💡 四、使用 C 编写 CGI 脚本…...

DRF的使用
1. DRF概述 DRF即django rest framework,是一个基于Django的Web API框架,专门用于构建RESTful API接口。DRF的核心特点包括: 序列化:通过序列化工具,DRF能够轻松地将Django模型转换为JSON格式,也可以将JS…...

2024年09月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
C/C++编程(1~8级)全部真题・点这里 第1题:有几个PAT 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位,第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位,第 4 位(A),第 6 位(T)。 现给定字符串,问一共可以形成多少个 PAT? 时间限制:1000 内存限制:26214…...

免费且好用的PDF水印添加工具
软件介绍 琥珀扫描.zip下载链接:https://pan.quark.cn/s/3a8f432b29aa 今天要给大家推荐一款超实用的PDF添加水印工具,它能够满足用户给PDF文件添加水印的需求,而且完全免费。 这款PDF添加水印的软件有着简洁的界面,操作简便&a…...

mqtt协议连接阿里云平台
首先现在的阿里云物联网平台已经不在新购了,如下图所示: 解决办法:在咸鱼上租用一个账号,先用起来。 搭建阿里云平台,参考博客: (一)MQTT连接阿里云物联网平台(小白向&…...

一文详谈Linux中的时间管理和定时器编程
(目录) 先说一些在计算机中需要用到时间的地方:系统日志log、OS调度(时间片、定时器)等等~~ 时间的计量 计时的方式发展:日晷、沙漏 -> 机械钟 -> 石英振荡器、晶振 -> 铯原子钟 -> 氢原子钟 计算机中的计时方式&…...
Ubuntu 安装 Miniconda 及配置国内镜像源完整指南
目录 Miniconda 安装Conda 镜像源配置Pip 镜像源配置验证配置基本使用常见问题 1. Miniconda 安装 1.1 下载安装脚本 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh1.2 执行安装 bash Miniconda3-latest-Linux-x86_64.sh按回车查看许可协议…...

性能优化 - 理论篇:常见指标及切入点
文章目录 引言一、 Java 性能优化的核心思路二、为什么要度量?三、常用性能衡量指标详解3.1 吞吐量与响应速度3.2 响应时间的具体度量:平均响应时间与百分位数3.3 并发量3.4 秒开率(页面秒开)3.5 正确性(功能可用性&am…...
青少年编程与数学 02-020 C#程序设计基础 08课题、字符和字符串
青少年编程与数学 02-020 C#程序设计基础 08课题、字符和字符串 一、字符和字符集1. 字符(Character)定义特点示例 2. 字符集(Character Set)定义特点常见字符集 小结 二、char数据类型1. 定义2. 特点3. 声明和初始化4. 转义字符示…...

【论文阅读 | PR 2024 |ICAFusion:迭代交叉注意力引导的多光谱目标检测特征融合】
论文阅读 | PR 2024 |ICAFusion:迭代交叉注意力引导的多光谱目标检测特征融合 1.摘要&&引言2.方法2.1 架构2.2 双模态特征融合(DMFF)2.2.1 跨模态特征增强(CFE)2.2.2 空间特征压缩(SFS)…...
Spring Security加密模块深度解析
Spring Security加密模块概述 Spring Security Crypto模块(简称SSCM)是Spring Security框架中专门处理密码学相关操作的组件。由于Java语言本身并未提供开箱即用的加密/解密功能及密钥生成能力,开发者在实现这些功能时往往需要引入额外依赖库。SSCM通过提供内置解决方案,有…...

华为OD机试真题——模拟消息队列(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 2025华为OD真题目录+全流程解析/备考攻略/经验分享 华为OD机试真题《模拟消息队列》: 目录 题…...