前端讨论班--第二周培训
一)盒子模型
1.盒子模型-组成
-
内容区域 - width&heigt
-
内边距 - padding
-
边线框 - border
-
外边距 - margin(出现在盒子外面)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ background-color: red; height: 100px; width: 100px; color: white; padding: 20px; margin: 20px; border: 1px solid black; } </style> </head> <body> <div> 内容 </div> </body> </html>
2.盒子模型 - 边线框
1.属性名:border / border - 方位名词
2.属性值:边线框粗细 线条样式 颜色
3.常用线条样式:solid(实线) dotted(点线) dashed(虚线)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ margin: 20px; padding: 20px; /*实线*/ /*border: 1px solid #000;*/ /*虚线*/ /*border: 1px dashed red ;*/ /*点线*/ border: 4px dotted green; } </style> </head> <body> <div> 内容 </div> </body> </html>
4.设置单方向边线框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ margin: 20px; padding: 20px; border-top: 4px dotted green; border-right: 4px solid #000; border-left: 4px solid blue; border-bottom: 5px dashed red; } </style> </head> <body> <div> 内容 </div> </body> </html>
3.盒子模型 - 内边距
1.作用:设置 内容 与 盒子边缘 之间的距离
2.属性名:padding / padding - 方位名词
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ background:pink; width: 200px; height: 200px; padding: 50px; } </style> </head> <body> <div> 内容 </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>Document</title> <style> div{ background:pink; width: 200px; height: 200px; padding-left: 50px; padding-right: 60px; padding-top: 70px; padding-bottom: 80px; } </style> </head> <body> <div> 内容 </div> </body> </html>
3.多值写法
4个值(上右下左)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ background:pink; width: 200px; height: 200px; padding: 10px 20px 30px 40px ; } </style> </head> <body> <div> 内容 </div> </body> </html>
3个值(上 左右 下)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ background:pink; width: 200px; height: 200px; padding: 80px 30px 40px ; } </style> </head> <body> <div> 内容 </div> </body> </html>
2个值(上下 左右)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ background:pink; width: 200px; height: 200px; padding: 50px 40px ; } </style> </head> <body> <div> 内容 </div> </body> </html>
4.盒子模型 - 尺寸计算
1.默认情况:盒子尺寸 = 内容尺寸 + border尺寸 + 内边距(padding)尺寸
2.border/padding会撑大盒子
解决方法:自己计算 内减模式(box-sizing:boder-box)
5.盒子模型 - 外边距
1.作用:拉开两个盒子之间的距离
2.属性名:margin
3.版心居中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ background:pink; width: 200px; height: 200px; margin: auto; } </style> </head> <body> <div> 内容 </div> </body> </html>
6.清除默认样式
诸如:
`*{
margin: 0;
padding: 0;
box-sizing: border-box;
}`
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> *{ margin: 0; padding: 0; box-sizing: border-box; } /*去掉列表的样式符号*/ li{ list-style: none; } </style> </head> <body> <div> 内容 </div> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </body> </html>
7.盒子模型 - 元素溢出
1.作用:控制溢出元素的内容的显示方式
2.属性名:overflow
3.属性值:hidden(溢出隐藏) scroll(溢出滚动,无论是否溢出,都有滚动条) auto(溢出滚动,内容溢出才显示滚动条)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ background-color: red; width: 100px; height: 100px; overflow: hidden; } </style> </head> <body> <div> 内容ashljkdhalsjkdadsasdas dasdasdasdasdas dasdasdasdasdasdas dasdasdasdasdas dasdas </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>Document</title> <style> div{ background-color: red; width: 100px; height: 100px; overflow: scroll; } </style> </head> <body> <div> 内容ashljkdhalsjkdadsasdas dasdasdasdasdas dasdasdasdasdasdas dasdasdasdasdas dasdas </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>Document</title> <style> div{ background-color: red; width: 100px; height: 100px; overflow:auto; } </style> </head> <body> <div> 内容ashljkdhalsjkdadsasdas dasdasdasdasdas dasdasdasdasdasdas dasdasdasdasdas dasdas </div> </body> </html>
8.外边距问题 - 合并现象
1.场景:垂直排列的兄弟元素,上下margin会合并
2.现象:取两个margin中的较大值生效
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .one{ background-color: red; width: 100px; height: 100px; margin-bottom: 50px; } .two{ width: 100px; height: 100px; background-color: blue; margin-top:10px ; } </style> </head> <body> <div class="one"> </div> <div class="two"> </div> </body> </html>
9.外边距问题 - 塌陷问题
1.场景:父子级的标签,子级的添加上外边距会产生塌陷问题
2.现象:导致父级一起向下移动
3.解决方法:
-
取消子级margin,父级设置padding
-
父级设置overflow:hidden
-
父级设置boder-top
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .one{ background-color: red; width: 200px; height:200px; } .two{ width: 100px; height: 100px; background-color: blue; margin-top: 50px; } </style> </head> <body> <div class="one"> <div class="two"> dada </div> </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>Document</title> <style> .one{ background-color: red; width: 140px; height:140px; padding: 70px; } .two{ width: 100px; height: 100px; background-color: blue; } </style> </head> <body> <div class="one"> <div class="two"> dada </div> </div> </body> </html>
10.行内元素 - 内外边距问题
1.场景:行内元素添加margin和padding,无法改变元素垂直位置
2.解决方法:给行内元素添加line-height可以改变垂直位置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> span{ margin: 50px; padding: 20px; line-height: 100px; } </style> </head> <body> <span>标签</span> <span>标签</span> </body> </html>
11.盒子模型 - 圆角
1.作用:设置元素的外边框为圆角
2.属性名:border-radius
3.属性值:数字+px/百分比(多个值的话,在左上角开始顺时针变化,如果本身没被赋值,那么就与对角一样)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ margin: 50px auto; height: 200px; width: 200px; background-color: green; border-radius: 20px 40px 60px 80px; } </style> </head> <body> <div> </div> </body> </html>
4.常见应用 - 正圆形状(给正方形盒子设置圆角属性值为宽高的一半/50%)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ margin: 50px auto; height: 200px; width: 200px; background-color: green; border-radius: 50%; } </style> </head> <body> <div ></div> </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>Document</title> <style> img{ height: 200px; width: 200px; border-radius: 100px; } </style> </head> <body> <img src="./images/1.jpg" alt=""> </body> </html>
5.常见应用 - 胶囊形状(给长方形盒子设置圆角属性值为盒子高度的一半)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ margin: 50px auto; height: 100px; width: 200px; background-color: green; border-radius: 100px; } </style> </head> <body> <div ></div> </div> </body> </html>
12.盒子模型 - 阴影
1.作用:给元素设置阴影效果
2.属性名:box-shadow
3:属性值:x轴偏移量 y轴偏移量 模糊半径 扩散半径 颜色 内外阴影
注意:x轴偏移量 和 y轴偏移量必须书写
默认是外阴影,内阴影需要添加inset
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div{ margin: 50px auto; height: 200px; width: 200px; background-color: blue; box-shadow: 2px 5px 1px 3px red inset; } </style> </head> <body> <div> </div> </body> </html>