从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型

从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型

  • 前言
  • 一、盒子模型的组成
    • margin(外边距):
    • border(边框):
    • padding(内边距):
    • content(内容):
  • 二、盒子内容区(content)
    • 关于默认宽度
  • 三、盒子内边距(padding)
  • 四、盒子边框(border)
  • 五、盒子外边距(margin)
    • 1.margin 属性设置
    • 2.margin 注意事项:
    • 3.margin 塌陷问题:
    • 4.margin 合并问题:
  • 六、处理内容溢出
    • 1. overflow属性介绍
    • 2.visible(默认值)
    • 3.hidden
    • 4.scroll
    • 5.auto
    • 6.overflow-x和overflow-y属性
  • 七、隐藏元素的方式
    • 1.display: none;
    • 2.visibility: hidden;
    • 3.opacity: 0;


前言

  • 之前的博客中,我们深入了解了 CSS 的长度单位与元素的各种显示模式,这些知识对于我们构建网页样式起到了重要的铺垫作用。
  • 而今天,我们要进一步探索CSS 盒子模型,它可是 CSS 布局的核心概念之一,掌握了它,就能更加精准地控制网页元素的呈现效果

一、盒子模型的组成

在这里插入图片描述

  • CSS 会把所有的 HTML 元素都看成一个盒子, 所有的样式也都是基于这个盒子来设置的。这个盒子主要由以下几个部分组成:

margin(外边距):

它表示盒子与外界的距离呢。需要注意的是,margin 不会影响盒子本身的大小,但会对盒子的位置产生影响。

  • 用法
.box {margin: 20px;}
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title> Margin Example </title><style>.box1 {background-color: lightblue;margin: 20px;}.box2 {background-color: lightgreen;margin: 10px;}</style>
</head><body><div class="box1">这是第一个盒子,设置了20px的外边距,你可以看到它与页面边缘以及其他元素之间有一定的间隔。</div><div class="box2">这是第二个盒子,设置了10px的外边距,和第一个盒子相比,它与周围的间隔会有所不同。</div>
</body></html>

在这里插入图片描述

border(边框):

就是盒子的边框,通过相关属性可以设置边框的风格、宽度和颜色等。

 .box {border-style: solid;border-width: 3px;border-color: black;}
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title> Border Example </title><style>.box {border-style: solid;border-width: 3px;border-color: black;background-color: lightyellow;padding: 10px;width: 200px;height: 150px;}</style>
</head><body><div class="box">这里是盒子里面的内容哦,通过设置边框的样式、宽度和颜色,让盒子有了一个明显的边界呢。</div>
</body></html>

在这里插入图片描述

padding(内边距):

这是紧贴着内容的补白区域,能让内容和边框之间有一定的间隔。
用法

  .box {padding: 15px;}
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title> Padding Example </title><style>.box {background-color: lightcoral;padding: 15px;border: 1px solid gray;}</style>
</head><body><div class="box">这里是盒子里面的内容哦,通过设置15px的内边距,你可以看到内容与边框之间有了一定的间隔呢,让整个盒子看起来更加美观和清晰啦。</div>
</body></html>

在这里插入图片描述

content(内容):

元素中的文本或者后代元素等都属于它的内容。

盒子的大小计算公式是

  • 盒子的大小 = content + 左右 padding + 左右 border

外边距margin 不会影响盒子的大小,但会影响盒子的位置

二、盒子内容区(content)

在设置内容区的时候,我们有以下这些常用的 CSS 属性
在这里插入图片描述

下面来详细讲解一下各部分
  • width

用来设置内容区域的宽度,属性值是长度。

  • max-width

可以设置内容区域的最大宽度,同样是长度值。不过要注意,一般它不与 width 一起使用。

  • min-width

这个属性是设置内容区域的最小宽度的,也是长度值,同样通常不与 width 一起用。

  • height

用于设置内容区域的高度,属性值为长度。

  • max-height

设置内容区域的最大高度,是长度值,一般不与 height 一起使用。

  • min-height

设置内容区域的最小高度,也是长度值,通常不与 height 一起使用

关于默认宽度

当我们不设置 width 属性时,元素会呈现出默认宽度。这里有两个关于默认宽度的公式:

  • 总宽度 = 父的 content — 自身的左右 margin 。
  • 内容区的宽度 = 父的 content — 自身的左右 margin — 自身的左右 border — 自身的左右 padding 。

三、盒子内边距(padding)

  • padding 是个复合属性它的使用规则如下:
    在这里插入图片描述
  • padding: 10px; 这种情况下,四个方向的内边距都是 10px
  • padding: 10px 20px; 此时是上 10px,左右 20px(也就是上下、左右的设置方式)
  • padding: 10px 20px 30px; 这里就是上 10px,左右 20px,下 30px(上、左右、下的设置顺序)
  • padding: 10px 20px 30px 40px; 那就是上 10px,右 20px,下 30px,左 40px(上、右、下、左的设置顺序)
这里还有几个注意点
  • padding 的值是不能为负数的哟。
  • 对于行内元素来说,上下内边距不能完美地设置
  • 块级元素、四个方向的内边距都可以完美设置

四、盒子边框(border)

  • 边框相关的属性有 20 个之多
  • 像 border-style、border-width、border-color 其实也是复合属性
    在这里插入图片描述

五、盒子外边距(margin)

1.margin 属性设置

在这里插入图片描述

  • margin-left:设置左外边距,属性值是 CSS 中的长度值。
  • margin-right:设置右外边距,也是 CSS 中的长度值。
  • margin-top:设置上外边距,同样是长度值。
  • margin-bottom:设置下外边距,还是长度值。
  • margin:这是个复合属性,可以写 1~4 个值,规律和 padding 是一样的(顺时针方向),属性值也是 CSS 中的长度值呢

例子

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Margin Example</title><style>/* 第一个盒子,设置不同方向的外边距 */.box1 {background-color: lightblue;width: 200px;height: 150px;margin-left: 30px;margin-right: 20px;margin-top: 15px;margin-bottom: 10px;}/* 第二个盒子,使用复合属性margin设置外边距 */.box2 {background-color: lightgreen;width: 150px;height: 120px;margin: 10px 20px 15px 25px; /* 顺时针方向:上 右 下 左 */}/* 第三个盒子,使用复合属性margin设置外边距,只写两个值 */.box3 {background-color: lightcoral;width: 180px;height: 130px;margin: 12px 18px; /* 上下为12px,左右为18px */}/* 第四个盒子,使用复合属性margin设置外边距,只写一个值 */.box4 {background-color: lightyellow;width: 160px;height: 140px;margin: 20px; /* 四个方向的外边距都为20px */}</style>
</head><body><div class="box1">这是第一个盒子,通过分别设置margin-left、margin-right、margin-top和margin-bottom来控制外边距哦。</div><div class="box2">这是第二个盒子,使用复合属性margin设置外边距,这里按照顺时针方向分别设置了上、右、下、左的外边距哦。</div><div class="box3">这是第三个盒子,使用复合属性margin设置外边距,只写了两个值,分别对应上下和左右的外边距哦。</div><div class="box4">这是第四个盒子,使用复合属性margin设置外边距,只写了一个值,四个方向的外边距都设置为相同的值哦。</div>
</body></html>

在这里插入图片描述

2.margin 注意事项:

  • 子元素的 margin,是参考父元素的 content 来计算的,因为是在父亲的 content 中承装着子元素。
  • 上 margin、左 margin 会影响自己的位置
  • 下 margin、右 margin 则会影响后面兄弟元素的位置。
  • 块级元素、行内块元素都能完美地设置四个方向的 margin;
  • 行内元素就有点特别,左右margin 可以完美设置,上下 margin 设置可就无效
  • margin 的值还可以是 auto ,如果给一个块级元素设置左右 margin 都为 auto,那这个块级元素就会在父元素中水平居中。
  • margin 的值是可以为负值

3.margin 塌陷问题:

什么是 margin 塌陷?就是第一个子元素的上 margin 会作用在父元素上,最后一个子元素的下 margin 也会作用在父元素上

  • 例如
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>/* 父元素样式 */.parent {width: 300px;height: 300px;background-color: lightblue;/* 为了更明显看出效果,给父元素添加边框 */border: 1px solid black;}/* 子元素样式 */.child {width: 200px;height: 100px;background-color: pink;margin-top: 50px;margin-bottom: 30px;}</style><title>Margin塌陷示例</title>
</head><body><div class="parent"><div class="child"></div></div>
</body></html>

在这里插入图片描述

按照正常理解,如果没有 margin 塌陷问题,父元素应该保持自身的高度 300px 不变,子元素在父元素内部根据设置的 margin 来调整位置。但实际上,由于 margin 塌陷现象,你会发现父元素的上边框和子元素的上边缘之间的距离并不是设置的 50px(而是子元素的上 margin 作用到了父元素上,使得父元素的上边框和子元素上边缘重合了),同样,父元素的下边框和子元素的下边缘之间的距离也不是设置的 30px(子元素的下 margin 也作用到了父元素上)

那怎么解决这个问题?
有以下几种方案

  • 方案一:给父元素设置不为 0 的 padding 。
  • 方案二:给父元素设置宽度不为 0 的 border 。
  • 方案三:给父元素设置 css 样式 overflow:hidden

4.margin 合并问题:

什么是 margin 合并?
就是上面兄弟元素的下外边距和下面兄弟元素的上外边距会合并,取一个最大的值,而不是相加。

  • 怎么解决这个问题呢?其实呀,在布局的时候上下的兄弟元素,只给一个设置上下外边距就可以啦,无需特别去解决。

六、处理内容溢出

  • 当内容超出盒子的范围时,我们可以通过 overflow 相关属性来处理
    在这里插入图片描述
下面来详细降解一下各部分

1. overflow属性介绍

2.visible(默认值)

内容会溢出元素框并且可见,超出部分会直接显示在盒子外面

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Overflow Visible Example</title><style>.box {width: 200px;height: 150px;border: 1px solid black;overflow: visible;}</style>
</head><body><div class="box">这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的文字内容,这里是一段很长很长的语文内容,用来测试当overflow设置为visible时的效果,你会发现文字会超出盒子的边界直接显示出来哦。</div>
</body></html>

在这里插入图片描述

3.hidden

内容超出盒子范围的部分会被隐藏,不会显示在页面上

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Overflow Hidden Example</title><style>.box {width: 200px;height: 150px;border: 1px solid black;overflow: hidden;}</style>
</head><body><div class="box">同样是一段很长很长的文字内容,这次overflow设置为hidden,你会看到超出盒子范围的文字部分都被隐藏起来啦,看不到咯。</div>
</body></html>

在这里插入图片描述

4.scroll

无论内容是否超出盒子范围,都会显示滚动条,用户可以通过滚动条来查看全部内容
在这里插入图片描述

5.auto

当内容超出盒子范围时,会自动显示滚动条;如果内容没有超出,则不会显示滚动条

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport"="width=device-width, initial-scale=1.0"><title>Overflow Auto Example</title><style>.box {width: 200px;height: 150px;border: 1px solid black;overflow: auto;}</style>
</head><body><div class="box">这里的文字内容长度适中,当overflow设置为auto时,如果文字没有超出盒子范围,就不会有滚动条;但如果把文字内容改得很长很长,超出盒子了,就会自动出现滚动条哦。</div>
</body></html>

在这里插入图片描述

6.overflow-x和overflow-y属性

除了overflow属性外,我们还可以分别对水平方向和垂直方向的内容溢出进行单独设置,这就用到了overflow-x和overflow-y属性。它们的取值和overflow属性类似,例如

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport"="width=device-width, initial-scale=1.0"><title>Overflow X and Y Example</title><style>.box {width: 200px;height: 150px;border: 1px solid black;overflow-x: scroll; /* 水平方向设置为滚动条显示方式 */overflow-y: hidden; /* 垂直方向设置为隐藏超出部分 */}</style>
</head><body><div class="box">这里是一些内容,其中包含了比较长的文字以及可能会超出盒子宽度的图片等元素哦。通过设置overflow-x和overflow-y,你可以看到水平方向有滚动条可查看超出部分,而垂直方向超出的部分则被隐藏起来啦。</div>
</body></html>

在这里插入图片描述

在这里插入图片描述

七、隐藏元素的方式

在网页设计中,有时候我们需要根据特定的条件隐藏某些元素。以下是几种常见的隐藏元素的方式

1.display: none;

当我们给一个元素设置display: none;时,该元素及其所有内容都会从页面布局中完全移除,就好像这个元素从来不存在一样。它不会占据任何空间,其他元素会自动填补它原本所在的位置。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport"="width=device-width, initial-scale=1.0"><title>Display None Example</title><style>.hidden-element {display: none;}</style>
</head><body><div class="visible-element">这是一个可见的元素哦,你可以看到我正常显示在这里呢。</div><div class="hidden-element">我是被设置为display:none的元素,现在你看不到我啦,而且我原本占的地方也被其他元素占了哦。</div><div class="visible-element">这又是一个可见的元素哦,我在被隐藏元素的后面呢,已经填补了它原本的位置啦。</div>
</body></html>

在这里插入图片描述

2.visibility: hidden;

与display: none;不同的是,当设置visibility: hidden;时,元素虽然在页面上不可见了,但它仍然占据着原来的空间位置,其他元素不会填补它的位置。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport"="width=device-width, initial-scale=1.0"><title>Visibility Hidden Example</title><style>.invisible-element {visibility: hidden;}</style>
</head><body><div class="visible-element">这是一个可见的元素哦,你可以看到我正常显示在这里呢。</div><div class="invisible-element">我是被设置为visibility:hidden的元素,现在你看不到我啦,但我还占着我原来的地方哦,其他元素可没法填补我的位置呢。</div><div class="visible-element">这又是一个可见的元素哦,我在被隐藏元素的后面呢,它占着位置,我就只能在这儿啦。</div>
</body></html>

在这里插入图片描述

3.opacity: 0;

设置opacity: 0;会使元素完全透明,从而在视觉上看起来好像隐藏了一样。但与前两种方式不同的是,它仍然可以响应鼠标事件等交互操作,并且同样占据着原来的空间位置

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport"="width=device-width, initial-scale=1.0"><title>Opacity Zero Example</title><style>.transparent-element {opacity: 0;}</style>
</head><body><div class="visible-element">这是一个可见的元素哦,你可以看到我正常显示在这里呢。</div><div class="transparent-element">我是被设置为opacity:0的元素,现在你看不到我啦,但我还占着我原来的地方哦,而且你要是在我这儿点鼠标,还是会有反应的呢,因为我只是透明了而已呀。</div><div class="visible-element">这又是一个可见的元素哦,我在被隐藏元素的后面呢,它占着位置,我就只能在这儿啦。</div>
</body></html>

在这里插入图片描述


非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

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

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

相关文章

使用Feign远程调用丢失请求头问题

在使用Feign进行远程调用时&#xff0c;当前服务是能拿到请求头信息的&#xff0c;请求头包含有登录认证Cookie等重要信息&#xff0c;但是在调用远程服务时&#xff0c;远程服务却拿不到请求头信息&#xff0c;因为使用Feign进行远程调用实际上是发起新的Request请求了&#x…

2021数学分析【南昌大学】

2021 数学分析 求极限 lim ⁡ n → ∞ 1 n ( n + 1 ) ( n + 2 ) ⋯ ( n + n ) n \lim_{n \to \infty} \frac{1}{n} \sqrt [n]{(n+1)(n+2) \cdots (n+n)} n→∞lim​n1​n(n+1)(n+2)⋯(n+n) ​ lim ⁡ n → ∞ 1 n ( n + 1 ) ( n + 2 ) ⋯ ( n + n ) n = lim ⁡ n → ∞ ( n + …

vue+mars3d点击图层展示炫酷的popup弹窗

展示效果 目录 一&#xff1a;叠加数据图层到地图上&#xff0c;此时需要使用bindPopup绑定popup 二、封装自定义的popup&#xff0c;样式可以自行调整 一&#xff1a;叠加数据图层到地图上&#xff0c;此时需要使用bindPopup绑定popup 这里我根据数据不同&#xff0c;展示的…

【AIGC】如何使用高价值提示词Prompt提升ChatGPT响应质量

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | 提示词Prompt应用实例 文章目录 &#x1f4af;前言&#x1f4af;提示词英文模板&#x1f4af;提示词中文解析1. 明确需求2. 建议额外角色3. 角色确认与修改4. 逐步完善提示5. 确定参考资料6. 生成和优化提示7.…

FPGA存在的意义:为什么adc连续采样需要fpga来做,而不会直接用iic来实现

FPGA存在的意义&#xff1a;为什么adc连续采样需要fpga来做&#xff0c;而不会直接用iic来实现 原因ADS111x连续采样实现连续采样功能说明iic读取adc的数据速率 VS adc连续采样的速率adc连续采样的速率iic读取adc的数据速率结论分析 FPGA读取adc数据问题一&#xff1a;读取adc数…

LobeChat-46.6k星!顶级AI工具集,一键部署,界面美观易用,ApiSmart 是你肉身体验学习LLM 最好IDEA 工具

LobeChat LobeChat的开源&#xff0c;把AI功能集合到一起&#xff0c;真的太爽了。 我第一次发现LobeChat的时候&#xff0c;就是看到那炫酷的页面&#xff0c;这么强的前端真的是在秀肌肉啊&#xff01; 看下它的官网&#xff0c;整个网站的动效简直闪瞎我&#xff01; GitH…

[报错] Error: PostCSS plugin autoprefixer requires PostCSS 8 问题解决办法

报错&#xff1a;Error: PostCSS plugin autoprefixer requires PostCSS 8 原因&#xff1a;autoprefixer版本过高 解决方案&#xff1a; 降低autoprefixer版本 执行&#xff1a;npm i postcss-loader autoprefixer8.0.0 参考&#xff1a; Error: PostCSS plugin autoprefix…

基于STM32的Wi-Fi无人机项目

引言 随着无人机技术的快速发展&#xff0c;基于微控制器的DIY无人机变得越来越流行。本项目将介绍如何使用STM32微控制器制作一架简单的Wi-Fi无人机。通过本项目&#xff0c;您将了解到无人机的基本组成部分&#xff0c;如何进行硬件连接&#xff0c;代码编写&#xff0c;以及…

IDEA注释格式、匹配补全调整

1.注释格式调整 目前重新捡起一部分Java&#xff0c;写代码时候发现注释快捷键总是放在第一列&#xff0c;看起来很难受&#xff0c;故寻找方法如下&#xff1a; 分别点击 编辑器-代码样式-Java 修改注释代码选项如下 2.大小写匹配补全问题 还发现在写代码过程中&#xff0c…

麒麟 V10(ky10.x86_64)无网环境下 openssl - 3.2.2 与 openssh - 9.8p1 升级【最全教程】

目录 背景 安装包下载 上传解压安装包 安装zlib 安装OpenSSL 安装OpenSSH 验证 背景 近期&#xff0c;项目上线已进入倒计时阶段&#xff0c;然而在至关重要的安全检查环节中&#xff0c;却惊现现有的 OpenSSH 存在一系列令人担忧的漏洞&#xff1a; OpenSSH 资源管理错…

高级架构二 Git基础到高级

一 Git仓库的基本概念和流程 什么是版本库&#xff1f;版本库又名仓库&#xff0c;英文名repository,你可以简单的理解一个目录&#xff0c;这个目录里面的所有文件都可以被Git管理起来&#xff0c;每个文件的修改&#xff0c;删除&#xff0c;Git都能跟踪&#xff0c;以便任何…

从excel数据导入到sqlsever遇到的问题

1、格式问题时间格式&#xff0c;excel中将日期列改为日期未生效&#xff0c;改完后&#xff0c;必须手动单击这个单元格才能生效&#xff0c;那不可能一个一个去双击。解决方案如下 2、导入之后表字段格式问题&#xff0c;数据类型的用navicat导入之后默认是nvarchar类型的&a…

FREERTOS二值信号量实验

代码&#xff1a; 主程序 #include "./SYSTEM/sys/sys.h" #include "./SYSTEM/usart/usart.h" #include "./SYSTEM/delay/delay.h" #include "./BSP/LED/led.h" #include "./BSP/LCD/lcd.h" #include "./BSP/KEY/key…

对于Oracle来说,土地管理是非核心域吗

思雨喵 2022-1-4 14:13 您在课上说&#xff0c;对于土地管理系统来说oracle&#xff0c;arcgis&#xff0c;java是非核心域&#xff0c;因为它们可有可无。我想请教对于oracle来说&#xff0c;土地管理好像也是可有可无&#xff0c;那么土地管理是非核心域吗 UMLChina潘加宇 …

工业齐套管理虚拟现实仿真模拟软件

工业齐套管理虚拟现实仿真模拟软件是与法国最大的汽车制造商合作开发的一款虚拟现实仿真模拟软件&#xff0c;借助身临其境的虚拟现实环境&#xff0c;无需停止生产线&#xff0c;即可模拟仓库和提货区域。 工业齐套管理虚拟现实仿真模拟软件不仅适用于汽车工业&#xff0c;安全…

状态模式的理解和实践

在软件开发中&#xff0c;我们经常遇到需要根据对象的不同状态执行不同行为的情况。如果直接将这些状态判断和行为逻辑写在同一个类中&#xff0c;会导致该类变得臃肿且难以维护。为了解决这个问题&#xff0c;状态模式&#xff08;State Pattern&#xff09;应运而生。状态模式…

【MySQL — 数据库基础】MySQL的安装与配置 & 数据库简单介绍

数据库基础 本节目标 掌握关系型数据库&#xff0c;数据库的作用掌握在Windows和Linux系统下安装MySQL数据库了解客户端工具的基本使用和SQL分类了解MySQL架构和存储引擎 1. 数据库的安装与配置 1.1 确认MYSQL版本 处理无法在 cmd 中使用 mysql 命令的情况&a…

Python从入门到入狱

Python是从入门到入狱&#xff1f;这个充满调侃意味的说法在程序员圈子里流传甚广。表面看&#xff0c;它似乎是在嘲笑这门语言从简单易学到深陷麻烦的巨大反差&#xff0c;实际上却隐藏着很多值得深思的问题。要解读这个话题&#xff0c;得从Python的特点、使用场景以及潜在风…

Linux获取文件属性

目录 stat函数 获取文件属性 获取文件权限 实现“head -n 文件名”命令的功能 编程实现“ls -l 文件名”功能 stat/fstat/lstat的区别&#xff1f; stat函数 int stat(const char *path, struct stat *buf); 功能&#xff1a;获取文件属性 参数&#xff1a; path&…

线程信号量 Linux环境 C语言实现

既可以解决多个同类共享资源的互斥问题&#xff0c;也可以解决简易的同步问题 头文件&#xff1a;#include <semaphore.h> 类型&#xff1a;sem_t 初始化&#xff1a;int sem_init(sem_t *sem, int pshared, unsigned int value); //程序中第一次对指定信号量调用p、v操…