【前端学习】D3:CSS进阶

news2024/11/17 12:50:10

文章目录

  • 前言
  • 系列文章目录
  • 1 CSS的三大特性
    • 1.1 层叠性
    • 1.2 继承性
    • 1.3 优先级(*)
  • 2 盒子模型
    • 2.1 看透网页布局的本质
    • 2.2 盒子模型(Box Model)的组成
    • 2.3 边框(border)
      • 2.3.1 普通边框
      • 2.3.2 表格的细线边框
      • 2.3.3 边框影响盒子的实际大小
    • 2.4 内边距(padding)
    • 2.5 外边距(margin)
      • 2.5.1 普通外边距
      • 2.5.2 外边距典型应用
      • 2.5.3 外边距合并
      • 2.5.4 清除外边距
  • 3 圆角边框(*)
  • 4 盒子阴影(*)
  • 5 文字阴影
  • 6 浮动(float)
    • 6.1 传统网页布局的三种方式
    • 6.2 标准流(普通流/文档流)
    • 6.3 为什么需要浮动?
    • 6.4 什么是浮动
    • 6.5 浮动的特性(**)
    • 6.6 浮动元素搭配标准流的父元素
    • 6.7 常见的网页布局
      • 6.7.1 常见的三种网页布局
      • 6.7.2 浮动布局的注意事项(*)
    • 6.8 清除浮动
      • 6.8.1 为什么要清除浮动
      • 6.8.2 清除浮动的本质
      • 6.8.3 清除浮动的方法
  • 总结


前言

这篇文章为我跟随pink老师重新系统学习前端时做的一些笔记。

系列文章目录

【前端学习】D1:HTML简介与HTML标签
【前端学习】D2-1:CSS入门
【前端学习】D2-2:CSS基础
【前端学习】D3:CSS进阶
【前端学习】D4:CSS提高


1 CSS的三大特性

1.1 层叠性

相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要解决样式冲突的问题。
层叠性原则:

  • 样式冲突,执行最下面的样式。
  • 样式不冲突,不会层叠。

1.2 继承性

CSS中的继承:子标签会继承父标签的某些样式,如文本颜色和字号。

  • 恰当地使用继承可以简化代码,降低CSS样式的复杂性。
  • 子元素可以继承父元素的样式(text-,font-,line-这些元素开头的可以继承,以及color属性)。

行高的继承:

<!DOCTYPE html>
<html lang="en">
	<head>
	    <meta charset="UTF-8">
	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	    <meta http-equiv="X-UA-Compatible" content="ie=edge">
	    <title>行高的继承</title>
	    <style>
	        body {
	            color: pink;
	            /* font: 12px/24px 'Microsoft YaHei'; */
	            font: 12px/1.5 'Microsoft YaHei';
	        }
	        div {
	            /* 子元素继承了父元素body的行高1.5 */
	            /* 行高是当前元素文字大小font-size的1.5倍,即div的行高为21px*/
	            font-size: 14px; 
	        }
	        p {
	            /* 当前的行高为1.5*16=24px*/
	            font-size: 16px;
	        }
	        /* li没有指定文字大小,则继承父元素的文字大小12px,当前行高为12px*1.5-18px */
	    </style>
	</head>
	<body>
	    <div>测试文字</div>
	    <p>测试文字</p>
	    <ul>
	        <li>测试文字。没有指定文字大小</li>
	    </ul>
	</body>
</html>
  • 行高可以跟单位也可以不跟单位
  • 如果子元素没有设置行高,则会继承父元素的行高1.5,此时子元素的行高是当前子元素的文字大小*1.5
  • body行高1.5,这样写法的最大优势就是里面子元素可以根据自己文字大小自动调整行高
  • 块级元素独占一行,块元素宽度默认是容器(父元素)的100%。

1.3 优先级(*)

当同一个元素指定多个选择器,就会有优先级的产生。

  • 选择器相同,则执行层叠性。
  • 选择器不同,则根据选择器权重执行。

选择器权重:

选择器选择器权重
继承 或者 *0,0,0,0
元素选择器0,0,0,1
类选择器,伪类选择器0,0,1,0
id选择器0,1,0,0
行内样式 style=“”1,0,0,0
!important 重要的∞ 无穷大
  • 权重是由4组数字组成,但是不会有进位,可以理解为类选择器永远大于元素选择器,id选择器永远大于类选择器,以此类推。
  • 等级判断从左向右,如果某一位数值相同,则判断下一位数值。
  • 继承的权重是0。如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0。
  • 案例一:
    <!DOCTYPE html>
    <html lang="en">
    	<head>
    	    <meta charset="UTF-8">
    	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    	    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    	    <title>css权重注意点</title>
    	    <style>
    	        /* 父亲的权重是100 */
    	        #father {
    	            color: red!important;
    	        }
    	        /* p继承的权重为0,所以p标签的文字为粉色,而不为父元素的红色 */
    	        p {
    	            color: pink;
    	        }
    	        body {
    	            color: red;
    	        }
    	        /* 浏览器默认指定了a链接的样式:蓝色文字且有下划线,所以a链接不能直接继承body的color */
    	        a {
    	            color: green;
    	        }
    	    </style>
    	</head>
    	<body>
    	    <div id="father">
    	        <p>测试文字</p>
    	    </div>
    	    <a href="#">a标签测试文字</a>
    	</body>
    </html>
    

权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重(没有进位)。

/* .nav li的权重是0,0,0,1+0,0,1,0=0,0,1,1 */
.nav li {
	color: pink;
}
/* ul li的权重是0,0,0,1+0,0,0,1=0,0,0,2 */
ul li {
	color: green;
}
/* li的权重是0,0,0,1 */
li {
	color: red;
}
<ul class="nav">
	<li>测试文字</li>
</ul>

2 盒子模型

页面布局的三大核心:盒子模型,浮动和定位。

2.1 看透网页布局的本质

网页布局过程:

  1. 先准备好相关的网页元素,网页元素基本都是盒子Box。
  2. 利用CSS设置好盒子样式,然后摆放到相应位置。
  3. 往盒子里面装内容。

网页布局的本质:利用CSS摆盒子。

2.2 盒子模型(Box Model)的组成

所谓盒子模型,就是把HTML页面中的额布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。
CSS盒子模型本质是一个盒子,封装周围的HTML元素,包括边框、外边距、内边距和实际内容。

  • border边框
  • content内容
  • padding内边距
  • margin外边距

2.3 边框(border)

2.3.1 普通边框

border可以设置元素的边框。边框有三部分组成:边框宽度(粗细),边框样式,边框颜色。边框属性的简写没有先后顺序。

border: border-width | | border-style | | border-color;
border-top: 5px solid red;
border-bottom: 1px dashed green;
属性作用
border-width定义边框粗细,单位是px
border-style边框的样式
border-color边框颜色

案例:

/* 请给一个 200*200 的盒子,设置上边框为红色,其余边框为蓝色 */
div {
	width: 200px;
    height: 200px;
    /* border-top: 1px solid red;
    border-bottom: 1px solid blue;
    border-left: 1px solid blue;
    border-right: 1px solid blue; */
    /* border包含四条边 */
    border: 1px solid blue;
    /* 利用层叠性*/
    border-top: 1px solid red;
}

2.3.2 表格的细线边框

border-collapse属性控制浏览器绘制表格中相邻单元格的边框。

border-collapse: collapse; /* 表示相邻的单元格的边框合并在一起 */

2.3.3 边框影响盒子的实际大小

边框会额外增加盒子的实际大小。解决方案:

  1. 测量盒子大小的时候,不量边框。
  2. 测量盒子大小时包含边框,则需要width / height减去边框宽度。

2.4 内边距(padding)

padding属性用于设置内边距,即边框与内容之间的距离。

属性作用
padding-top上内边距
padding-right右内边距
padding-bottom下内边距
padding-left左内边距

padding属性可以有一到四个值(实际开发中都会遇到):

值的个数表达意思
padding: 5px1个值,代表上下左右都有5像素内边距。
padding: 5px 10px2个值,代表上下内边距为5像素,左右内边距为10像素。
padding: 5px 10px 20px3个值,上下内边距为5像素,左内边距为10像素,右内边距为20像素。
padding: 5px 10px 20px 30px4个值,上内边距为5像素,右内边距为10像素,下内边距为20像素,左内边距为30像素。顺时针
  1. 内容和边框有了距离,添加了内边距。
  2. padding影响盒子的实际大小。

也就是说,如果盒子已经有了宽度和高度此时再指定内边框,会撑大盒子。
解决方案:如果保证盒子跟效果图大小保持一致,则让width / height减去内边距大小。
如果盒子本身没有指定width / height属性,则此时padding不会撑开盒子大小。

2.5 外边距(margin)

2.5.1 普通外边距

margin属性用于设置外边距,即控制盒子和盒子之间的距离。

属性作用
margin-top上外边距
margin-right右外边距
margin-bottom下外边距
margin-left左外边距

margin的简写方式与padding一致。

1.盒子与盒子之间有了距离,添加了外边距。
2. margin不影响盒子的实际大小。

2.5.2 外边距典型应用

  1. 块级元素水平居中:外边距可以让块级盒子水平居中,但必须满足:
    • 盒子必须指定了宽度(width)。
    • 盒子左右的外边距都设置为auto(自动)。
    .header { width: 960px; margin: 0 auto; }
    
    • 常见的写法:
      • margin-left: auto; margin-right: auto;
      • margin: auto;
      • margin: 0 auto;
  2. 行内元素或行内块元素水平居中
    解决方案:给其父元素添加text-align: center;

2.5.3 外边距合并

使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。

  1. 相邻块元素垂直外边距的合并
    当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则它们之间的垂直间距不是margin-bottom与margin-top的和。取两个值中的较大者——这种现象被称为相邻块元素垂直外边距的合并。
    解决方案:尽量只给一个盒子添加margin值。
  2. 嵌套块元素垂直外边距的塌陷
    对于两个嵌套关系(父子关系)的块元素,父元素有上外边距,同时子元素也有上外边距,此时父元素会塌陷较大较大的外边距值。
    解决方案:
    • 可以为父元素定义上边框。
    • 可以为父元素定义上内边距。
    • 可以为父元素添加overflow: hidden。

外边距合并

2.5.4 清除外边距

网页元素很多都带有默认的内外边距,而且不同浏览器默认的也不一致。因此我们在布局前,首先要清除下网页元素的内外边距。

* {
    padding: 0;
    margin: 0;
}

行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。或者将行内元素转换为块级和行内块元素。

3 圆角边框(*)

在CSS3中,新增了圆角边框样式。border-radius属性用于设置元素的外边框圆角。

border-radius: length;
  • 参数值可以为数值(圆的半径)或百分比的形式。
  • 如果是正方形,想要设置为一个圆,把数值修改为高度或者宽度的一半即可,或者直接写50%
  • 如果是个矩形,设置为高度的一半即可。
  • 该属性是一个简写属性,可以跟四个值,分别代表左上角、右上角、右下角、左下角(顺时针)。

圆形头像:

avatar {
	width: 30px;
	height: 30px;
	border-radius: 50%;
}

4 盒子阴影(*)

在CSS3中,新增了盒子阴影样式。border-shadow属性为盒子添加阴影。

border-shadow: h-shadow v-shadow blur spread color inset;
属性值描述
h-shadow必需。水平阴影的位置,允许负值。
v-shadow必需。垂直阴影的位置,允许负值。
blur可选。模糊距离。
spread可选。阴影的尺寸。
color可选。阴影的颜色。
inset可选。将外部阴影(outset)改为内部阴影。
  • 默认是外阴影(outset),但是不可以写这个单词,否则导致阴影无效。
  • 盒子阴影不占用空间,不会影响其他盒子排列。

5 文字阴影

在CSS3中,text-shadow属性为文本添加阴影。

text-shadow: h-shadow v-shadow blur color;
属性值描述
h-shadow必需。水平阴影的位置,允许负值。
v-shadow必需。垂直阴影的位置,允许负值。
blur可选。模糊距离。
color可选。阴影的颜色。

6 浮动(float)

6.1 传统网页布局的三种方式

  1. 普通流(标准流)
  2. 浮动
  3. 定位

实际开发中,一个页面基本都包含了这三种布局方式。

6.2 标准流(普通流/文档流)

标准流:标签按照规定好的默认方式排列。是最基本的布局方式。

  1. 块级元素会独占一行,从上向下顺序排列。
    • 常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table
  2. 行内元素会按照顺序,从左向右顺序排列,碰到父元素边缘则自动换行。
    • 常用元素:spam、a、i、em等

6.3 为什么需要浮动?

浮动可以改变元素标签默认的排列方式:

  1. 可以实现多个块级盒子(div)水平排列成一行。(浮动的典型应用)
    虽然转换为行内块元素可以实现一行显示,但是行内块之间会有大的空白缝隙,很难控制。
  2. 可以实现两个盒子的左右对齐。

网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。

6.4 什么是浮动

float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

选择器 { float: 属性值; }
属性值描述
none元素不浮动。默认值。
left元素向左浮动。
right元素向右浮动。

6.5 浮动的特性(**)

  1. 浮动元素会脱离标准流(脱标),移动到指定位置,浮动的盒子不再保留原先的位置。
  2. 多个浮动的元素会按照属性值一行内显示,并且顶部对齐排列。
  3. 浮动的元素会具有行内块元素的特性。
    如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定。

6.6 浮动元素搭配标准流的父元素

为了约束浮动元素的位置,网页布局一般采取的策略是:先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置。复合网页布局的第一准则。
案例:

<!DOCTYPE html>
<html lang="en">
	<head>
	    <meta charset="UTF-8">
	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	    <meta http-equiv="X-UA-Compatible" content="ie=edge">
	    <title>浮动元素搭配标准流父盒子2</title>
	    <style>
	        * { margin: 0; padding: 0; }
	        li { list-style: none; }
	        .box {
	            width: 1226px;
	            height: 285px;
	            background-color: pink;
	            margin: 0 auto;
	        }
	        .box li {
	            width: 296px;
	            height: 285px;
	            background-color: purple;
	            float: left;
	            margin-right: 14px;
	        }
	        /* 这里必须写 .box .last 要注意权重的问题  20 */
	        .box .last {
	            margin-right: 0;
	        }
	    </style>
	</head>
	<body>
	    <ul class="box">
	        <li>1</li>
	        <li>2</li>
	        <li>3</li>
	        <li class="last">4</li>
	    </ul>
	</body>
</html>

网页布局第二准则:先设置盒子大小,之后设置盒子的位置。
当浮动元素的尺寸大于盒子元素,会溢出。但因浮动元素脱标,且其外边距不会引起塌陷,所以不会撑大盒子。

6.7 常见的网页布局

6.7.1 常见的三种网页布局

常见网页布局
常见网页布局
通栏盒子(和浏览器一样宽)不需要指定宽度。

6.7.2 浮动布局的注意事项(*)

  1. 浮动和标准流的父盒子搭配。
    先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置。
  2. 如果一个元素浮动了,理论上其余的兄弟元素也要浮动,以防止引起覆盖问题。
    浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流。
    • 当第一个盒子是标准流(独占一行),第二个盒子左浮动,则第二个盒子会在下一行,不会盖住第一个盒子。
    • 当第一个盒子左浮动,第二个盒子是标准流(独占一行),则第一个盒子会盖住第二个盒子;若此时第三个盒子也浮动,则第三个盒子会在第二个盒子的下一行,第一个盒子的右侧。
      (↑好乱但是没办法)

6.8 清除浮动

6.8.1 为什么要清除浮动

理想状态中,让子盒子撑开父盒子,而不是指定父盒子的高度。但是浮动的子元素脱标不占位置,会使得父元素的高度为0,影响下方的标准流盒子。

6.8.2 清除浮动的本质

本质:清除浮动元素脱离标准流造成的影响。
如果父盒子本身有高度,则不需要清除浮动。
清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了。

选择器 { clear: 属性值; }
属性值描述
left不允许左侧有浮动元素(清除左侧浮动的影响)
right不允许右侧有浮动元素(清除右侧浮动的影响)
both(实际开发中用)清除左右两侧浮动的影响

6.8.3 清除浮动的方法

清除浮动的策略:闭合浮动,即只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子。

  1. 额外标签法,也称隔离法,W3C推荐的做法。
    • 额外标签法会在浮动元素的末尾添加一个空的标签(必须是块级元素,不能是行内元素),例如<div style=“clear: both;”></div>或者其他标签(<br />)。
    • 优点:通俗易懂,书写方便。
    • 缺点:添加许多无意义的标签,结构化较差。
  2. 父级元素添加overflow属性,将其属性值设置为hidden、auto或scroll。
    • 优点:代码简洁。
    • 缺点:无法显示溢出的部分。
  3. 父级添加:after伪元素。
    :after方式是额外标签法的升级版。
    .clearfix:after {
    	content: "";
    	display: block;
    	height: 0;
    	clear: both;
    	visibility: hidden;
    }
    .clearfix { /* IE6、7专有 */
    	*zoom: 1;
    }
    
    • 优点:没有增加标签,结构更简单。
    • 缺点:需要照顾低版本浏览器。
    • 代表网站:百度、淘宝、网易等
  4. 父级添加双伪元素。
    .clearfix:before,.clearfix:after {
       content: "";
       display: table;
    }
    .clearfix:after {
         clear: both;
    }
    .clearfix {
      *zoom: 1;
    }
    
    • 优点:代码更简洁。
    • 缺点:需要照顾低版本浏览器。
    • 代表网站:小米、腾讯等。

总结

  • 布局为什么使用不同的盒子,而不只用<div>?
    标签都是有语义的,合理的地方用合理的标签。比如产品标题就用<h>,大量文字段落就用<p>。
  • 为什么用那么多类名?
    给每个盒子使用一个类名,可以更好地找到盒子,选取盒子更容易,后期维护也方便。
  • 什么时候用margin什么时候用padding?
    大部分情况下两者可以混用,各有优缺点。但柑橘实际情况,总有更简单的方法实现。
  • 网页布局准则:
    1. 多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。
    2. 先设置盒子大小,之后设置盒子的位置。

原来盒子和浮动的使用有这么多讲究。。

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

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

相关文章

【Hello Linux】命令行解释器

作者&#xff1a;小萌新 专栏&#xff1a;Linux 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;使用进程的基础知识和进程控制知识做出一个简单的shell程序 命令行解释器介绍搭架子缓冲区获取命令如何从标准输入中获取字符串解析命令…

Python3 爬虫实战教程 ,网页审查元素【Python学习连续,请关注】

在讲解爬虫内容之前&#xff0c;我们需要先学习一项写爬虫的必备技能&#xff1a;审查元素&#xff08;如果已掌握&#xff0c;可跳过此部分内容&#xff09;。1、审查元素在浏览器的地址栏输入URL地址&#xff0c;在网页处右键单击&#xff0c;找到检查。(不同浏览器的叫法不同…

爬虫(三)selenium

文章目录1. Selenium 安装2. Selenium 基本功能2.1 初始化浏览器2.2 其他功能3. 查找元素3.1 八大定位方法3.2 查找相对元素3.3 键盘事件4. 元素方法5. JS执行运行环境&#xff1a; selenium4.7.2 1. Selenium 安装 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接…

成都欢蓬电商:抖音带话题春日好物节活动规则

抖音带话题“春日好物节”&#xff0c;投稿瓜分优质内容激励&#xff0c;快来投稿参与本次抖音活动&#xff01; 一、活动玩法 活动时间&#xff1a;3月3日-3月16日 活动形式&#xff1a; 玩法说明&#xff1a; 若同一id同时参加获奖&#xff0c;则不重复激励; 因视频投流涉…

易基因:RRBS揭示晚年锻炼可以减缓骨骼肌表观遗传衰老(甲基化年龄)|新研究

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。2021年12月21日&#xff0c;美国阿肯色大学、德克萨斯大学和肯塔基大学的研究人员合作在《Aging Cell》杂志发表了题为“Late-life exercise mitigates skeletal muscle epigenetic aging”…

还是要学好数学啊

有一个无穷大的二维网格图&#xff0c;一开始所有格子都未染色。给你一个正整数 n &#xff0c;表示你需要执行以下步骤 n 分钟&#xff1a;第一分钟&#xff0c;将任一格子染成蓝色。之后的每一分钟&#xff0c;将与蓝色格子相邻的 所有 未染色格子染成蓝色。下图分别是 1、2、…

每日一问-ChapGPT-20230308-关于技术与思考的问题

文章目录每日一问-ChapGPT系列起因每日一问-ChapGPT-20230308-关于技术与思考的问题matplotlib_venn 中 venn2函数调用时&#xff0c;subsets传入A list (or a tuple) containing two set objects&#xff0c;怎么理解plt.pie() 包含哪些参数&#xff0c;以及每个参数的意义mat…

云端地球2月更新了这些功能,你都用过了吗?

时光飞逝、转眼已到2023年的第三个月&#xff0c;武汉的天气也逐渐转好&#xff0c;温度步步高升。云端地球产研团队的脚步也越走越快&#xff0c;虽然春节仿佛还是昨天的事&#xff0c;但云端地球已经完成了四次迭代&#xff0c;为广大建模爱好者带来了更多实用功能&#xff0…

BOSHIDA 模块电源的安装与维护

BOSHIDA三河博电科技 模块电源的安装与维护 由于各生产的模块电源的类别、系列、规格品种难以数计&#xff0c;故其功能特性和物理特性不尽相同&#xff0c;因此在安装、使用与维护方面亦各有不同&#xff0c;但应在以下几方面引起注意。 &#xff08;1&#xff09;打开包装后…

【Redis】搭建哨兵集群

目录 集群结构 准备实例和配置 启动 测试 集群结构 这里我们搭建一个三节点形成的Sentinel集群&#xff0c;来监管之前的Redis主从集群。如图&#xff1a; 三个sentinel实例信息如下&#xff1a; 节点IPPORTs1192.168.150.10127001s2192.168.150.10127002s3192.168.150.…

10 卷积神经网络及python实现

1 卷积神经网络简介 卷积神经网络(Convolutional Neural Network, CNN)由LeCun在上世纪90年代提出。 LeCun Y., Bottou L., Bengio Y., and Haffner P., Gradient-based learning applied to document recognition, Proceedings of the IEEE, pp. 1-7, 1998. 卷积核和特征图&…

STM32定时器Timer(PWM呼吸灯)

目录 定时器介绍 定时器工作原理&#xff1a; 定时器分类&#xff1a; STM32F103C8T6定时器资源&#xff1a; ​编辑 通用定时器介绍&#xff1a; 定时器计数模式&#xff1a; 定时器时钟源&#xff1a; ​编辑 定时器溢出时间计算公式&#xff1a; 定时器中断实验…

「IT女神勋章」挑战赛#

缓存 本地缓存 本地缓存为了保证线程安全问题&#xff0c;一般使用ConcurrentMap的方式保存在内存之中 分布式缓存。 常见的分布式缓存则有Redis&#xff0c;MongoDB等。 一致性&#xff1a;本地缓存由于数据存储于内存之中&#xff0c;每个实例都有自己的副本&#xff0c…

完全解读低通滤波,并且用其C语言实现

1、什么是低通滤波 低通滤波是一种信号处理技术&#xff0c;它可以用于去除高频信号成分&#xff0c;只保留低频信号成分。低通滤波器的本质是一个线性时不变系统&#xff0c;它可以通过差分方程或者频域响应的形式来描述。 在差分方程的形式下&#xff0c;低通滤波器可以表示…

MySQL数据库引擎(MyIsAm和InnoDB)

一、数据库引擎 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的&#xff0c;而不是基于库的&#xff0c;所以存储引擎也可被称为表类型。MySQL5.5版本之后默认InnoDB&#xff0c;之前是MyIsAm。 PS&#xff1a; 设置引擎语句&#xff1…

计算机网络:RIP协议以及距离向量算法

RIP协议 RIP是一种分布式的基于适量向量的路由选择协议&#xff0c;最大优点是简单。要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的唯一最佳&#xff08;最短&#xff09;距离记录&#xff0c;最多包含15个路由器&#xff0c;距离为16就表示网络不可达&…

每天一道大厂SQL题【Day15】微众银行真题实战(五)

每天一道大厂SQL题【Day15】微众银行真题实战(五) 大家好&#xff0c;我是Maynor。相信大家和我一样&#xff0c;都有一个大厂梦&#xff0c;作为一名资深大数据选手&#xff0c;深知SQL重要性&#xff0c;接下来我准备用100天时间&#xff0c;基于大数据岗面试中的经典SQL题&…

DBT 收购 Transform,指标平台已成现代数据栈关键拼图

今年 2 月初&#xff0c;现代数据技术栈独角兽 DBT 宣布完成对 Transform 的并购。在现代数据栈的体系中&#xff0c;DBT 和 Transform 都扮演着重要角色&#xff0c;DBT 侧重于整个分析链路上的数据转换处理&#xff0c;而 Transform 则聚焦在以指标为中心搭建业务分析应用。 …

【java】Java 封装

文章目录Java 封装封装的优点实现Java封装的步骤实例Java 封装 在面向对象程式设计方法中&#xff0c;封装&#xff08;英语&#xff1a;Encapsulation&#xff09;是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障&#xff0c;防…

14个Python处理Excel的常用操作分享

自从学了Python后就逼迫用Python来处理Excel&#xff0c;所有操作用Python实现。目的是巩固Python&#xff0c;与增强数据处理能力。本文为大家整理了14个Python处理Excel的常用操作&#xff0c;非常好用&#xff0c;希望对大家有所帮助目录自从学了Python后就逼迫用Python来处…