CSS--学习

CSS

1简介

1.1定义

层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。

1.2 特性

  • 继承性
    子级默认继承父级的文字控制属性。
  • 层叠性
    • 相同的属性会覆盖:后面的 CSS 属性覆盖前面的 CSS 属性
    • 不同的属性会叠加:不同的 CSS 属性都生效
  • 也叫权重,当一个标签使用了多种选择器时,基于不同种类的选择器的匹配规则
    • 选择器优先级高的样式生效
    • 优先级顺序:通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important

2基础语法

2.1引用方式

  • 内部样式表
    CSS 代码写在 style 标签里面
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- 放置在head标签内书写样式 --><style></style>
</head>
  • 外部样式表:开发使用
    CSS 代码写在单独的 CSS 文件中(.css),在 HTML 使用 link 标签引入
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- 方式二:引入css文件 --><link rel="stylesheet" href="./css/引入样式.css">
</head>
  • 行内样式表
    CSS 写在标签的 style 属性值里
<div style="color: red; font-size:20px;">这是 div 标签</div>

2.2选择器

作用:查找标签,设置样式

2.2.1基础选择器
  • 标签选择器
    作用:使用标签名作为选择器 → 选中同名标签设置相同的样式。
 p {color: red;}语法:标签名 {样式}
  • 类选择器
    作用:查找相应class标签,差异化设置标签的显示效果。这里要在相应标签添加 class=“类名”,一个标签有多个类名,类名间用空格隔开
 .red {color: red;}语法:类名 {样式}
  • id 选择器
    作用:查找相应id标签,差异化设置标签的显示效果。这里要在相应标签添加 id=“id名”,一个标签只有id名
 #id{color: red;}语法:#id名 {样式}
  • 通配符选择器
    作用:查找页面所有标签,设置相同样式
* {color: red;
}
2.2.2 复合选择器

由两个或多个基础选择器,通过不同的方式组合而成。
作用:更准确、更高效的选择目标元素(标签)。

  • 后代选择器
    选中某元素的后代元素。
语法:父选择器 子选择器 { CSS 属性},父子选择器之间用空格隔开。
div span {color: red;
}
  • 子代选择器
    选中某元素的子代元素(最近的子级)。
语法:父选择器 > 子选择器 { CSS 属性},父子选择器之间用 > 隔开。
div > span {color: red;
}
  • 并集选择器
    选中多组标签设置相同的样式。
语法:选择器1, 选择器2, …, 选择器N { CSS 属性},选择器之间用 , 隔开。
div,
p,
span {color: red;
}
  • 交集选择器
    选中同时满足多个条件的元素。
语法:选择器1选择器2 { CSS 属性},选择器之间连写,没有任何符号。
p.box {color: red;
}
  • 伪类选择器
    伪类表示元素状态,选中元素的某个状态设置样式。
语法:选择器:hover { CSS 属性 }
a:hover {color: red;
}
2.2.3 进阶选择器
  • 结构伪类选择器
    作用:根据元素的结构关系查找元素。
    伪类状态
选择器说明
E:first-child寻找 第一个E元素
E:last-child寻找 最后一个E元素
E:nth-child(N)寻找 第N个E元素(索引从1开始)
语法:符合选择器:结构伪类选择器 { CSS 属性 }
li:first-child {background-color: green;
}

nth-child(N)选择器中的N可以根据公式查询 n取值从0 开始
偶数2n 奇数2n - 1 5的倍数5n 5以后的标签n + 5 五以前5 - n

  • 伪元素选择器
    作用:创建虚拟元素(伪元素),用来摆放装饰性的内容。
    伪元素分类
    |选择器| 说明 |
    |–|–|
    | E:before | 在E元素最前面添加一个伪元素|
    | E:after | 在E元素最后面添加一个伪元素|
    注意点:
  • 必须设置 content: ””属性,用来 设置伪元素的内容,如果没有内容,则引号留空即可
  • 伪元素默认是行内显示模式
  • 权重和标签选择器相同
语法:符合选择器:伪元素选择器 { CSS 属性 }
div::before {content: "before 伪元素";
}
div::after {content: "after 伪元素";
}

2.3 文字属性

  • 字体大小
    属性名:font-size
    属性值:文字尺寸,PC 端网页最常用的单位 px
p {font-size: 16px;}
  • 字体粗细
    属性名:font-weight
    属性值
    • 400(normal) 正常
    • 700(bold)加粗
p {/* 不加粗 */font-weight: 400;/* 加粗 */font-weight: 700;}
  • 字体样式(是否倾斜)
    属性名:font-style
    属性值
    • 正常(不倾斜):normal
    • 倾斜:italic
p {/* 不加粗 */font-style: normal ;/* 倾斜 */font-style: italic;}
  • 行高
    属性名:line-height
    属性值:数字 + px
    文字垂直居中的方法:行高属性值等于盒子高度属性值
p {line-height: 100px;}
  • 字体族
    属性名:font-family
    属性值:字体名
p {font-family: Microsoft YaHei,Heiti SC;}

font-family属性值可以书写多个字体名,各个字体名用逗号隔开,执行顺序是从左向右依次查找

  • 字体复合属性
    属性名:font
    属性值:是否倾斜 是否加粗 字号/行高 字体(必须按顺序书写)
div {font: italic 700 30px/2 楷体;
}
  • 文本缩进
    属性名:text-indent
    属性值:数字 + em(推荐:1em = 当前标签的字号大小)
p{text-indent: 2em;
}
  • 文本对齐方式
    属性名:text-align
    属性值
    • left: 左对齐(默认)
    • right:右对齐
    • center:居中对齐
p{text-align: center;
}
  • 文本修饰线
    属性名: text-decoration
    属性值
    • none: 无
    • underline: 下滑线
    • line-through: 删除线
    • overline: 上划线
p{text-decoration: none;
}
  • 字体颜色
    属性名:color
    属性值
    • 颜色名:颜色单词
    • rgb表示法:rgb(r, g, b)
    • rgba表示法:rgba(r,g,b,a)
    • 十六进制表示法: #RRGGBB
p{color: red;
}

2.4 背景属性

  • 背景色
    属性名:background-color
    属性值: 颜色四种取值的一种即可
body{background-color: red;
}
  • 背景图
    属性名:background-image(bgi)
    属性值:url(背景图 URL)
div{background-image: url(./images/1.png);
}

背景图默认有平铺(复制)效果。

  • 背景图平铺方式
    属性名:background-repeat(bgr)
    属性值
    • no-repeat: 不平铺
    • repeat: 平铺
    • repeat-x: 水平平铺
    • repeat-y: 垂直平铺
div{background-repeat: no-repeat;
}
  • 背景图位置
    属性名:background-position(bgp)
    属性值:水平方向位置 垂直方向位置
    • 坐标(数字 + px,正负都可以)
      水平:正数向右;负数向左
      垂直:正数向下;负数向上
    • 关键字
      • left , right, center, top, bottom
div{background-position: center bottom;background-position: 50px -100px;background-position: 50px center;
}
  • 背景图缩放
    属性名:background-size(bgz)
    属性值
    • 关键字
      • cover:等比例缩放背景图片以完全覆盖背景区,可能背景图片部分看不见
      • contain:等比例缩放背景图片以完全装入背景区,可能背景区部分空白
    • 百分比:根据盒子尺寸计算图片大小
    • 数字 + 单位(例如:px)
div{background-size: cover;background-size: contain;
}
  • 背景图固定
    属性名:background-attachment(bga)
    属性值:fixed
div{background-attachment: fixed;
}
  • 背景复合属性
    属性名:background(bg)
    属性值:背景色 背景图 背景图平铺方式 背景图位置/背景图缩放 背景图固定(空格隔开各个属性值,不区分顺序)
div{background: pink url(./images/1.png) no-repeat right center/cover;
}

2.5 显示模式

标签(元素)的显示方式。
作用:布局网页的时候,根据标签的显示模式选择合适的标签摆放内容

  • 块级元素
    • 独占一行
    • 宽度默认是父级的100%
    • 添加宽高属性生效
  • 行内元素
    • 一行可以显示多个
    • 设置宽高属性不生效
    • 宽高尺寸由内容撑开
  • 行内块元素
    • 一行可以显示多个
    • 宽高尺寸也可以由内容撑开
    • 设置宽高属性生效
      转换显示模式

属性名:display
属性值

    • block 块级
    • inline-block 行内块
    • inline 行内
span{display: block;
}

3 盒子模型

盒子模型重要组成部分:

  • 内容区域 – width & height
  • 内边距 – padding(出现在内容与盒子边缘之间)
  • 边框线 – border
  • 外边距 – margin(出现在盒子外面)
    *在这里插入图片描述

3.1 边框

  • 全方向边框
    属性名:border(bd)
    属性值:边框线粗细 线条样式 颜色(不区分顺序)
    常见线条样式
属性值样式
solid实线
dashed虚线
dotted点线
div{border: 5px solid brown;
}

以上默认添加四个方向的边框

  • 设置单方向边框线
    属性名:border-方位名词(bd+方位名词首字母,例如,bdl)
    属性值:边框线粗细 线条样式 颜色(不区分顺序)
div {border-top: 2px solid red;border-right: 3px dashed green;border-bottom: 4px dotted blue;border-left: 5px solid orange;}

3.2 内边距

作用:设置 内容 与 盒子边缘 之间的距离。
属性名:padding / padding-方位名词
作用:设置 内容 与 盒子边缘 之间的距离。
属性名:padding / padding-方位名词
属性值:数字+px

div {padding-top: 10px;padding-right: 20px;padding-bottom: 40px;padding-left: 80px;
}

padding 多值写法

多值写法示例含义
一个值padding: 10px四个方向内边距均为10px
两个值pading: 10px 80px上下:10px 左右80px
三个值pading: 10px 40px 80px上:10px 左右:40px 下:80px
四个值pading: 10px 20px 40px 80px上:10px 右:20px 下 :40px 左: 80px

记忆技巧:从上开始顺时针赋值,当前方向没有数值则与对面取值相同。

3.3 盒子尺寸

  • 默认情况
    盒子尺寸 = 内容尺寸 + border 尺寸 + 内边距尺寸
  • 结论:给盒子加 border / padding 会撑大盒子
  • 解决
    • 手动做减法,减掉 border / padding 的尺寸
    • 內减模式:box-sizing: border-box

3.4 外边距

作用:拉开两个盒子之间的距离
属性名:margin
属性值:与 padding 属性值写法、含义相同

div {/* 版心居中 */margin: 0 auto;
}

3.5 元素溢出

作用:控制溢出元素的内容的显示方式。
属性名:overflow
属性值:

  • hidden: 溢出隐藏
  • scroll: 溢出滚动
  • auto: 溢出滚动(内容溢出才有滚动)

3.6 圆角

作用:设置元素的外边框为圆角。
属性名:border-radius
属性值:数字+px / 百分比(圆角半径)

img {border-radius: 100px;border-radius: 50%;
}

3.8 阴影

作用:给元素设置阴影效果
属性名:box-shadow
属性值:X 轴偏移量 Y 轴偏移量 模糊半径 扩散半径 颜色 内外阴影

div {box-shadow: 2px 5px 10px 0 rgba(0, 0, 0, 0.5) inset;
}

3.7 特殊现象

  • 合并现象
    场景:垂直排列的兄弟元素,上下 margin 会合并
    现象:取两个 margin 中的较大值生效

  • 外边距塌陷(重叠)问题
    场景:父子级的标签,子级的添加 上外边距 会产生塌陷问题
    现象:导致父级一起向下移动
    解决办法

    1. 取消子级margin,父级设置padding
    2. 父级设置 overflow: hidden
    3. 父级设置 border-top
  • 行内元素 – 内外边距问题
    场景:行内元素添加 margin 和 padding,无法改变元素垂直位置
    解决方法:给行内元素添加 line-height 可以改变垂直位置

span {/* margin 和 padding 属性,无法改变垂直位置 */margin: 50px;padding: 20px;/* 行高可以改变垂直位置 */line-height: 100px;
}

4 布局

4.1 标准流

标准流也叫文档流,指的是标签在页面中默认的排布规则

4.2 浮动

作用:让块元素水平排列。
属性名:float
属性值

  • left:左对齐
  • right:右对齐
    特点:
  • 浮动后的盒子顶对齐
  • 浮动后的盒子具备行内块特点
  • 浮动后的盒子脱标,不占用标准流的位置

4.3 Flex 布局

Flex 布局也叫弹性布局,是浏览器提倡的布局模型,非常适合结构化布局,提供了强大的空间分布和对齐能力。Flex 模型不会产生浮动布局中脱标现象,布局网页更简单、更灵活。
组成部分:

  • 弹性容器
  • 弹性盒子
  • 主轴:默认在水平方向
  • 侧轴 / 交叉轴:默认在垂直方向
    在这里插入图片描述
    flex布局属性
描述属性
创建 flex 容器display: flex
主轴对齐方式justify-content
侧轴对齐方式align-items
弹性盒子换行flex-wrap
某个弹性盒子侧轴对齐方式align-self
修改主轴方向flex-direction
弹性伸缩比flex
行对齐方式align-content
  • 主轴对齐方式
    属性名:justify-content
    属性值

    • flex-start (默认值)从起点开始排列 (类似左对齐)
    • flex-end 从中点开始排列 (类似右对齐)
    • center 水平居中 (类似居中对齐)
    • space-between 两端对齐
    • space-around 分散对齐
  • 侧轴对齐方式
    属性名: align-items
    属性值

    • stretch
    • center 从中点开始排列 (类似 居中对齐)
    • flex-start (默认值)从起点开始排列 (类似上对齐)
    • flex-end 从中点开始排列 (类似下对齐)
  • 某个弹性盒子侧轴对齐方式
    属性名:align-self
    属性值:

    • stretch
    • center 从中点开始排列 (类似 居中对齐)
    • flex-start (默认值)从起点开始排列 (类似上对齐)
    • flex-end 从中点开始排列 (类似下对齐)
  • 弹性盒子换行
    属性名:flex-wrap
    属性值:

    • wrap:换行
    • nowrap:不换行(默认)
  • 修改主轴方向
    属性名:flex-direction
    属性值:

    • row: 水平
    • column : 垂直方向
    • row-reverse 水平方向从右往左
    • column: 垂直方向从下往上
  • 弹性伸缩比
    属性名:flex
    属性值:整数数字,表示占用父级剩余尺寸的份数

  • 行对齐方式
    属性名:align-content
    属性值:

    • flex-start (默认值)从起点开始排列 (类似左对齐)
    • flex-end 从中点开始排列 (类似右对齐)
    • center 水平居中 (类似居中对齐)
    • space-between 两端对齐
    • space-around 分散对齐

对单行弹性盒子模型无效

4.4 特殊现象

  • 清除浮动
    场景:浮动元素会脱标,如果父级没有高度,子级无法撑开父级高度(可能导致页面布局错乱)
    解决方法:清除浮动(清除浮动带来的影响)
  1. 额外标签法: 在父元素内容的最后添加一个块级元素,设置 CSS 属性 clear: both
  2. 单伪元素法
.clearfix::after {content: "";display: block;clear: both;
}
  1. 方法三:双伪元素法(推荐)
.clearfix::before,
.clearfix::after {content: "";display: table;
}
.clearfix::after {clear: both;
}
  1. 方法四:overflow:父元素添加 CSS 属性 overflow: hidden

5定位

5.1 定位模式

作用:灵活的改变盒子在网页中的位置
属性:position
属性值

  • relative
    特点:
    • 不脱标,占用自己原来位
    • 显示模式特点保持不变
    • 设置边偏移则相对自己原来位置移动
  • absolute
    使用场景:子级绝对定位,父级相对定位(子绝父相)
    特点:
    • 脱标,不占位
    • 显示模式具备行内块特点
    • 设置边偏移则相对最近的已经定位的祖先元素改变位置
    • 如果祖先元素都未定位,则相对浏览器可视区改变位
  • fixed
    场景:元素的位置在网页滚动时不会改变
    特点:
    • 脱标,不占位
    • 显示模式具备行内块特点
    • 设置边偏移相对浏览器窗口改变位置

6 CSS 修饰属性

6.1 垂直对齐方式

属性名:vertical-align
属性值

  • baseline 基线对齐
  • top :顶部对齐
  • middle:居中对齐
  • bottom:底部对齐

6.2 过渡

作用:可以为一个元素在不同状态之间切换的时候添加过渡效果
属性名:transition(复合属性)
属性值:过渡的属性 花费时间 (s)

img {width: 200px;height: 200px;transition: all 1s;
}
img:hover {width: 500px;height: 500px;
}

6.3 透明度

作用:设置整个元素的透明度(包含背景和内容)
属性名:opacity
属性值:0 – 1

  • 0:完全透明(元素不可见)
  • 1:不透明
  • 0-1之间小数:半透明

6.4 光标类型

作用:鼠标悬停在元素上时指针显示样式
属性名:cursor

  • default : 通常为箭头
  • pointer: 小手形状
  • text: 工字形
  • move:十字光标

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

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

相关文章

计算机视觉与模式识别实验1-1 图像的直方图平衡

文章目录 &#x1f9e1;&#x1f9e1;实验流程&#x1f9e1;&#x1f9e1;1.读入图像‘rice.png’&#xff0c;在一个窗口中显示灰度级n64&#xff0c;128和256的图像直方图。2.调解图像灰度范围&#xff0c;观察变换后的图像及其直方图的变化。3.分别对图像‘pout.tif’和‘ti…

Android加固多渠道打包和签名工具

简介 基于腾讯VasDolly最新版本3.0.6的图形界面衍生版本&#xff0c;同时增加了签名功能&#xff0c;旨在更好的帮助开发者构建多渠道包 使用说明 下载并解压最新工具包&#xff0c;找到Startup脚本并双击启动图形界面&#xff08;注意&#xff1a;需本地安装java环境&#…

【Python爬虫--scrapy+selenium框架】超详细的Python爬虫scrapy+selenium框架学习笔记(保姆级别的,非常详细)

六&#xff0c;selenium 想要下载PDF或者md格式的笔记请点击以下链接获取 python爬虫学习笔记点击我获取 Scrapyselenium详细学习笔记点我获取 Python超详细的学习笔记共21万字点我获取 1&#xff0c;下载配置 ## 安装&#xff1a; pip install selenium## 它与其他库不同…

vmware esxi虚拟化数据迁移

1、启用esxi的ssh 登录esxi的web界面&#xff0c;选择主机-》操作——》服务——》启动ssh 2.xshell登录esxi 3、找到虚拟机所在目录 blog.csdnimg.cn/direct/d57372536a4145f2bcc1189d02cc7da8.png)#### 3在传输数据前需关闭防火墙服务 查看防火墙状态&#xff1a;esxcli …

使用el-tab,el-tab-pane循环使用循环后不显示下划线问题

在vue项目中使用element-UI el-tab里的el-tab-pane是循环出来的&#xff0c;但是循环出来后选中tab不显示下划线了 文章目录 问题问题展示效果问题代码问题原因 解决方案解决后效果解决方案1代码 解决方案2代码 问题 问题展示效果 问题代码 <el-tabs v-model"activeNa…

java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader

问题描述&#xff1a;在maven项目中&#xff0c;给SAXReader创建实例&#xff0c;启动tomcat服务器后报异常java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader。我在pom文件中是引入了dom4j依赖得&#xff0c;但是不知道为什么在上传到web时就找不到了 解决办法&#x…

Java通过Html(ftl模板)生成PDF实战, 可支持商用

Java通过Html(freemarker模板)生成PDF实战, 可支持商用 技术架构 springboot freemarker [pdfbox] flying-saucer-pdf 生成流程&#xff1a; freemarker: 根据数据填充ftl模板文件&#xff0c;得到包含有效数据的html文件&#xff08;包含页眉页脚页码的处理&#xff0c…

迁移ISE ChipScope逻辑分析器到Vivado硬件管理器

迁移ISE ChipScope逻辑分析器到Vivado硬件管理器 介绍 本章介绍AMD Vivado™Design Suite硬件管理器&#xff0c;以及这些工具之间的关系 到ISE™设计套件ChipScope™逻辑分析器工具&#xff0c;以及如何迁移IP核 从ISE ChipScope环境到Vivado Design Suite。 Vivado硬件管理器…

前端Vue小兔鲜儿电商项目实战Day05

一、登录 - 整体认识和路由配置 1. 整体认识 登录页面的主要功能就是表单校验和登录退出业务 ①src/views/Login/index.vue <script setup></script><template><div><header class"login-header"><div class"container m-…

数组的应用-24点游戏

目录 24点游戏 游戏规则 游戏主要分为三部分 电脑出牌 用户输入算式 电脑判断胜负 总结 24点游戏 游戏规则&#xff1a; 54张扑克抽出大小王&#xff0c;剩余52张用来用于游戏&#xff1b;每一轮从52张牌中随机抽出4张&#xff1b;玩家运用加&#xff0c;减&#xff0…

尝试用智谱机器人+知识库,制作pytorch测试用例生成器

尝试用智谱机器人知识库,制作pytorch测试用例生成器 1 保存pytorch算子文档到txt2 创建知识库3 创建聊天机器人4 测试效果5 分享 背景:是否能将API的接口文档和sample放到RAG知识库,让LLM编写API相关的程序呢 小结:当前的实验效果并不理想,可以生成代码,但几乎都存在BUG 1 保存…

动态分配函数参数用二级指针的作用

文章目录 前言一、案例 前言 在一些情况下&#xff0c;我们需要在函数内部动态地分配内存来存储结构体&#xff0c;并且需要在函数外部访问该结构体。在这种情况下&#xff0c;可以使用二级指针作为函数参数来实现动态内存分配&#xff0c;并且在函数外部使用指针访问结构体。…

汽车IVI中控开发入门及进阶(二十三):i.MX8

前言: IVI市场的复杂性急剧增加,而TimeToMarket在几代产品中从5年减少到2-3年。Tier1正在接近开放系统的模型(用户可以安装应用程序),从专有/关闭源代码到标准接口/开放源代码,从软件堆栈对系统体系结构/应用层/系统验证和鉴定的完全所有权,越来越依赖第三方中间件和平…

liunx文件系统与日志分析

文章目录 一、基本概念二、日志分析三、实验 一、基本概念 文件是存储在硬盘上的&#xff0c;硬盘上的最小存储单位是扇区每个扇区大小事512字节 inode&#xff1a;元信息&#xff08;文件的属性 权限 创建者 创建日期&#xff09; block&#xff1a;块 连续八个扇区组成一块…

【爱空间_登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

Java八股文:程序员的“面试经”还是技术壁垒?

Java八股文&#xff1a;程序员的“面试经”还是技术壁垒&#xff1f; “八股文”&#xff0c;在中国古代科举考试中&#xff0c;指的是一种程式化的文章写作格式&#xff0c;内容空洞&#xff0c;缺乏创新。而如今&#xff0c;这个词语被赋予了新的含义&#xff0c;用来形容技术…

YOLOv10介绍与推理--图片和视频演示(附源码)

导 读 本文主要对YOLOv10做简单介绍并给出推理图片和视频的步骤演示。 YOLOv10简介 YOLOv10是清华大学的研究人员在Ultralytics Python包的基础上&#xff0c;引入了一种新的实时目标检测方法&#xff0c;解决了YOLO 以前版本在后处理和模型架构方面的不足。通过消除非最大抑…

前端 CSS 经典:3D Hover Effect 效果

前言&#xff1a;有趣的 3D Hover Effect 效果&#xff0c;通过 js 监听鼠标移动&#xff0c;动态赋值 rotateX&#xff0c;rotateY 的旋转度来实现。 效果图&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta …

【工具】Docker安装Jenkins并部署Java项目

【工具】Docker安装Jenkins并部署Java项目 文章目录 【工具】Docker安装Jenkins并部署Java项目1. 前置条件2. 安装3. 创建项目3.1 配置Maven3.2 构建项目3.3 自动部署 1. 前置条件 准备一台云服务器或本地虚拟机&#xff0c;保证必须要java环境&#xff0c;一键安装jdk&#x…

利用依赖结构矩阵管理架构债务

本文讨论了如何利用依赖结构矩阵&#xff08;DSM&#xff0c;Dependency Structure Matrix&#xff09;管理和识别架构债务&#xff0c;并通过示例应用展示了这一过程。原文: Managing Architecture Debt with Dependency Structure Matrix Vlado Paunovic Unsplash 技术债务&a…