CSS 扫盲

news2024/11/25 11:59:23

✏️作者:银河罐头
📋系列专栏:JavaEE

🌲“种一棵树最好的时间是十年前,其次是现在”

目录

  • 引入方式
    • 内部样式
    • 内联样式
    • 外部样式
  • CSS 选择器
  • CSS 常用属性值
    • 字体属性
      • 设置字体
      • 大小
      • 粗细
      • 文字样式
    • 文本属性
      • 文本颜色
      • 文本对齐
      • 文本装饰
      • 文本缩进
      • 行高
    • 背景属性
      • 背景颜色
      • 背景图片
    • 圆角矩形
  • 元素的显示模式
  • CSS 盒子模型
    • 边框
    • 内边距
    • 外边距
  • 弹性布局

引入方式

内部样式

CSS 基本语法规则:

选择器 + 若干属性说明

<body>
    <p>
        这是一个段落
    </p>
    <!-- style 标签可以放到代码的任意位置-->
    <style>
        p {
            color:red;
        }
    </style>
</body>

image-20230220161147296

image-20230220161559603

{ } 里的 CSS 属性是可以写一个或者多个,每个属性都是一个键值对,键和值之间用 :分割,键值对之间用 ;分割,每个键值对可以独占一行,也可以不独占一行。

实际上,有 3 种写 CSS 的方式。

1.内部样式:使用 style 标签,直接把 css 写到 html 文件的中的。此时的 style 标签可以放到任何位置,一般建议放到 head 标签里面。

上面的就是内部样式

内联样式

2.内联样式:使用 style 属性,针对指定的元素设置样式(此时不需要写选择器,直接写属性键值对)这个时候样式只是针对当前元素生效。

<body>
    <p style="color:red;font-size: 40px;">
        这是一个段落
    </p>
    <p>
        这是另一个段落
    </p>
</body>

image-20230220162929156

内联样式的优先级比内部样式高。

<style> 
        p {
            color: green;
        }
    </style>
</head>
<body>
    <p style="color:red;font-size: 40px;">
        这是一个段落
    </p>
    <p>
        这是另一个段落
    </p>
</body>

image-20230220163131021

外部样式

3.外部样式:把 css 代码单独作为一个.css 文件,再通过 link 属性让 html 引入该 css 文件

<link rel="stylesheet" href="style.css">
</head>
<body>
    <p>
        这是一个段落
    </p>
    <p>
        这是另一个段落
    </p>
</body>

image-20230220163438713

实际开发中,一般是使用 外部样式 来写 CSS 让 HTML 和 CSS 分离开,相互不影响.

当前阶段以内部样式为主,这样写简单方便

CSS 选择器

1.标签选择器

在 { 前面写标签名字,此时意味着会选中当前页面中所有的指定标签。

<body>
    <style>
        p {
            color: yellow;
            font-size: 40px;
        }
    </style>
    <p>
        这是一个段落
    </p>
    <p>
        这是另一个段落
    </p>
    <div>
        这是一个 div
    </div>
</body>

image-20230220164247315

把所有的 p 标签都设置成 黄色。

  • 如果想把 这些 p 标签设成不同颜色呢?

2.类选择器

更好的选择,可以创建 CSS 类手动指定哪些元素应用这个类。

此处只说的类和 Java 中的面向对象的类无关。CSS 所谓的类,就是把一组 CSS 属性起了个名字,方便别的地方引用。

<body>
    <style>
        /* 此处定义了一个 css 类, 类的名字叫做 one, 类的名字需要以 . 开头*/
        .one {
            color: red;
        }
        .two {
            color: green;
        }
        .three {
            color: blue;
        }
        .four {
            font-size: 40px;
        }
    </style>
    <div class="one four">
        这是第一个 div
    </div>
    <div class="one">
        这是第二个 div
    </div>
    <div class="three">
        这是第三个 div
    </div>
</body>

image-20230220165333744

一个类可以被一个元素引用,也可以被多个元素引用。

一个元素可以引用一个类,也可以引用多个类。

  • 层叠

CSS 中文名:层叠样式表。

一个元素是可以被应用多组样式的,这些样式就好像一层一层的叠加上去。

image-20230220170117821

第一个 div 应用的样式,这里有个font - size。

div 应用的另一个样式, color。

最终效果既有 font - size 又有 color,相当于叠加在一起了。

3.ID选择器

html 页面中的每个元素, 都是可以设置一个唯一的 ID 的作为元素的身份标识。给元素安排ID之后,就可以通过ID来选中对应的元素了。

	#oneDiv {
            color: red;
	}
</style>
<div id="oneDiv">
    这是一个 div
</div>
<div id="twoDiv">
    这是另一个 div
</div>

image-20230220170948444

类选择器,是可以让多个元素应用同一个类的。

ID选择器,则只能针对唯一的元素生效,因为页面里只能有唯一的ID.

上面三个选择器都属于简单的基础选择器,除此之外 CSS 还支持一些更复杂的选择器,复杂选择器就是把前面的基础选择器组合一下

4.后代选择器

把多个简单的基础选择器组合一下,可以是 标签,类,ID选择器 的任意组合。

        ul li {//含义就是先找页面中所有的 ul,然后在这些 ul 里再找所有的 li
            color: red;
        }
    </style>
    <ol>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
    </ol>
    <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
    </ul>

image-20230220171535725

li,只要是 ul 的后代即可,不一定非得是 子元素

5.子选择器

也是把多个简单的基础选择器组合,标签、类、ID选择器任意组合。

只是找匹配的子元素。

/*选择器1 > 选择器2{
	属性
}
*/

.one>li {
	color: red;
}
        .one>a {
            color: red;
        }
    </style>
    <div class="one">
        <a href="#">链接1</a>
        <p>
            <a href="#">链接2</a>
        </p>
    </div>

image-20230220173009955

6.并集选择器

多种选择器,应用了同样的样式。

选择器一,选择器二{
	属性...
}
		.two, .three{
            font-size: 40px;
        }
    </style>
    <div class="one">
        <a href="#" class="two">链接1</a>
        <p>
            <a href="#" class="three">链接2</a>
        </p>
    </div>

image-20230220173803458

7.伪类选择器

复合选择器的特殊用法。

前面的选择器是选中某个元素,伪类选择器选中某个元素的某个特定状态。

:hover 鼠标悬停时候的状态

:active 鼠标按下时候的状态

		.one:hover {
            color: red;
            font-size: 100px;
        }
        .one:active {
            color: green;
            font-size: 200px;
        }
    </style>
    <div class="one">
        这是一个 div
    </div>

CSS 常用属性值

具体样式的设置。

样式涵盖很多方面的内容,包括不限于:大小,位置,颜色,形状,边距,边框,特殊滤镜,过渡效果,动画…

字体属性

设置字体

font - family 当前使用哪种字体来显示

		.one {
            font-size: 40px;
            font-family: '微软雅黑';
        }
        .two {
            font-size: 40px;
            font-family: '宋体';
        }
        .three {
            font-size: 40px;
            font-family: '黑体';
        }
        .four {
            font-size: 40px;
            font-family: '华文行楷';
        }
    </style>
    <div class="one">
        这是一个 div
    </div>
    <div class="two">
        这是一个 div
    </div>
    <div class="three">
        这是一个 div
    </div>
    <div class="four">
        这是一个 div
    </div>

image-20230220180123514

这个属性指定的字体必须要求是系统已经安装了的。

如果你要指定一些特殊的字体,搞个火星文字体。系统上没有则不能正确显示这种情况,一般是需要通过浏览器请求对应的服务器获取到指定字体文件,才能够设置。

大小

font - size

浏览器的每个文字都可以视为是一个方框,如果是英文阿拉伯数字方框比较窄,如果是中文一般就是一个正方形。

设置 font size=20px ,文字框高度是20px

如果拿着一个QQ截图测量一下文字的尺寸,可能发现实际的尺寸不一定是你设置的大小,如果不一样,注意你的浏览器的缩放设置和显示器的缩放设置

粗细

font - weight

实际设置值的时候,有两种典型的设置风格:

1.使用单词

2.使用数字

https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-weight

image-20230220181520595

此时就可以把一个 div 设置成 h1 类似了,也可以把 h1 设置成 div 类似了。

文字样式

i 标签和 em 标签可以让文字倾斜。

font - style

		.one {
            font-size: 40px;
            font-family: '微软雅黑';
            font-weight: 900;
            font-style: italic;
        }
        .two {
            font-size: 40px;
            font-family: '宋体';
        }
        .three {
            font-size: 40px;
            font-family: '黑体';
        }
        .four {
            font-size: 40px;
            font-family: '华文行楷';
        }
        h1 {
            font-weight: 400;
            font-size: 18px;
        }
    </style>
    <div class="one">
        这是一个 div
    </div>
    <div class="two">
        这是一个 div
    </div>
    <div class="three">
        这是一个 div
    </div>
    <div class="four">
        这是一个 div
    </div>
    <h1>
        这是一个 h1
    </h1>

image-20230220182922368

文本属性

文本颜色

RGB

计算机中针对 R, G, B 三个分量, 分别使用一个字节表示(8个比特位, 表示的范围是 0-255, 十六进制表示 为 00-FF).

数值越大, 表示该分量的颜色就越浓. 255, 255, 255 就表示白色; 0, 0, 0 就表示黑色.

image-20230220182841367

此处的颜色还可以用 16 进制来表示

image-20230220224430217

还有一种缩写形式,如果每个分量它的16进制数字相同,,就可以把 6 位 16 进制数字缩写成 3 位16进制

image-20230220224631039

#ff0000 => #f00

颜色还可以用单词来表示。red, green, blue, orange, black, white…

不仅仅是 color 会遵守这套规则,其他的和颜色相关的属性,也是这样表示颜色的。

文本对齐

text-align: right;//右对齐
text-align: center;//居中

文本装饰

text-decoration: [值];

常用取值:

underline 下划线. [常用]

none 啥都没有. 可以给 a 标签去掉下划线.

overline 上划线. [不常用]

line-through 删除线 [不常用]

  • none 可以去掉默认的样式
		a {
            text-decoration: none;
        }
	</style>
    
    <a href="#">这是一个 a 标签</a>

image-20230220230137551

超链接自带下划线,而 none 可以去掉这个下划线。

文本缩进

每个段落,首行缩进 2 个文字。

text - indent

text-indent: 2em;

假设文字大小是 40 px,

1 em => 40 px;

2 em => 80 px;

文本缩进的值可以是 负数,往左缩进。

行高

行高 = 文字高度 + 行间距

image-20230221112020773

背景属性

背景颜色

background - color

背景图片

bakcground - image: url(图片路径);

当引入背景图片之后,默认情况下图片是平铺的。(就像铺瓷砖一样)

		.one {
            font-size: 40px;
            font-family: '微软雅黑';
            font-weight: 900;
            font-style: normal;
            color: #0f0;
            text-align: left;
            text-decoration: none;
            text-indent: -2em;
            line-height: 60px;
            /* background-color: rgb(0, 128, 0); */
            background-image: url(头像.jpg);
            height: 2000px;
        }
        a {
            text-decoration: none;
        }
    </style>
    <div class="one">
        这是一个 div <br>
        这是一个 div div Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique aliquam ducimus corrupti, mollitia iste asperiores aut temporibus molestiae porro, cum eum, ipsa quod consectetur accusantium ad id dolorum autem qui!
    </div>
    <a href="#">这是一个 a 标签</a>

image-20230221112954597

如果不想平铺,使用

background - repeat: none;

image-20230221113218647

禁止平铺之后,发现图片出现在左上角,如果想要让图片居中?

background-position: center center;//水平居中,垂直居中
background-position: top center;//上中

还可以通过坐标来控制:

background-position: 10px 50px;

image-20230221113939222

image-20230221114114999

设置背景图的尺寸

background - size

contain: 尽量长

cover:尽量宽

圆角矩形

通过 border-radius 使边框带圆角效果.

border-radius: 10px;//内切圆半径是 10px,这个值越大,弧就越明显

image-20230221115730631

元素的显示模式

display

display: block; 块级元素

h1-h6, p, div, ul, ol, li

display: inline; 行内元素

u, b, span, i

任何一个 html 标签的显示模式(块级/行内)都是可以设置的。

  • 关于块级元素和行内元素的区别:

1.块级元素独占一行,行内元素不独占一行

2.块级元素高度,宽度,内外边距,都是可以设置的。行内元素,高度宽度行高 无效,内边距有效,外边距有时候有效有时候无效。

3.块级元素默认宽度是和父元素一样宽,而行内元素默认宽度是和里面的内容一样宽

块级元素比较正常,行内元素问题多。一般如果需要的话,都是把行内元素转换成块级元素

CSS 盒子模型

描述了 html 元素基本的布局规则。

image-20230221124524684

任何一个 HTML 元素(块级元素)都是一个矩形的盒子,盒子里面可以放内容(可以是文本,其他元素)

边框

border 属性,这是直接设置了 4 个方向。

还可以使用

border - left

border - right

border - top

border - bottom

分别设置 4 个方向。

设置边框要设置 3 个方面:

1.边框的粗细

2.边框的颜色

3.边框的风格(实线,虚线,其他的线…)

dashed 虚线

		.two {
            width: 200px;
            height: 100px;
            background-color: orange;
            color: #fff;
            text-align: center;
            line-height: 100px;
            border-radius: 10px;
            border: 5px  black solid;
        }
    </style>
    <div class="two">
        这是一个 div
    </div>

image-20230221125648513

image-20230221125901830

边框默认会撑大盒子,这里的 width 和 height 指的是内容的尺寸。

很多时候不希望撑大盒子,可能会影响元素和其他元素的相对位置。

还可以使用专门的属性,防止盒子被撑大

box-sizing: border-box;

设置了该属性,此时边框就不会撑大盒子了。

内边距

padding 指的是内容和边框之间的距离。

padding: 10px;表示 4 个方向都是 10px
padding: 10px 20px;//上下边距是 10px,左右边距是 20px
padding: 10px 20px 30px 40px;//上右下左(顺时针)

外边距

设置的是元素和元素之间的距离

margin 的写法和 padding 差不多,也是可以分四个方向来设置

margin: 10px;表示 4 个方向都是 10px
margin: 10px 20px;//上下外边距是 10px,左右外边距是 20px
margin: 10px 20px 30px 40px;//上右下左(顺时针)

margin 特殊用法:把 margin - left 和 margin - right 设置为 auto,让浏览器自动调节,此时该元素就能够在父元素内部居中放置。(水平方向上有效)

通过 边框,内边距,外边距 这几个属性就可以控制元素之间/元素和内容之间相对位置。

弹性布局

弹性布局可以解决"水平方向排列"问题。

用来实现页面布局的。

行内元素虽然是在水平方向排列的,但是不适合进行水平布局。因为尺寸边距啥的不太可控。使用弹性布局是更合适的。

行内块元素可以设置尺寸,边距也生效,但是默认不独占一行。

行内块元素和行内元素一样,都会把源码中的换行当成一个空格,也会对页面元素布局产生不必要的影响。

1.开启弹性布局

display: flex;

给要水平排列的元素的父元素设置 flex.

此时,弹性容器里面的元素则不再是"块级",“行内元素”,而是成为了"弹性元素",是遵守弹性布局的。可以设置尺寸和边距。

2.设置这些元素的水平方向的排列方式。

justify-content: flex-start;
justify-content: flex-end;
justify-content: center;
justify-content: space-around;
justify-content:
		div {
            width: 100%;
            height: 150px;
            background-color: red;
            display: flex;
            justify-content: space-between;
        }
        div>span {
            background-color: green;
            width: 100px;
        }
    </style>
    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span>4</span>
        <span>5</span>
    </div>

image-20230221151630539

如图为 justify-content: space-around;

3.设置这些元素的垂直方向的排列方式。

align-items: flex-end;
align-items: center;
		div {
            width: 100%;
            height: 150px;
            background-color: red;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        div>span {
            background-color: green;
            width: 100px;
            height: 100px;
        }
    </style>
    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span>4</span>
        <span>5</span>
    </div>

image-20230221152047062

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

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

相关文章

1640_MIT 6.828 fork函数的功能以及相关代码分析

全部学习汇总&#xff1a; GitHub - GreyZhang/g_unix: some basic learning about unix operating system. 继续分析之前看到的一段代码&#xff0c;先梳理一下这里遇到的fork函数的应用。 1. 这个是属于系统调用类的接口&#xff0c;也是这一段时间我看到的第一个这种类型的接…

Python3实现写作

导语T_T没有科研梦想的人半夜过来水篇文章~~~让Python学会写写歌&#xff0c;创创作~~~纯属娱乐~~~改编自PyTorch官网的一个教程&#xff0c;不过我用TF写的&#xff0c;然后生成英文变成了生成中文~~~Lets Go~~~相关文件百度网盘下载链接: https://pan.baidu.com/s/1VUEFR82Cq…

一个 适用 vue3 ts h5移动端 table组件

vue3-h5-table 介绍 适用于 vue3 ts 的 h5 移动端项目 table 组件 支持 左侧固定 滑动 每行点击回调 支持 指定列排序 链接 &#xff1a;https://github.com/duKD/vue3-h5-table 效果 props说明minTableHeight表格最小高度 可选 默认600rowNum表格显示几行 可选 默认 6he…

使用微软新必应(New Bing)AI机器人生成树莓派Pico W开发板MicroPython应用程序

微软新必应是一款由人工智能驱动的AI搜索引擎&#xff08;基于Chat GPT4.0的先进自然语言生成模型&#xff09;&#xff0c;它能与用户进行流畅、自然、有趣的对话&#xff0c;并提供可靠、及时的搜索结果&#xff0c;以及回答用户的各种问题。我们可以使用新必应生成程序代码、…

MySQL workbench基本查询语句

1.查询所有字段所有记录 SELECT * FROM world.city; select 表示查询&#xff1b;“*” 称为通配符&#xff0c;也称为“标配符”。表示将表中所有的字段都查询出来&#xff1b;from 表示从哪里查询&#xff1b;world.city 表示名为world的数据库中的city表&#xff1b; 上面…

13 node 程序后台执行加上 tail 命令, 中断 tail 命令, 同时也中断了 node 程序

前言 呵呵 最近帮朋友解决问题[2022.09.08] 需要启动一个 node 程序, 然后 需要一个 startUp.sh 脚本 然后 反手写了一个过去, 按道理 来说 应该是 后台启动了对应的 node 程序, 然后将 标准输出, 错误输出 输出到 logs/nohup.log 日志文件中, 然后基于 tail 命令 来查看 …

【Kafka】MM2同步Kafka集群时如何自定义复制策略(ReplicationPolicy)

文章目录需求准备工作自定义复制策略编译代码需求 使用MM2同步集群数据&#xff0c;topic名称不能变&#xff0c;默认的复制策略为&#xff1a;DefaultReplicationPolicy&#xff0c;这个策略会把同步至目标集群的topic都加上一个源集群别名的前缀&#xff0c;比如源集群别名为…

设计模式-第13章(状态模式)

状态模式状态模式状态模式的好处和用处工作状态状态模式 状态模式&#xff08;State&#xff09;&#xff0c;当一个对象的内在状态改变时允许改变其行为&#xff0c;这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况…

【大数据】HDFS客户端命令行(hdfs dfs)详细使用说明

DFS命令使用概览使用说明lsdfducountappendToFilecatchecksumchgrpchmodchownconcatcopyFromLocalcopyToLocalcpcreateSnapshotdeleteSnapshotexpungefindgetgetfaclgetfattrgetmergeheadmkdirmoveFromLocalmoveToLocalmvputrenameSnapshotrmrmdirsetfaclsetfattrsetrepstattai…

实现VOC数据集与COCO数据集格式转换

实现VOC数据集与COCO数据集格式转换2、将voc数据集的xml转化为coco数据集的json格式2、COCO格式的json文件转化为VOC格式的xml文件3、将 txt 文件转换为 Pascal VOC 的 XML 格式<annotation><folder>文件夹目录</folder><filename>图片名.jpg</file…

2020蓝桥杯真题凯撒加密 C语言/C++

题目描述 给定一个单词&#xff0c;请使用凯撒密码将这个单词加密。 凯撒密码是一种替换加密的技术&#xff0c;单词中的所有字母都在字母表上向后偏移 3 位后被替换成密文。即 a 变为 d&#xff0c;b 变为 e&#xff0c;⋯&#xff0c;w 变为z&#xff0c;x 变为 a&#xff0…

【QT网络编程】实现UDP协议通信

文章目录概要&#xff1a;本期主要讲解QT中对UDP协议通信的实现。一、UDP协议通信二、Qt中UDP协议的处理1.QUdpSocket三、Qt实现UDP通信1.客户端2.服务器端结尾概要&#xff1a;本期主要讲解QT中对UDP协议通信的实现。 一、UDP协议通信 Internet 协议集支持一个无连接的传输协…

SprintBoot打包及profile文件配置

打成Jar包 需要添加打包组件将项目中的资源、配置、依赖包打到一个jar包中&#xff0c;可以使用maven的package&#xff1b;运行: java -jar xxx(jar包名) 操作步骤 第一步: 引入Spring Boot打包插件 <!--打包的插件--> <build><!--修改jar的名字--><fi…

认识vite_vue3 初始化项目到打包

从0到1创建vite_vue3的项目背景效果vite介绍&#xff08;对比和vuecli的区别&#xff09;使用npm创建vitevitevuie3创建安装antdesignvite自动按需引入&#xff08;vite亮点&#xff09;请求代理proxy打包背景 vue2在使用过程中对象的响应式不好用新增属性的使用$set才能实现效…

FPGA 20个例程篇:20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波(二)

通过上面的介绍相信大家对数字变频已经有了一个较为整体性的认识&#xff0c;下面笔者来对照XILINX的DDS IP核对数字变频技术展开更进一步的说明&#xff0c;做到了理论和实践很好地结合&#xff0c;这样大家再带入Modelsim进行仿真测试就不仅掌握了数字变频的理论知识&#xf…

【Linux】网络原理

本篇博客让我们一起来了解一下网络的基本原理 1.网络发展背景 关于网络发展的历史背景这种东西就不多bb了&#xff0c;网上很容易就能找到参考资料&#xff0c;我的专业性欠缺&#xff0c;文章参考意义也不大。这里只做简单说明。 网络发展经过了如下几个模式 独立模式&…

创建线程的三种方法

文章目录1、创建一个类实现Runnable接口&#xff0c;并重写run方法。2、创建一个类继承Thread类&#xff0c;并重写run方法。3、实现Callable接口&#xff0c;重写call()方法&#xff0c;这种方式可以通过FutureTask获取任务执行的返回值。4、run()方法和start()方法有什么区别…

14 Day:同步锁与操作系统输入输出

前言&#xff1a;在上一期的线程章节中&#xff0c;我们的线程输出貌似有大问题&#xff0c;今天我们便要来学习同步锁来解决这个问题&#xff0c;同时再次基础上拿下键盘输入&#xff0c;实现操作系统的输入和输出。从今天开始我们的操作系统不在是一块“看板”了&#xff01;…

Python|数学|贪心|数组|动态规划|单选记录:实现保留3位有效数字(四舍六入五成双规则)|用Python来创造一个提示用户输入数字的乘法表|最小路径和

1、实现保留3位有效数字&#xff08;四舍六入五成双规则&#xff09;&#xff08;数学&#xff0c;算法&#xff09; 贡献者&#xff1a;weixin_45782673 输入&#xff1a;1234 输出&#xff1a;1234 12 12.0 4 4.00 0.2 0.200 0.32 0.320 1.3 1.30 1.235 1.24 1.245 1.24 1.…

Docker 入门建议收藏 第一部分

一、Docker 是什么&#xff1f; Docker&#xff0c;翻译过来就是码头工人 Docker是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中&#xff0c;然后发布到任何流行的Linux机器上&#xff0c;也可以实现虚拟化。容器完全使用沙盒…