网页布局再次复现

news2024/11/17 23:46:55

华子目录

  • 普通文档流布局
  • table布局
    • table布局的不足之处
  • 浮动布局
    • 浮动优点
    • 浮动用途
  • 定位布局
    • 相对定位
      • 特点:
    • 绝对定位
      • 特点:
    • 固定定位
  • div+css布局
    • div盒子模型
      • 标准盒子模型
      • div盒子组成
      • 注意
    • CSS弹性盒子
      • CSS3 弹性盒子常用属性
        • flex使用三要素
        • flex-direction设置主轴方向
        • justify-content主轴对齐方式
        • align-items设置副轴对齐方式
        • align-content
        • flex-wrap换行显示
        • flex-grow
          • 案例一:等分剩余空间
          • 案例二:不同比例的放大
          • 案例三:混合使用固定宽度和flex-grow
        • flex-shrink
        • flex-basis
        • order
  • Grid布局

普通文档流布局

  • 普通文档流布局:网页内容从上往下,从左往右进行的布局,其中块元素独占一行(我们可以使用margin,padding,display,line-height去进行布局)

table布局

  • 我们学习表格的时候,通过表格里面嵌套表格完成了基本的页面布局这种页面布局方式就是表格布局。在早期(90年代)的页面制作时,都是通过表格完成页面布局的。虽然表格布局简单易懂

table布局的不足之处

  • 改动不便,需重新调整,工作量大,也就是维护成本较高,所以在2000年之后,慢慢的被DIV+CSS页面布局方式所取代。

浮动布局

  • 浮动主要针对与black,inline元素
  • 浮动可以使用一个元素脱离自己原本的位置,并在父级元素的内容区中向左或向右移动,直到碰到父级元素内容区的边界或者其他浮动元素为止
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            width: 100px;
            height: 100px;
            background-color: red;
            border: 10px solid black;
            float: right;/*向右浮动*/
            
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: blue;
            border: 10px solid red;
            float: left;/*向左浮动*/

        }
        .box3{
            width: 100px;
            height: 100px;
            background-color: green;
            border: 10px solid black;
            float: left;/*向左浮动*/
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
</body>
</html>

浮动优点

  • 元素与元素之间没有空格存在
  • 浮动元素可以使得块级元素水平排列,一行排列不下就换行排列

浮动用途

  • 文本环绕(主要):浮动的目的主要是为文本环绕而产生
  • 取消元素之间的空格
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .box1 img{
            width: 100px;
            height: 100px;
            float: left;/*把img浮动了,p标签感受不到浮动,但是文字,inline,inline-black可以感受到浮动,也就是可以对浮动元素进行环绕*/
        }
    </style>
</head>
<body>
    <div class="box1">
        <img src="../img/天使美女.jpg" alt="天使美女">
        <p>大概傻大个法大纲规范三国杀矮冬瓜法大纲刚发的嘎阿纲傻瓜蛋傻大个啥风格烦得很昂返回的是沙沟湖大哥大哥昂很多事</p>
    </div>
</body>
</html>

在这里插入图片描述

定位布局

  • 让一个元素在一个指定位置进行显示
    • 绝对定位:基于父级坐标进行移动
    • 相对定位:基于元素本身进行移动

相对定位

  • 相对定位(relative为属性值,配合left属性,和top属性使用)
  • 相对定位能让元素保持文本流位置的同时可以通过方位属性(x/y轴)进行相对原位置的偏移(单纯写个定位是没有用的,必须要配合方向)

特点:

  • 相对定位不设置偏移量不会有任何变化和对页面的影响
  • 参照自身位置进行定位
  • 不会脱离文档流
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 100px;
            height: 100px;
            background-color: red;
            
            position: relative;
            left: 100px;/*距离左边多少px*/
            top: 100px;/*距离上方多少px*/
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

绝对定位

  • absolute为属性值
  • 绝对定位能让元素完全脱离文档流,会使用方位属性(left,top等)相对于最近的有定位(有relative属性的)的父级元素进行偏移

特点:

  • 找不到最近的定位(有relative属性的)父级,则相对于body标签
  • 一般配合相对定位使用(参照物)
  • 完全脱离文档流
  • 绝对定位,必须存在方位属性,否则无效。如果存在relative,则relative的地方就是父级,如果没有relative,则默认以body为父级
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 200px;
            height: 200px;
            border: 10px solid red;
            margin: 100px auto;

            position: relative;
        }
        .box1{
            width: 100px;
            height: 100px;
            border: 10px solid red;
            margin: 20px auto;
        }
        .box2{
            width: 20px;
            height: 20px;
            border: 10px solid red;

            position: absolute;/*绝对定位,必须存在方位属性,否则无效。如果存在relative,则relative的地方就是父级,如果没有relative,则默认以body为父级*/
            left: 0;
            top: 0;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="box1">
            <div class="box2">

            </div>
        </div>
    </div>
</body>
</html>

固定定位

  • fixed为属性值
  • 固定定位把元素固定在网页的一个位置,拖动鼠标滑轮,元素不移动

div+css布局

div盒子模型

  • div 它是一个 html 标签,一个块级元素(单独显示一行)。它单独使用没有任何意义必须结合CSS来使用。它主要用于页面的布局。
  • div是一个标准块标签,而HTML的块标签都存在了 margin,padding,border 等属性,我们就可以通过这些内边距、边框、外边距来控制不同的标签的布局和存放位置,这个就是我们经常说的盒子模型。
  • 盒模型主要定义四个区域:内容(content)内边距(padding)边线(border)外边距(margin),
  • DIV+CSS页面布局就是把每一个标签当做一个盒子,使用属性完成盒子的布局,标签之间就是盒子嵌套、挤压盒子等。

标准盒子模型

在这里插入图片描述

div盒子组成

  • 内容区(content)
  • 边线(border)
  • 内边距(padding):盒子里的内容距离盒子边线的距离
  • 外边框(margin):盒子距离父级标签的距离

注意

  • 如果把盒子的宽高写死,在设置padding时,会把盒子撑大
  • 如果盒子没有设定宽高,盒子大小会随着内容变化而变化
  • 有时候盒子为了扩展性,只会设置宽度,不会设置高度,让盒子大小随内容增长而增长

CSS弹性盒子

  • CSS弹性盒子(Flexbox)是CSS3的一种新布局模式,用于在页面需要适应不同屏幕大小和设备类型时,确保元素拥有恰当的行为。这种布局方式特别适用于元素的排列、对齐和分配空间。

  • 弹性盒子布局通过为容器设置display属性的值为flexinline-flex来定义

  • 一旦一个元素被设为弹性容器,它的直接子元素就成为弹性子项,可以通过各种弹性盒子属性进行布局。

弹性盒子提供了一系列属性来控制子元素的排列、对齐和大小:

  • flex-direction:决定主轴的方向,即项目的排列方向,可选值有rowrow-reversecolumncolumn-reverse
  • justify-content:控制项目在主轴上的对齐方式,可选值有flex-startflex-endcenterspace-betweenspace-around
  • align-items:控制项目在交叉轴上的对齐方式,可选值有flex-startflex-endcenterbaselinestretch
  • flex-wrap:控制是否换行。
  • flex-grow:控制元素的放大比例。
  • flex-shrink:控制元素的缩小比例。
  • flex-basis:设置元素的默认大小。
  • align-self:允许单个项目有不同于其他项目的对齐方式。
  • flex:是flex-growflex-shrinkflex-basis的简写属性。

CSS3 弹性盒子常用属性

属性描述
flex-direction设置主轴方向
justify-content设置主轴对齐方式
align-items设置副轴对齐方式
align-content
flex-wrap换行显示
flex-flowflex-direction和flex-wrap的简写
flex-grow
flex-shrink
flex-basis
flexflex-growflex-shrinkflex-basis的简写属性。
order
flex使用三要素
  • 设置主轴方向
  • 设置主轴对齐方式
  • 设置副轴对齐方式
flex-direction设置主轴方向

flex-direction是CSS弹性盒子(Flexbox)布局的一个关键属性,它用于设置弹性容器内部的主轴方向,即决定弹性项目在弹性容器中的排列方式。这个属性有几个可能的取值:

  • row:默认值,弹性项目水平排列,主轴方向从左到右。
  • row-reverse:弹性项目水平排列,但主轴方向从右到左。
  • column:弹性项目垂直排列主轴方向从上到下。
  • column-reverse:弹性项目垂直排列,但主轴方向从下到上。
justify-content主轴对齐方式
  • CSS中的justify-content属性用于设置弹性容器中的子元素在主轴上的对齐方式。它是CSS弹性盒子布局(Flexbox)中的一个关键属性,能够控制子元素如何在弹性容器的主轴上进行排列和分布。

justify-content属性可以接受以下几个值:

  • flex-start:子元素沿主轴起始位置对齐。这意味着第一个子元素将位于主轴的起始位置,而其他子元素将依次排列在后面。
  • flex-end:子元素沿主轴末尾位置对齐。最后一个子元素将位于主轴的末尾位置,而其他子元素将依次排列在之前。
  • center:子元素沿主轴居中对齐。所有子元素将在主轴上居中,两侧留有相等的空间。
  • space-between:子元素在主轴上均匀分布,首尾子元素与弹性容器两端对齐。子元素之间的间隔相等,但首尾子元素与容器边缘之间没有间隔。
  • space-around:子元素在主轴上均匀分布,两个子元素之间和首尾子元素与弹性容器两端之间的间隔相等。这会在子元素之间以及子元素与容器边缘之间都留下相同的空间。
  • space-evenly:子元素在主轴上均匀分布,包括首尾子元素与弹性容器两端之间的间隔。这确保了每个子元素(包括首尾子元素)之间的间隔都是相等的。
align-items设置副轴对齐方式
  • CSS中的align-items属性是用于指定弹性容器内项目在交叉轴(副轴)上的对齐方式的。这里的交叉轴通常指的是与主轴垂直的轴,例如在默认的flex-direction: row下,交叉轴就是垂直轴。

align-items属性接受以下值:

  • stretch:默认值,如果项目未设置高度或设为auto,将占满整个容器的高度。
  • center:项目在交叉轴中心对齐。在默认的flex-direction: row下,这意味着项目将垂直居中。
  • flex-start:项目与交叉轴的起点对齐。在flex-direction: row下,这相当于顶部对齐。
  • flex-end:项目与交叉轴的终点对齐。在flex-direction: row下,这相当于底部对齐。
  • baseline:项目与交叉轴上的第一行文字的基线对齐。
align-content
  • align-content属性在CSS中用于定义弹性容器内的各项在交叉轴上(通常是垂直方向)没有占用所有可用空间时的对齐方式。这个属性在弹性容器内的项目有多行时特别有用,因为它决定了行与行之间的空间分布和对齐方式。

该属性的取值包括:

  • stretch:默认值,元素被拉伸以适应容器。会拉伸容器内每个项目占用的空间,填充方式为给每个项目下方增加空白。
  • center:取消项目之间的空白并把所有项目垂直居中,使得元素位于容器的中心。
  • flex-start:取消项目之间的空白,并把项目放在容器顶部,使得元素位于容器的开头。
  • flex-end:项目在容器的结束边缘开始填充,即把项目放在容器底部。
  • space-between:使项目在垂直方向两端对齐,即上面的项目对齐容器顶部,最下面一个项目对齐容器底部,并留相同间隔在每个项目之间。
  • space-around:使每个项目上下位置保留相同长度空白,使得项目之间的空白为两倍的单个项目空白。

请注意,align-content属性生效的前提是必须对父元素设置属性display: flex,并且设置换行flex-wrap: wrap。这是因为这个属性是对容器内的项目起作用的,所以需要对父元素进行设置。

flex-wrap换行显示
  • flex-wrap 是 CSS 弹性盒子布局(Flexbox)中的一个重要属性,它决定了当弹性容器中的项目无法在单行或单列内完全显示时,是否允许换行或换列显示。换句话说,flex-wrap 控制着弹性项目是否应该折行以适应容器的大小。

flex-wrap 属性有三个可能的值:

  1. nowrap(默认值):弹性容器中的项目将尽量在一行或一列内显示,即使这会导致项目尺寸缩小或溢出容器。

  2. wrap:当弹性容器中的项目无法在单行或单列内完全显示时,它们会换行或换列到下一行或下一列。

  3. wrap-reverse:与 wrap 相反,项目会首先填充容器的末尾,然后再换行或换列到上一行或上一列。

例如,如果你有一个固定宽度的弹性容器,并且里面的项目数量是动态的,那么设置 flex-wrap: wrap; 可以确保当项目数量超出容器宽度时,它们会自动换行到下一行,而不是溢出容器或缩小到无法辨认。

flex-grow
  • flex-grow 是 CSS 弹性盒子布局(Flexbox)中的一个重要属性,它定义了当弹性容器有多余空间时,各个弹性项目应该如何放大以占据这些额外的空间。换句话说,flex-grow 决定了弹性项目在容器有多余空间时的放大比例。

以下是几个关于flex-grow属性的具体案例,这些案例将帮助你更好地理解这个属性是如何工作的:

案例一:等分剩余空间

假设你有一个弹性容器,其中包含三个子元素,你希望这三个子元素能够等分容器的剩余空间。

HTML:

<div class="flex-container">
  <div class="flex-item">1</div>
  <div class="flex-item">2</div>
  <div class="flex-item">3</div>
</div>

CSS:

.flex-container {
  display: flex;
}

.flex-item {
  flex-grow: 1; /* 所有项目都设置为1,它们将等分剩余空间 */
  /* 可以添加一些padding或border来区分不同的项目 */
}

在这个案例中,每个.flex-item都会根据flex-grow: 1的值来等分容器中的剩余空间。

案例二:不同比例的放大

如果你想要子元素按照不同的比例放大以填充剩余空间,你可以给它们设置不同的flex-grow值。

HTML:

<div class="flex-container">
  <div class="flex-item first">1</div>
  <div class="flex-item second">2</div>
  <div class="flex-item third">3</div>
</div>

CSS:

.flex-container {
  display: flex;
}

.flex-item {
  /* 假设这里有一些基础的样式或固定宽度 */
}

.first {
  flex-grow: 1; /* 第一个项目将占用一份的剩余空间 */
}

.second {
  flex-grow: 2; /* 第二个项目将占用两份的剩余空间 */
}

.third {
  flex-grow: 3; /* 第三个项目将占用三份的剩余空间 */
}

在这个案例中,.first.second.third将按照1:2:3的比例来放大并填充容器的剩余空间。

案例三:混合使用固定宽度和flex-grow

有时,你可能想要一些子元素具有固定宽度,而其他子元素则使用flex-grow来填充剩余空间。

HTML:

<div class="flex-container">
  <div class="flex-item fixed">固定宽度</div>
  <div class="flex-item grow">填充剩余空间</div>
</div>

CSS:

.flex-container {
  display: flex;
}

.fixed {
  width: 150px; /* 设置固定宽度 */
  flex-grow: 0; /* 不需要放大 */
}

.grow {
  flex-grow: 1; /* 填充剩余空间 */
}

在这个案例中,.fixed有一个固定的宽度,而.grow则使用flex-grow: 1来填充容器中的剩余空间。

这些案例展示了flex-grow属性的基本用法和如何与其他Flexbox属性结合使用来创建灵活的布局。通过调整flex-grow的值,你可以很容易地控制子元素如何分配容器的剩余空间。

flex-shrink
  • flex-shrink 是 CSS Flexbox 布局中的一个关键属性,它决定了当弹性容器空间不足时,弹性项目如何缩小以适应容器的大小。这个属性特别有用,因为在不同屏幕尺寸和设备类型下,弹性容器的大小可能会发生变化,而 flex-shrink 可以帮助确保项目能够适当地适应这些变化。

  • flex-shrink 的属性值是一个非负数字,它定义了项目的缩小比例。默认值是 1,这意味着当空间不足时,所有项目将等比例缩小。如果设置为 0,则该项目不会缩小,即使空间不足,它也会保持其原始大小(除非这会导致其他项目溢出容器)。

以下是一个使用 flex-shrink 的具体案例:

假设你有一个固定宽度的弹性容器,其中包含三个弹性项目,每个项目的默认宽度都超过了容器的宽度。如果不设置 flex-shrink 或将其设置为默认值 1,那么所有项目都会等比例缩小以适应容器。

HTML:

<div class="flex-container">
  <div class="flex-item">项目 1</div>
  <div class="flex-item">项目 2</div>
  <div class="flex-item">项目 3</div>
</div>

CSS:

.flex-container {
  display: flex;
  width: 300px; /* 容器宽度 */
}

.flex-item {
  flex-shrink: 1; /* 默认值,所有项目将等比例缩小 */
  width: 200px; /* 每个项目的默认宽度 */
  /* 可以添加一些padding或border来区分不同的项目 */
}
  • 在这个案例中,由于容器的宽度只有 300px,而每个项目的默认宽度是 200px,所以总共需要 600px 的空间。因此,所有项目都会缩小以适应容器。

然而,如果你想要某个项目在空间不足时不缩小,你可以将其 flex-shrink 设置为 0。

修改后的 CSS:

.flex-item {
  flex-shrink: 1; /* 除了特定的项目外,其他项目都等比例缩小 */
  width: 200px; /* 每个项目的默认宽度 */
}

.flex-item:first-child {
  flex-shrink: 0; /* 第一个项目不会缩小 */
}

在这个修改后的案例中,第一个项目(.flex-item:first-child)的 flex-shrink 被设置为 0,因此即使空间不足,它也会保持其原始宽度(200px)。而其他的项目则会缩小以适应容器,同时保持与第一个项目的相对位置。

flex-basis
  • flex-basis是CSS3中Flex布局模型中的一个属性,用于指定弹性盒子元素的初始主轴尺寸(main size)。这个属性定义了在分配多余空间之前,元素占据的主轴空间。换句话说,它决定了弹性盒子元素在主轴方向上所占用的空间大小。

  • flex-basis的取值可以是一个长度值(比如像素值)、百分比或者auto。当取值为auto时,元素的大小将根据弹性容器内部内容和其他成员共同决定。如果使用了flex-basis属性,则其在计算弹性容器中剩余可用空间时的优先级高于width和height属性。

  • 需要注意的是,如果元素不是弹性盒对象的元素,则flex-basis属性不起作用。此外,flex-basis属性与flex-grow和flex-shrink属性共同构成了Flexbox的弹性模型,使得开发者能够创建出既灵活又可控的布局。

order
  • CSS的order属性用于设置或检索弹性盒模型对象的子元素出现的顺序。它只影响弹性项目,对于非弹性项目的元素,order属性将不起作用。

  • order属性的值可以是整数,包括正整数和负整数,代表项目的序号组具有较低order值的弹性盒子或网格项目将首先显示,而具有最高值的项目将最后显示。如果两个项目的order值相同,那么它们在源代码中的顺序将决定它们的显示顺序。

此外,order属性还有以下可能的值:

  • initial:将属性设置为其默认值,即0。
  • inherit:从父元素继承该属性。

例如,假设你有一个弹性容器,其中包含几个弹性项目,你可以通过为这些项目设置不同的order值来控制它们在容器中的显示顺序。例如,你可以将一个原本在源代码中位于最后的项目设置为order: -1,使其在视觉上成为第一个项目。

Grid布局

  • Grid布局,也被称为网格布局,是一种基于二维网格的布局系统,旨在完全改变我们设计基于网格的用户界面的方式,弥补网页开发在二维布局能力上的缺陷。在Grid布局中,容器被划分为若干行和列,每个组件可以占据一个或多个网格。这种布局方式使得组件的位置和大小可以灵活调整。

  • 在父元素上设置display: grid | inline-grid | subgrid可以定义一个网格容器。

    • grid定义一个块级的网格容器
    • inline-grid定义一个内联的网格容器
    • subgrid则定义一个继承其父级网格容器的行和列的大小的网格容器,它是其父级网格容器的一个子项。

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

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

相关文章

5.9 mybatis之callSettersOnNulls作用

文章目录 1. 当callSettersOnNullstrue时2. 当callSettersOnNullsfalse时 在mybatis的settings配置参数中有个callSettersOnNulls参数&#xff0c;官方解释为&#xff1a;指定当结果集中值为 null 的时候是否调用映射对象的 setter&#xff08;map 对象时为 put&#xff09;方法…

SecureCRT日志记录的7个经典配置记录与14个环境变量(%Y-%M-%D_%H_%S_session.log %t )

每次更换电脑、主机或者环境都需要配置一遍SecureCRT的参数。感觉就最近十年都已经设置过上百次了。其实设置没什么特别的&#xff0c;只是经过不断地打磨&#xff0c;主打的就是一个经济实用。经常忘记&#xff0c;特此记录。 配置方式 建议直接配置默认session&#xff1a;…

error:0308010C:digital envelope routines::unsupported(问题分析)

error:0308010C:digital envelope routines::unsupported 情况一&#xff1a;就是网上大部分人说的node 17版本的问题 出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制&#xff0c;可能会对生态系统造成一些影响…

宝妈如何在家创造收入?五种兼职工作让你轻松赚钱!

许多宝妈为了陪伴孩子成长&#xff0c;毅然选择了全职妈妈的角色&#xff0c;然而&#xff0c;她们内心仍希望能有一份收入&#xff0c;实现经济独立。于是&#xff0c;寻找既能照顾家庭又能赚钱的工作成了她们的迫切需求。 然而&#xff0c;这样的需求也往往让宝妈们成为一些…

策略为王股票软件源代码\StkUI\View\BaseView.cpp-------显示股票基本资料的视图-------程序代码都在里面了

CString strHeader info.GetStockCode(); strHeader " "; /修改 strHeader info.GetStockName(); strHeader "\r\n\r\n "; GetEditCtrl().SetWindowText( strHeader ); GetEditCtrl().SetSel…

寻找心灵慰藉:这些平台上有最好的解压视频

在这个快节奏的社会中&#xff0c;解压视频成为了我们放松心情的小帮手。这些视频通常具有令人着迷的视觉效果和舒缓的背景音乐&#xff0c;能够帮助我们暂时脱离紧张的工作或生活状态。如果你正在寻找这样的视频&#xff0c;以下几个平台可以满足你的需求&#xff1a; 蛙学网…

AI在运维实践中的价值提升

在2024年的AI赛道上&#xff0c;利用大数据 、机器学习算法、人工智能来改善运维效率已成为软件运营商发展的新主张&#xff0c;通过AI在运维流程的洞察、决策和执行&#xff0c;从而提升效率、减少故障时间&#xff0c;优化用户体验。通过分析大量数据来识别趋势和模式&#x…

免费VPS云服务器汇总,最长永久免费使用

目前云服务器市场竞争很激烈&#xff0c;为了方便吸引上云&#xff0c;很多云计算服务商提供免费试用云服务器&#xff0c;下面给大家整理汇总一下免费VPS云服务器&#xff0c;最长永久免费使用&#xff01; 一、雨云&#xff08;优惠码:ABC&#xff09; 活动地址&#xff1a;…

Python爬虫-京东商品评论数据

前言 本文是该专栏的第68篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前,笔者有详细介绍京东滑块验证码的解决方法,感兴趣的同学,可以直接翻阅文章《Python如何解决“京东滑块验证码”(5)》进行查看。 而本文,笔者以京东商品详情页的评论数据为例,通过…

直播弹幕系统设计

本文仅提供思路参考&#xff0c;并非完备的详细设计。 特点 其实很类似IM即时通讯系统&#xff0c;是个变种&#xff0c;本质也是在一个空间内收发消息 消息及时性强&#xff0c;过期消息意义不大用户松散&#xff0c;随时来随时走可能有瞬时大批量弹幕&#xff08;比如比赛精…

整数在内存中的存储和内存操作函数

目录 整数在内存中的存储1. 整数在内存中的存储2. 大小端字节序和字节序判断2.1 什么是大小端?2.2 为什么有大小端 3. 练习3.1 请简述大端字节序和小端字节序的概念&#xff0c;设计⼀个小程序来判断当前机器的字节序。&#xff08;10分&#xff09;-百度笔试题3.2 练习23.3 练…

Linux三剑客-sed、awk、egrep(上)

一、知识梗概 二、正则表达式 定义&#xff1a;正则表达式是一种强大的文本处理工具&#xff0c;用于在文本中搜索符合特定模式的字符串。它由一系列特殊字符和普通字符组成&#xff0c;可以定义复杂的搜索模式。正则表达式被广泛应用于各种编程语言和文本处理工具中。 简单来…

【DNS】

文章目录 DNS域名解析系统&#xff08;Domain Name System&#xff09;DNS系统需要解决的问题DNS域名解析系统&#xff08;Domain Name System&#xff09;问题1&#xff1a;DNS名字空间(The DNS Name Space&#xff09;DNS名字空间(The DNS Name Space)DNS名字空间(The DNS Na…

解锁生成式 AI 的力量:a16z 提供的 16 个企业指南

企业构建和采购生成式AI方面的16项改变 生成式 AI 领域趋势洞察&#xff1a;企业构建和采购生成式 AI 的方式正在发生重大转变&#xff0c;具体表现在&#xff1a;* 专注于可信度和安全性&#xff1a;75% 的企业将信任和安全性视为关键因素。* 优先考虑可扩展性和灵活性&#x…

Go语言入门|包、关键字和标识符

目录 Go语言 包文件 规则 关键字 规则 标识符 规则 预定义标识符 Go语言 Go语言是一种静态类型、编译型和并发型的编程语言&#xff0c;由Google开发。Go的源代码文件以.go为扩展名&#xff0c;文件名通常与包名保持一致。一个Go文件可以包含多个顶级声明&#xff0c;…

WXML模板语法-条件与列表渲染

wx:if 在小程序中&#xff0c;使用wx:if"{{condition}}"来判断是否需要渲染该代码 也可以用wx:elif和wx:else来添加else判断 <!--pages/ifIndex/ifindex.wxml--> <view wx:if"{{type 1}}">男</view> <view wx:elif"{{type …

基于ICEEMDAN-SVD的信号去噪算法

一、代码原理 ICEEMDAN-SVD算法是一种结合了Improved Complete Ensemble Empirical Mode Decomposition with Adaptive Noise (ICEEMDAN) 和奇异值分解 (SVD) 的信号去噪方法。这种算法结合了两种先进的信号处理技术&#xff0c;旨在提高信号去噪的效果。以下是该算法的基本原…

深入理解信号上升沿与带宽的关系

信号的上升时间&#xff0c;对于理解信号完整性问题至关重要&#xff0c;高速pcb设计中的绝大多数问题都和它有关&#xff0c;很多信号完整性问题都是由信号上升时间短引起的&#xff0c;你必须对他足够重视。 信号上升时间并不是信号从低电平上升到高电平所经历的时间&#xf…

Ubuntu-22.04安装KVM虚拟机并安装Windows10

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、KVM是什么&#xff1f;二、安装步骤1.检查虚拟化2.查看KVM虚拟化3.安装KVM4.启用后台进程5.添加用户组6.重启电脑 三、使用步骤1.添加虚拟机2.配置虚拟机3.…

数据可视化高级技术Echarts(堆叠柱状图)

目录 一.如何实现 二.代码展示 1.stack名称相同&#xff08;直接堆叠&#xff09; 2. stack名称不相同&#xff08;相同的堆叠&#xff0c;不同的新生成一列&#xff09; 一.如何实现 数据堆叠&#xff0c;同个类目轴上系列配置相同的 stack 值可以堆叠放置。即在series中…