05-前端基础CSS第三天

01-CSS三大特性之层叠性

1.CSS的三大特性

CSS有三个非常重要的三个特性:层叠性、继承性、优先级。

1.1 层叠性

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

层叠性原则:

  • 样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式
  • 样式不冲突,不会层叠
示例

颜色冲突采取就近原则,文字大小不冲突不会层叠
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CSS层叠性</title><style>div {color: red;font-size: 12px;}div {color: pink;}</style>
</head><body><div>长江后浪推前浪,前浪死在沙滩上</div>
</body></html>

02-CSS三大特性之继承性

1.2 继承性

现实中的继承:我们继承了父亲的姓
CSS中的继承:子标签会继承父标签的某些样式,如文本颜色和字号。简单的理解就是:子承父业。

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

没有给p标签设置样式,只给div设置,p标签会继承div的特性
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CSS继承性</title><style>div {color: pink;font-size: 14px;}</style>
</head><body><div><p>龙生龙,凤生凤,老鼠生的孩子会打洞</p></div>
</body></html>

03-行高的特性

行高的继承性

body {font:12px/1.5 Microsoft YaHei ;
}
  • 行高可以跟单位也可以不跟单位
示例1 带单位的行高继承

在这里插入图片描述
文字大小和行高都继承了

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>行高的继承</title><style>body {/* 给body指定颜色,让div和p继承 */color: pink;/* 12px/24px分别是文字大小和行高 */font: 12px/24px 'Microsoft YaHei';}</style>
</head><body><div>粉红色的回忆</div><p>粉红色的回忆</p></body></html>
示例2 不带单位的行高继承
body {font:12px/1.5 Microsoft YaHei;
}
  • 行高可以跟单位也可以不跟单位
  • 如果子元素没有设置行高,则会继承父元素的行高为 1.5
  • 此时子元素的行高是:当前子元素的文字大小*1.5
  • body 行高1.5 这样写法最大的优势就是里面子元素可以根据自己文字大小自动调整行高
示例

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>行高的继承</title><style>body {/* 给body指定颜色,让div和p继承 */color: pink;/* 12px/24px分别是文字大小和行高 *//* font: 12px/24px 'Microsoft YaHei'; *//* 1.5的意思是:让所有子元素的行高就是当前文字大小的1.5倍 */font: 12px/1.5 'Microsoft YaHei';}div {/* 子元素继承了父元素 body 的行高 1.5 *//* 这个1.5 就是当前元素文字大小的 font-size 的1.5倍 *//* 所以当前div的行高就是 14*1.5=21像素 */font-size: 14px;}p {/* 1.5*16=24 当前的行高 */font-size: 16px;}</style>
</head><body><div>粉红色的回忆</div><p>粉红色的回忆</p></body></html>
示例:还有一种特殊的情况,没有指定文字大小
  • li没有直接指定文字大小 则会继承ul的文字大小 ul向上继承body的 12px
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>行高的继承</title><style>body {/* 给body指定颜色,让div和p继承 */color: pink;/* 12px/24px分别是文字大小和行高 *//* font: 12px/24px 'Microsoft YaHei'; *//* 1.5的意思是:让所有子元素的行高就是当前文字大小的1.5倍 */font: 12px/1.5 'Microsoft YaHei';}div {/* 子元素继承了父元素 body 的行高 1.5 *//* 这个1.5 就是当前元素文字大小的 font-size 的1.5倍 *//* 所以当前div的行高就是 14*1.5=21像素 */font-size: 14px;}p {/* 1.5*16=24 当前的行高 */font-size: 16px;}</style>
</head><body><div>粉红色的回忆</div><p>粉红色的回忆</p><ul><li>我没有指定文字大小</li></ul></body></html>

04-CSS三大特性之优先级

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 重要的∞无穷大
示例

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CSS优先级</title><style>div {color: pink !important;}.test {color: red;}#demo {color: green;}</style>
</head><body><div class="test" id="demo" style="color: purple;">你笑起来真好看</div>
</body></html>

05-优先级注意的问题

优先级注意点:
在这里插入图片描述
在这里插入图片描述

 <!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta ="X-UA-Compatible" content="ie=edge"><title>css权重注意点</title><style>/* 父亲的权重是 100  */#father {color: red !important;}/* p继承的权重为 0 *//* 所以以后我们看标签到底执行那个样式,就先看这个标签有么有直接被选出来 */p {color: pink;}body {color: red;}/* a链接浏览器默认制定了一个样式 蓝色的 有下划线  a {color: blue;}*/a {color: green;}</style>
</head><body><div id="father"><p>你还是很好看</p></div><a href="#">我是单独的样式</a>
</body></html>

06-CSS权重的叠加

权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重。
在这里插入图片描述

示例1

在这里插入图片描述

<!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>/* 复合选择器会有权重叠加的问题 *//* ul li 权重  0,0,0,1 + 0,0,0,1  =  0,0,0,2     2 */ul li {color: green;}/* li 的权重是 0,0,0,1    1 */li {color: red;}</style>
</head><body><ul><li>大猪蹄子</li><li>大肘子</li><li>猪尾巴</li></ul>
</body></html>
示例2

在这里插入图片描述

<!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>/* 复合选择器会有权重叠加的问题 *//* 权重虽然会叠加,但是不会有进位 *//* ul li 权重  0,0,0,1 + 0,0,0,1  =  0,0,0,2     2 */ul li {color: green;}/* li 的权重是 0,0,0,1    1 */li {color: red;}/* .nav li 权重 0,0,1,0 + 0,0,0,1 = 0,0,1,1   11*/.nav li {color: pink;}</style>
</head><body><ul class="nav"><li>大猪蹄子</li><li>大肘子</li><li>猪尾巴</li></ul>
</body></html>

07-权重的两个练习题

权重练习题一

小li是什么颜色:
在这里插入图片描述

<!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>.nav {color: red;}/* 继承的权重是0 */li {color: pink;}</style>
</head><body><!-- 虽然父亲ul的权重很高,但是li继承过来的权重是0 --><!-- 小li专门指定了一个样式是pink,权重是1 --><ul class="nav"><li>人生四大悲</li><li>家里没宽带</li><li>网速不够快</li><li>手机没流量</li><li>学校没wifi</li></ul>
</body></html>
权重练习题二

需求:把第一个小li 颜色改为粉色加粗

  • 一共有5个小li,只需要改变第一个小li
  • 专门指定一个class

在这里插入图片描述
这样只会修改字体大小,不能修改图片颜色
在这里插入图片描述
执行权重大的,仍然为红色
在这里插入图片描述

示例:
在这里插入图片描述

<!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>/* .nav li  权重是 11 */.nav li {color: red;}/* 需求把第一个小li 颜色改为 粉色加粗 ? *//* .pink  权重是 10    .nav .pink  20  */.nav .pink {color: pink;font-weight: 700;}</style>
</head><body><ul class="nav"><li class="pink">人生四大悲</li><li>家里没宽带</li><li>网速不够快</li><li>手机没流量</li><li>学校没wifi</li></ul>
</body></html>

如 果想要单独修改某个标签的样式,一定要把权重修改的足够高

08-盒子模型导读

目标:

  • 能够准确阐述盒子模型的4个组成部分
  • 能够利用边框复合写法给元素添加边框
  • 能够计算盒子的实际大小
  • 能够利用盒子模型布局模块案例
  • 能够给盒子设置圆角边框
  • 能够给盒子添加阴影
  • 能够给文字添加阴影

目录:

  • 盒子模型
  • PS 基本操作
  • 综合案例
  • 圆角边框
  • 盒子阴影
  • 文字阴影

09-看透网页布局本质

页面布局要学习三大核心,盒子模型,浮动 和 定位,学习好盒子模型能非常好的帮助我们布局页面。

1. 盒子模型

1.1 看透网页布局的本质

网页布局过程:

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

网页布局核心本质:就是利用CSS 摆盒子

10-盒子模型组成部分

1.2 盒子模型(Box Model)组成

在这里插入图片描述

所谓盒子模型:就是把html页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。

CSS盒子模型本质上是一个盒子,封装周围的HTML元素,它包括:边框、外边距、内边距、和实际内容。

在这里插入图片描述
在这里插入图片描述

11-盒子模型边框border

1.3 边框

在这里插入图片描述
border 可以设置元素的边框。边框有三部分组成:边框宽度(粗细)边框样式 边框颜色。

border : border-width || border-style || border-color
属性作用
border-width定义边框粗细,单位是px
border-style边框的样式
border-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>div {width: 300px;height: 200px;/* border-width 边框的粗细  一般情况下都用 px */border-width: 5px;/* border-style 边框的样式  solid 实线边框   dashed 虚线边框  dotted 点线边框*/border-style: solid;/* border-style: dashed; *//* border-style: dotted; *//* border-color 边框的颜色  */border-color: pink;}</style>
</head><body><div></div>
</body></html>

12-边框的复合写法

CSS边框允许你指定一个元素边框的样式颜色

边框简写:
border: 1px solid red; 没有顺序
边框分开写法:
border-top: 1px solid red;

只设定上边框,其余同理

边框的复合写法示例

<!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>div {width: 300px;height: 200px;/* border-width: 5px;border-style: solid;border-color: pink; *//* 边框的复合写法 简写:  *//* border: 5px solid pink; *//* 上边框 */border-top: 5px solid pink;/* 下边框 */border-bottom: 10px dashed purple;}</style>
</head><body><div></div>
</body></html>
课堂练习

要求:请给一个200*200的盒子,设置上边框为红色,其余边框为蓝色(提示:一定注意边框的层叠性)
注意:层叠性采取就近原则,如果在下面统一设置为蓝色会全部覆盖。如果先将四个边框都设置为蓝色,再将上面的边框设置为红色,就会得到要求的结果。
在这里插入图片描述

<!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>/* 请给一个 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;}</style>
</head>
<body><div></div>
</body>
</html>

13-表格细线边框

1.4 表格的细线边框

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

语法:
border-collapse:collase
  • collapse 单词是合并的意思
  • border-collapse:collapse; 表示相邻边框合并在一起
示例1:个单元格的细线边框重合变粗边框,会出现1+1=2的情况

在这里插入图片描述

两个单元格的细线边框重合变粗边框,会出现1+1=2的情况

<!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>/* 给表格修改大小 */table {width: 500px;height: 249px;}/* 这样是给表格加边框,除了给表格加边框之外单元格也需要 *//* table {border: 1px solid pink;} *//* 给表格和单元格都加上边框 */table,td {border: 1px solid pink;}</style>
</head><body><table align="center" cellspacing="0"><thead><tr><th>排名</th><th>关键词</th><th>趋势</th><th>进入搜索</th><th>最近七日</th><th>相关链接</th></tr></thead><tbody><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>3</td><td>西游记</td><td><img src="up.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr></tbody></table>
</body></html>
示例2:合并相邻的边框

在这里插入图片描述

<!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>/* 给表格修改大小 */table {width: 500px;height: 249px;}/* 这样是给表格加边框,除了给表格加边框之外单元格也需要 *//* table {border: 1px solid pink;} *//* 单独修改th */th {height: 35px;}/* 给表格和单元格都加上边框 th也可以改*/table,td,th {border: 1px solid pink;/* 合并相邻的边框 */border-collapse: collapse;/* 修改文字 */font-size: 14px;/* 文字居中对齐 */text-align: center;}</style>
</head><body><table align="center" cellspacing="0"><thead><tr><th>排名</th><th>关键词</th><th>趋势</th><th>进入搜索</th><th>最近七日</th><th>相关链接</th></tr></thead><tbody><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>3</td><td>西游记</td><td><img src="up.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr><tr><td>1</td><td>鬼吹灯</td><td><img src="down.jpg"></td><td>456</td><td>123</td><td> <a href="#">贴吧</a> <a href="#">图片</a> <a href="#">百科</a> </td></tr></tbody></table>
</body></html>

14-边框会影响盒子实际大小

1.5 边框会影响盒子实际大小

给盒子加了边框会影响整体的大小。
边框会额外增加盒子的实际大小。因此我们有两种解决方案:

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

在这里插入图片描述

<!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>/* 我们需要一个200*200的盒子,但是这个盒子有10像素的红色边框 */div {width: 200px;height: 200px;background-color: pink;border: 10px solid red;}</style>
</head><body><div></div>
</body></html>

15-盒子模型内边距padding

1.6 内边距(padding)

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

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

盒子模型有两个大内容,一个是内容content,一个是内边距

示例

在这里插入图片描述

<!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>div {width: 200px;height: 200px;background-color: pink;padding-left: 20px;padding-top: 30px;}</style>
</head><body><div>盒子内容是content盒子内容是content盒子内容是content盒子内容是content</div>
</body></html>

16-padding复合属性

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像素 顺时针

以上4种情况,我们实际开发中都会遇到。
在这里插入图片描述

<!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>div {width: 200px;height: 200px;background-color: pink;/* padding-left: 5px;padding-top: 5px;padding-bottom: 5px;padding-right: 5px; *//* 内边距复合写法(简写) *//* padding: 5px; *//* padding: 5px 10px; *//* padding: 5px 10px 20px; */padding: 5px 10px 20px 30px;}</style>
</head><body><div>盒子内容是content盒子内容是content盒子内容是content盒子内容是content</div>
</body></html>

17-padding会影响盒子实际大小

当我们给盒子指定了padding值之后,发生了2件事情:

  1. 内容和边框有了距离,添加了内边距。
  2. padding影响了盒子实际大小
    增加内边距会增加盒子大小。也就是说,如果盒子已经有了宽度和高度,此时再指定边框,会撑大盒子。

解决方案:
如果保证盒子跟效果图大小保持一致,则让 width/height 减去多出来的内边距大小即可。

示例

要保持盒子大小200200不变,用200-20(内边距)=160 即可。
200
200:
在这里插入图片描述

160*160:
在这里插入图片描述
160+20px+20px=200

<!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>div {width: 160px;height: 160px;background-color: pink;padding: 20px;}</style>
</head><body><div>padding会影响盒子实际大小padding会影响盒子实际大小padding会影响盒子实际大小padding会影响盒子实际大小</div></body></html>

18-padding应用-新浪导航栏(上)

案例:新浪导航案例-padding影响盒子好处

padding 内边距可以撑开盒子,我们可以做非常巧妙的运用。

因为每个导航栏里面的字数不一样多,我们可以不用给每个盒子宽度了,直接给padding最合适

在这里插入图片描述

在这里插入图片描述

所有的盒子都不设置宽度,直接设置padding内边距,内边距会撑开盒子。

在这里插入图片描述

大概框架

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>新浪导航</title><style>.nav {height: 41px;border-top: 3px solid #ff8500;border-bottom: 1px solid #edeef0;background-color: #fcfcfc;/* 文字垂直居中:行高等于盒子高 *//* 行高是可以继承的,给父亲指定行高,其他的会继承 */line-height: 41px;}</style>
</head><body><div class="nav"><a href="#">新浪导航</a><a href="#">手机新浪网</a><a href="#">移动客户端</a><a href="#">微博</a><a href="#">三个字</a></div>
</body></html>

19-padding应用-新浪导航栏(下)

修饰文字相关内容:
点击到链接a的盒子内就会变颜色:

  • 需要一个高度和宽度但是每个盒子宽度不一样使用padding撑开盒子,设置高度和padding即可。
  • a是行内元素没有高和宽,需要先转换成行内块元素

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>新浪导航</title><style>.nav {height: 41px;border-top: 3px solid #ff8500;border-bottom: 1px solid #edeef0;background-color: #fcfcfc;/* 文字垂直居中:行高等于盒子高 *//* 行高是可以继承的,给父亲指定行高,其他的会继承 */line-height: 41px;}.nav a {/* a 属于行内元素 此时必须要转换 行内块元素 */display: inline-block;height: 41px;/* 设置好高度后,再用padding撑开盒子即可 上下0 左右20 */padding: 0 20px;font-size: 12px;color: #4c4c4c;/* 取消下划线 */text-decoration: none;}.nav a:hover {background-color: #edee;color: #ff8500;}</style>
</head><body><div class="nav"><a href="#">新浪导航</a><a href="#">手机新浪网</a><a href="#">移动客户端</a><a href="#">微博</a><a href="#">三个字</a></div>
</body></html>

20-小米侧边栏修改

案例:小米导航栏修改-padding影响盒子大小计算
padding内边距可以撑开盒子,有时候,也会让我们去修改宽度
所以小米侧边栏这个案例,文字距离左侧的距离不应该用text-indent(缩进)这样不精确。

实际开发中的做法是给padding值,这样更加精确。

在这里插入图片描述

差不多是30像素

在这里插入图片描述

padding多出来30,width需要减去30,保证盒子宽度不变
在这里插入图片描述

21-padding不会撑开盒子的情况

如果盒子本身没有指定width/height属性,则此时padding不会撑开盒子大小
不指定宽度默认和父亲一样高,只要有width属性就会被撑开

22-盒子模型外边距margin

如何控制盒子和盒子之间的距离
在这里插入图片描述

1.7 外边距(margin)

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

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

margin简写方式代表的意义和padding完全一致。

23-外边距典型应用-块级盒子水平居中对齐

1.7 外边距典型应用

外边距可以让块级盒子水平居中,但是必须满足两个条件:

  • 盒子必须指定了宽度(width)
  • 盒子左右的外边距都设置为auto
.header { width:960px; margin:0 auto;}

常见的写法,以下三种都可以:

  • margin-left:auto; margin-right:auto;
  • margin:auto;
  • margin:0 auto;

注:
以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加 text-align:center 即可

示例
  • 没有水平居中对齐
    在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>行内元素/行内块元素水平居中对齐</title><style>.header {width: 900px;height: 200px;background-color: pink;margin: 100px auto;}span {margin: 0 auto;}</style>
</head><body><div class="header"><span>里面的文字</span></div>
</body></html>
  • 修改后的代码
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>行内元素/行内块元素水平居中对齐</title><style>.header {width: 900px;height: 200px;background-color: pink;margin: 100px auto;text-align: center;}/* 行内元素或者行内块元素水平居中给其父元素添加 text-align:certer 即可 */</style>
</head><body><div class="header"><span>里面的文字</span></div>
</body></html>
  • 行内块元素对齐,新加了一个图片元素,也可以居中对齐
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>行内元素/行内块元素水平居中对齐</title><style>.header {width: 900px;height: 200px;background-color: pink;margin: 100px auto;text-align: center;}/* 行内元素或者行内块元素水平居中给其父元素添加 text-align:certer 即可 */</style>
</head><body><div class="header"><span>里面的文字</span></div><div class="header"><img src="down.jpg" alt=""></div>
</body></html>

24-行内元素和行内块元素水平居中

26-外边距合并-嵌套块元素水平居中

1.8 外边距合并

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

1. 相邻块元素垂直外边距的合并

当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距 margin-bottom, 下面的元素有上外边距 margin-top,则他们之间的垂直间距不是 margin-bottom 与 margin-top 之和。取两个值中的较大者这种现象被称为相邻块元素垂直外边距的合并

在这里插入图片描述

解决方案:

尽量只给一个盒子添加margin值。

2. 嵌套元素垂直外边距的塌陷

对于两个嵌套关系(父子关系)的块元素,父元素有上边距同时子元素也有上外边距,此时父元素会塌陷较大的外边距值。

在这里插入图片描述

解决方案
  1. 可以为父元素定义上边框
  2. 可以为父元素定义上内边距
  3. 可以为父元素添加 overflow:hidden

还有其他方法,比如浮动、固定,绝对定位的盒子不会有塌陷问题,后面再总结。

解释

1.初始效果
父元素是400x400的一个紫色盒子,子元素是200X200的一个粉色盒子
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>外边距合并-嵌套元素垂直外边距塌陷</title><style>.father {width: 400px;height: 400px;background-color: purple;}.son {width: 200px;height: 200px;background-color: pink;}</style>
</head><body><div class="father"><div class="son"></div></div>
</body></html>

2.让父元素像下走50像素
给父元素加一个margin-top即可
在这里插入图片描述

在这里插入图片描述

3.想实现下图的效果,子盒子离父盒子有一端距离
在这里插入图片描述

尝试给子元素添加 margin-top,但是没达到我们想要的效果,父元素下来了。
在这里插入图片描述

在这里插入图片描述

27-清除内外边距

1.9 清除内外边距

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

’*‘是通配符选择器,选择全部

* {padding:0; margin:0;
}

把padding和margin改成0清除内外边距

示例
  • 自带的格式
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>清除内外边距</title>
</head><body>123<ul><li>abcd</li></ul>
</body></html>
  • 清除内外边距
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>清除内外边距</title><style>* {margin: 0;padding: 0;}</style>
</head><body>123<ul><li>abcd</li></ul>
</body></html>
注意:

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

28-ps的基本操作

目录:
  • 盒子模型
  • PS基本操作
  • 综合案例
  • 圆角边框
  • 盒子阴影
  • 文字阴影

因为网页美工大部分效果图都是利用 PS (Photoshop)来做的,所以以后我们大部分切图工作都是在PS里面完成。

29-综合案例-产品模块布局分析

在这里插入图片描述

  • 1 基本布局
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例-产品模块</title><style>/* 注意第一句话先清除内外边距 */* {margin: 0;padding: 0;}.box {width: 298px;height: 415px;background-color: pink;/* 让块级的盒子水平居中对齐 已经有宽度设置auto即可*/margin: 100px auto;}</style>
</head><body><div class="box">123</div>
</body></html>
  • 2 修改背景颜色,删掉123
    把整个背景的颜色改成#f5f5f5的一个灰色,准备一个给定宽高的盒子颜色为白色,并把这个盒子移到页面中央
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例-产品模块</title><style>/* 注意第一句话先清除内外边距 */* {margin: 0;padding: 0;}body {background-color: #f5f5f5;}.box {width: 298px;height: 415px;background-color: #fff;/* 让块级的盒子水平居中对齐 已经有宽度设置auto即可*//* 上下是100px 左右是auto */margin: 100px auto;}</style>
</head><body><div class="box"></div>
</body></html>

30-综合案例-box布局

31-综合案例-图片和段落制作

盒子有了之后可以装图片

  • 插入图片
    在这里插入图片描述
  • 发现图片大很多,设置box里的img宽度和父亲一样宽
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例-产品模块</title><style>/* 注意第一句话先清除内外边距 */* {margin: 0;padding: 0;}body {background-color: #f5f5f5;}.box {width: 298px;height: 415px;background-color: #fff;/* 让块级的盒子水平居中对齐 已经有宽度设置auto即可*//* 上下是100px 左右是auto */margin: 100px auto;}.box img {width: 100%;}</style>
</head><body><div class="box"><img src="images/img.jpg" alt=""></div>
</body></html>

在这里插入图片描述

图片部分做完,接下来完成评论部分。用段落包含评论部分就可以

注:
段落的文字不一定一样多,一定要设置高度
在这里插入图片描述

修改文字大小,设置高度
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例-产品模块</title><style>/* 注意第一句话先清除内外边距 */* {margin: 0;padding: 0;}body {background-color: #f5f5f5;}.box {width: 298px;height: 415px;background-color: #fff;/* 让块级的盒子水平居中对齐 已经有宽度设置auto即可*//* 上下是100px 左右是auto */margin: 100px auto;}.box img {width: 100%;}.review {height: 70px;font-size: 14px;}</style>
</head><body><div class="box"><img src="images/img.jpg" alt=""><p class="review">快递牛,整体不错可以说秒连。红米给力</p></div>
</body></html>

文字距离盒子两侧应该有一定的距离:可以考虑给一个padding值
因为这个段落没有width属性 所以padding不会撑开盒子的宽度
在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例-产品模块</title><style>/* 注意第一句话先清除内外边距 */* {margin: 0;padding: 0;}body {background-color: #f5f5f5;}.box {width: 298px;height: 415px;background-color: #fff;/* 让块级的盒子水平居中对齐 已经有宽度设置auto即可*//* 上下是100px 左右是auto */margin: 100px auto;}.box img {width: 100%;}.review {height: 70px;font-size: 14px;/* 因为这个段落没有width属性 所以padding不会撑开盒子的宽度 */padding: 0 28px;margin-top: 30px;}</style>
</head><body><div class="box"><img src="images/img.jpg" alt=""><p class="review">快递牛,整体不错可以说秒连。红米给力</p></div>
</body></html>

段落图片相关样式的修改:

  • 文字修改为14px
  • 一定要给段落盒子一个高度是70px
  • 距离左侧的距离给padding28px(因为盒子没有指定宽度,所以给盒子设置padding值不会撑开盒子,但是盒子有高度,如果用padding-top会撑开盒子,还要用总高度减去padding值比较麻烦,可以用margin-top
  • 图片可以直接插入,但是图片太大,给图片修改宽度为100%,图片的宽度和父亲一样宽

32-综合案例-评价和详情制作

接下来做剩下的两个模块,评价和详情制作

在这里插入图片描述

效果1:
在这里插入图片描述
代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例-产品模块</title><style>/* 注意第一句话先清除内外边距 */* {margin: 0;padding: 0;}body {background-color: #f5f5f5;}.box {width: 298px;height: 415px;background-color: #fff;/* 让块级的盒子水平居中对齐 已经有宽度设置auto即可*//* 上下是100px 左右是auto */margin: 100px auto;}.box img {width: 100%;}.review {height: 70px;font-size: 14px;/* 因为这个段落没有width属性 所以padding不会撑开盒子的宽度 */padding: 0 28px;margin-top: 30px;}</style>
</head><body><div class="box"><img src="images/img.jpg" alt=""><p class="review">快递牛,整体不错可以说秒连。红米给力</p><div class="appraise">来自于 117384232 的评价</div></div>
</body></html>

效果2:
外观样式:颜色是灰色,字号比段落的字号小一号应该是12号
在这里插入图片描述

效果3:
基本的外观样式已经有了,这个也有一个左右28px的padding值,还有margin-top
在这里插入图片描述

info模块:
效果1:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例-产品模块</title><style>/* 注意第一句话先清除内外边距 */* {margin: 0;padding: 0;}body {background-color: #f5f5f5;}.box {width: 298px;height: 415px;background-color: #fff;/* 让块级的盒子水平居中对齐 已经有宽度设置auto即可*//* 上下是100px 左右是auto */margin: 100px auto;}.box img {width: 100%;}.review {height: 70px;font-size: 14px;/* 因为这个段落没有width属性 所以padding不会撑开盒子的宽度 */padding: 0 28px;margin-top: 30px;}.appraise {font-size: 12px;color: #b0b0b0;margin-top: 20px;padding: 0 28px;}</style>
</head><body><div class="box"><img src="images/img.jpg" alt=""><p class="review">快递牛,整体不错可以说秒连。红米给力</p><div class="appraise">来自于 117384232 的评价</div><div class="info">Redmi AirDots真无线蓝... | 99.9元</div></div>
</body></html>

效果2:
info里两部分文字是不一样的。左边是产品,可以用标题h4,右边是价格,可以用span
在这里插入图片描述

<body><div class="box"><img src="images/img.jpg" alt=""><p class="review">快递牛,整体不错可以说秒连。红米给力</p><div class="appraise">来自于 117384232 的评价</div><div class="info"><h4>Redmi AirDots真无线蓝...</h4>| <span>99.9元</span></div></div>
</body>

效果三:
两部分分开显示了但是问题是,h4是块级元素必须单独占一行显示。把h4改为行内块元素即可,价格是行内元素
在这里插入图片描述

        .info h4 {display: inline-block;}</style>
</head><body><div class="box"><img src="images/img.jpg" alt=""><p class="review">快递牛,整体不错可以说秒连。红米给力</p><div class="appraise">来自于 117384232 的评价</div><div class="info"><h4>Redmi AirDots真无线蓝...</h4>| <span>99.9元</span></div></div>
</body>

效果4:
修改文字大小、padding、margin。h4不需要加粗,99元是其他颜色
在这里插入图片描述

        .info {font-size: 14px;margin-top: 15px;padding: 0 28px;}.info h4 {display: inline-block;font-weight: 400;}.info span {color: #ff6700;}

33-综合案例-竖线细节制作

把竖线单独包含到一个标签里面
在这里插入图片描述
但是这样竖线的效果是倾斜的,需要设置竖线不倾斜:

在这里插入图片描述

设置竖线颜色为灰色:
在这里插入图片描述

适当调整距离:盒子与盒子之间的距离,可以用margin值
在这里插入图片描述

在这里插入图片描述
注意margin的4个值分别代表上右下左
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例-产品模块</title><style>/* 注意第一句话先清除内外边距 */* {margin: 0;padding: 0;}body {background-color: #f5f5f5;}.box {width: 298px;height: 415px;background-color: #fff;/* 让块级的盒子水平居中对齐 已经有宽度设置auto即可*//* 上下是100px 左右是auto */margin: 100px auto;}.box img {width: 100%;}.review {height: 70px;font-size: 14px;/* 因为这个段落没有width属性 所以padding不会撑开盒子的宽度 */padding: 0 28px;margin-top: 30px;}.appraise {font-size: 12px;color: #b0b0b0;margin-top: 20px;padding: 0 28px;}.info {font-size: 14px;margin-top: 15px;padding: 0 28px;}.info h4 {display: inline-block;font-weight: 400;}.info span {color: #ff6700;}.info em {font-style: normal;color: #ebe4e0;margin: 0 6px 0 15px;}</style>
</head><body><div class="box"><img src="images/img.jpg" alt=""><p class="review">快递牛,整体不错可以说秒连。红米给力</p><div class="appraise">来自于 117384232 的评价</div><div class="info"><h4>Redmi AirDots真无线蓝...</h4><em> | </em><span>99.9元</span></div></div>
</body></html>

最后注意介绍部分是链接,点击就可以跳转:
h4里增加链接:
在这里插入图片描述

链接应该是黑色没有下划线,在前面给所有的链接都做一个风格样式:

在这里插入图片描述

完整模块:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例-产品模块</title><style>/* 注意第一句话先清除内外边距 */* {margin: 0;padding: 0;}body {background-color: #f5f5f5;}a {color: #333;text-decoration: none;}.box {width: 298px;height: 415px;background-color: #fff;/* 让块级的盒子水平居中对齐 已经有宽度设置auto即可*//* 上下是100px 左右是auto */margin: 100px auto;}.box img {width: 100%;}.review {height: 70px;font-size: 14px;/* 因为这个段落没有width属性 所以padding不会撑开盒子的宽度 */padding: 0 28px;margin-top: 30px;}.appraise {font-size: 12px;color: #b0b0b0;margin-top: 20px;padding: 0 28px;}.info {font-size: 14px;margin-top: 15px;padding: 0 28px;}.info h4 {display: inline-block;font-weight: 400;}.info span {color: #ff6700;}.info em {font-style: normal;color: #ebe4e0;margin: 0 6px 0 15px;}</style>
</head><body><div class="box"><img src="images/img.jpg" alt=""><p class="review">快递牛,整体不错可以说秒连。红米给力</p><div class="appraise">来自于 117384232 的评价</div><div class="info"><h4><a href="#">Redmi AirDots真无线蓝...</a></h4><em> | </em><span>99.9元</span></div></div>
</body></html>

34 总结

1. 布局为啥用不同的盒子
标签都是有语义的,合理的地方用合理的标签,比如产品标题就用 h ,大量文字段落就用 p
2. 为啥用那么多类名
类名就是给每个盒子起了一个名字,可以更好的找到这个盒子,选取盒子更容易,后期维护也方便
3. 到底用margin还是padding
大部分情况两个可以混用,两者各有优缺点,但是根据实际情况,总有更简单的方法实现
4. 自己做没有思路
布局有很多种方式,可以先模仿再做出自己的风格。

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

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

相关文章

C++——list(2)

作者&#xff1a;几冬雪来 时间&#xff1a;2023年9月28日 内容&#xff1a;C——list内容讲解 目录 前言&#xff1a; list的const迭代器&#xff1a; const的iterator&#xff1a; const迭代器&#xff1a; operator->: 拷贝构造&#xff1a; 迭代器接口补充&…

船用白炽照明灯具

声明 本文是学习GB-T 3027-2012 船用白炽照明灯具. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了船用白炽照明灯具(以下简称灯具)的要求、试验方法、检验规则、标识、包装和储 存等。 本标准适用于电源电压在250V 以下的交流…

排序:简单选择排序算法分析

选择排序包括简单选择排序以及堆排序。 1.算法分析 每一趟在待排序元素中选取关键字最小的元素加入有序子序列。 n个元素的简单选择排序需要n-1趟处理。 2.代码实现 //交换 void swap(int &a, int &b) {int temp a;a b;b temp; }//简单选择排序 void SelectSort…

计算机毕业设计 基于SSM的垃圾分类管理系统(以医疗垃圾为例)的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

activemq部署

目录 1.下载 2.java环境 3.解压启动 4.访问测试 5.问题记录 5.1.无法启动成功问题 5.2.其他服务器无法访问 1.下载 ActiveMQ 2.java环境 需要注意要求的jdk版本&#xff0c;否则启动不会成功 3.解压启动 tar -zxvf apache-activemq-5.18.2-bin.tar.gz 进入到目录下执行…

VS编译器常见的错误

以上问题在编译器中出现可以在编译器中最上面加入&#xff1a; #define_CRT_SECURE_NO_WARNINGS 或者将scanf修改为scanf_s 一定要在最上端&#xff01;&#xff01;&#xff01;最上端&#xff01;&#xff01;&#xff01;最上端加入&#xff01;&#xff01;&#xff01; 虽…

VMware下安装、配置ubuntu虚拟系统

本次测试以 ubuntu18.04 为例&#xff0c;进行操作说明。 1、下载镜像文件 进入网址&#xff1a;Ubuntu Releases &#xff0c;获取需下载的18.04系统镜像&#xff0c;如下图所示&#xff0c;直接下载iso文件即可。 2、VM中设置虚拟机参数 在VM主界面上&#xff0c;点击“创…

抖音开放平台第三方代小程序开发,一整套流程

大家好&#xff0c;我是小悟 抖音小程序第三方平台开发着力于解决抖音生态体系内的小程序管理问题&#xff0c;一套模板&#xff0c;随处部署。能尽可能地减少服务商的开发成本&#xff0c;服务商只用开发一套小程序代码作为模板就可以快速批量的孵化出大量的商家小程序。 第…

MeterSphere v2.10.X-lts 双节点HA部署方案

一、MeterSphere高可用部署架构及服务器配置 1.1 服务器信息 序号应用名称操作系统要求配置要求描述1负载均衡器CentOS 7.X /RedHat 7.X2C,4G&#xff0c;200GB部署Nginx&#xff0c;实现负载路由。 部署NFS服务器。2MeterSphere应用节点1CentOS 7.X /RedHat 7.X8C,16GB,200G…

指南:通过 NFTScan API 获取钱包地址的 NFT Statistics 全量数据

获取钱包地址的全量 NFT 及统计分析数据对于开发者和投资者来说都是十分重要的。具体来说&#xff1a;对开发者而言&#xff0c;获取每个钱包的完整资产数据&#xff0c;并进行统计分析&#xff0c;是构建钱包管理工具、资产分析应用的基础&#xff0c;这些应用都需要全面且精确…

【面试经典150 | 数组】H 指数

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;排序方法二&#xff1a;二分方法三&#xff1a;计数排序 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&am…

社区活跃开发者 Aaron 加入 sCrypt

Aaron&#xff08;周全&#xff09;是资深的 BSV 开发者&#xff0c;前 nChain BSV 基础架构团队成员&#xff0c;也是比特币协会在中国任命的首位技术推广专家。作为 BSV 社区的活跃成员&#xff0c;他多次作为演讲者参与区块链技术会议&#xff0c;开发了 Webot 应用、Witnes…

Flink容错机制

容错机制 在Flink中&#xff0c;有一套完整的容错机制来保证故障后的恢复&#xff0c;其中最重要的就是检查点。 检查点的保存 1&#xff09;周期性的触发保存 “随时存档”确实恢复起来方便&#xff0c;可是需要我们不停地做存档操作。如果每处理一条数据就进行检查点的保存…

Turf处理等压线

Turf是一个用于空间分析的JavaScript库。它包括传统的空间操作、用于创建GeoJSON数据的辅助函数以及数据分类和统计工具。Turf可以作为客户端插件添加到您的网站&#xff0c;也可以使用Node.js在服务器端运行Turf。 Turf是一个模块化的js类库&#xff0c;所有的模块都是在packa…

优维产品最佳实践:实例视图

背 景 模型可以定义很多的字段&#xff0c;当这些字段越来越多的时候&#xff0c;直接打开实例页面&#xff0c;会杂乱无章的呈现出来&#xff0c;对于用户来说无法快速的找到想要的信息&#xff0c;也不便于查看数据。而且并不是所有的字段都一定会录入了数据&#xff0c;常常…

路由器和路由到底啥区别?

在Vue中会有路由&#xff08;Route&#xff09;的概念&#xff0c;一些伙伴还不知道嘞&#xff0c;这就给大家讲解一下 我们日常出行都会碰到导航这个概念。 导航系统会给出从当前位置到目标位置的建议路径,这就是路由。 而 GPS 导航仪根据路由提供的路径,告诉我们每个路口是…

文档在线预览word、pdf、excel文件转html以实现文档在线预览

目录 一、前言 1、aspose2 、poi pdfbox3 spire二、将文件转换成html字符串 1、将word文件转成html字符串 1.1 使用aspose1.2 使用poi1.3 使用spire2、将pdf文件转成html字符串 2.1 使用aspose2.2 使用 poi pbfbox2.3 使用spire3、将excel文件转成html字符串 3.1 使用aspose…

Linux常见指令(1)

Linux常见指令[1] 一.前言1.操作系统简述 二.Linux常见指令1.登录Xshell2.Linux下的常见命令1.pwd2.ls1.ls -a2.ls -d3.ls -l 3.cd Linux中的文件系统1.文件的相关知识2.Linux下目录结构的认识1.什么叫做路径?2.Linux的整体目录结构3.为什么要有路径呢?4.绝对路径与相对路径 …

IntelliJ IDEA - Maven 在控制台Maven编译正常,但是在IDEA中不正常,表现不一致

文章目录 现象原因解决验证 现象 一个Maven项目&#xff0c;当导入到IDEA后&#xff0c;无法在IDEA中正常的编译和下载jar依赖&#xff0c;类似下面的截图。 但是在Windows控制台却可以正常编译&#xff0c;类似下面的截图。 CMD执行&#xff1a;mvn clean install -Dmaven.te…

就只说 3 个 Java 面试题

在面试时&#xff0c;即使是经验丰富的开发人员&#xff0c;也可能会发现这是一些很棘手的问题&#xff1a; 1、Java中“transient”关键字的用途是什么&#xff1f;如何才能实现这一目标&#xff1f; 在 Java 中&#xff0c;“transient”关键字用于指示类的特定字段不应包含…