【一】盒子模型和浮动
【1】盒子模型
- 盒子模型(Box Model)是指在网页设计中,用于描述和布局元素的一种模型。
- 它将每个元素看作是一个具有四个边界的矩形盒子,包括内容区域(content)、内边距(padding)、边框(border)和外边距(margin)。
【2】组成部分
-
内容区域(Content):
-
- 盒子的实际内容,如文本、图像等。
-
内边距(Padding):
-
- 内容区域与边框之间的空间,用于控制内容与边框之间的距离。
-
边框(Border):
-
- 围绕内容区域和内边距的线条,用于给元素添加外观和样式。
-
外边距(Margin):
-
- 边框与其他元素之间的空间,用于控制元素与周围元素之间的距离。
【3】代码概述
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#d1 {width: 200px;height: 200px;background-color: rebeccapurple;border: 1px solid green;margin-bottom: 5px; /* 与下面的元素间距5px */margin-left: 10px; /* 与左边元素间距10px */margin-right: 15px; /* 与右边元素间距15px */margin-top: 20px; /* 与上部元素间距20px */}#d2 {width: 200px;height: 200px;background-color: aqua;border: 2px solid deeppink;/*margin: 5px 10px 15px 20px; !* 与数字对应的是 上 右 下 左 顺时针 *!*/margin: 0 auto; /* 居中显示 */padding: 5px 10px 15px 20px; /* 内边距 上 右 下 左 顺时针 */}</style>
</head>
<body><div id="d1">这是一个 div1 的标签
</div><div id="d2">这是一个 div2 的标签
</div></body>
</html>
【二】浮动
【1】浮动的作用
-
可以将块级标签浮动起来脱离正常的文档流
-
是多个块儿级标签可以在一行显示(全部飘在了空中)
-
脱离页面,浮动在页面之上
-
- 没有块级一说,本身多大,浮起来之后就只能占多大。
-
只要涉及到页面的布局,一般都是用浮动提前规划好
【2】示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#d1 {width: 200px;height: 200px;background-color: rebeccapurple;float: left;}#d2 {width: 200px;height: 200px;background-color: aqua;float: left;}</style>
</head>
<body><div id="d3"><div id="d1">这是一个 div1 的标签</div><div id="d2">这是一个 div2 的标签</div>
</div></body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#d1 {border: 3px solid red;}#d2 {width: 100px;height: 100px;background-color: orange;float: left;/*clear: both;*/}#d3 {width: 100px;height: 100px;background-color: blue;float: right;/*clear: both;*/}#d4 {width: 100px;height: 100px;background-color: green;/*clear: both;*//*clear: left;*//*clear: right;*/}.clear {/* 因为有的标签是行内标签 所以为了解决这个问题 转成块级标签*/display: block;clear: both;}</style>
</head>
<body><div id="d1">这是 div1 标签<div id="d2"> 这是 div2 标签</div><div id="d3">这是 div3 标签</div><div class="clear" id="d4">这是 div4 标签</div>
</div></body>
</html>
【三】溢出属性
【1】介绍
-
visible:
对溢出内容不做处理,内容可能会超出容器。
-
hidden:
隐藏溢出容器的内容且不出现滚动条。
-
scroll:
隐藏溢出容器的内容,溢出的内容可以通过滚动呈现。
-
auto:
当内容没有溢出容器时不出现滚动条,当内容溢出容器时出现滚动条,按需出现滚动条。
textarea
元素的overflow
默认值就是auto
。 -
clip:
与
hidden
一样,clip
也被用来隐藏溢出容器的内容且不出现滚动条。不同的地方在于,clip
是一个完全禁止滚动的容器,而hidden
仍然可以通过编程机制让内容可以滚动。
【2】代码示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#p1 {height: 200px;width: 200px;border: 2px solid green;/* 属性可见,但是超出的内容还是会超出 *//*overflow: visible;*//* 超出范围的内容全部被隐藏起来 *//*overflow: hidden;*//* 超出的内容会提供一个可以滑动的滑动条 *//*overflow: scroll;*//* 如果内容超出则会自动添加滑动条 */overflow: auto;}</style>
</head>
<body><p id="p1">今年高考语文作文一直是备受关注的焦点之一。作为中国高考中最重要的科目之一,语文作文不仅考察着考生的语言表达能力,更是对他们思维深度和文学素养的全面考量。今年的高考语文作文题目备受期待,引起了广泛的热议和关注....
</p>
<p>今年高考语文作文一直是备受关注的焦点之一。</p>
<p>作为中国高考中最重要的科目之一,</p>
<p>语文作文不仅考察着考生的语言表达能力,</p>
<p>更是对他们思维深度和文学素养的全面考量。</p>
</body>
</html>
【四】案例-圆形头像
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#p1 {float: left;}#d1 {height: 500px;width: 500px;border:1px solid red;background-image: url("https://p1.itc.cn/q_70/images01/20231210/182fa3bee24242408136e412504a8bc6.jpeg");background-size: cover;background-repeat: no-repeat;border-radius: 50%;float: left;}</style>
</head>
<body><p id="p1">div 标签用来划分区域 : 表示这块区域是用来放头像的</p>
<div id="d1">
<!-- <img src="https://p1.itc.cn/q_70/images01/20231210/182fa3bee24242408136e412504a8bc6.jpeg" alt="">-->
</div></body>
</html>
【五】定位
【1】四种定位方式介绍
-
静态定位(static):
对象遵循常规流。此时4个定位偏移属性不会被应用。
-
相对定位(relative):
对象遵循常规流,并且参照自身在常规流中的位置通过top,right,bottom,left这4个定位偏移属性进行偏移时不会影响常规流中的任何元素。
-
绝对定位(absolute):
对象脱离常规流,此时偏移属性参照的是离自身最近的定位祖先元素,如果没有定位的祖先元素,则一直回溯到
body
元素。盒子的偏移位置不影响常规流中的任何元素,其margin
不与其他任何margin
折叠。 -
固定定位(fixed):
与
absolute
一致,但偏移定位是以窗口为参考。当出现滚动条时,对象不会随着滚动。
【2】小结
-
相对定位
-
- 相对于标签原来的位置移动 relative
-
绝对定位(常用)
-
- 相对于已经定位过的父标签做移动,如果没有父标签那么就以body为父标签
- 当你不知道页面其他标签的位置和参数,只给了你一个父标签的参数,让你基于该标签做定位
-
固定定位(常用)
-
- 相对于浏览器窗口固定在某个位置
【3】示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#d1{height: 300px;width: 300px;background-color: red;border: 5px solid black;position: fixed;left: 50px;top: 50px;}</style>
</head>
<body><div id="d1"> 这是div1 标签 </div></body>
</html>
【六】模态框z-index
【1】引入
- 前端界面其实是一个三维坐标系 z轴指向用户
- 动态弹出的分层界面 我们也称之为叫模态框
【2】百度的模态框
- 层级
- 百度登录页面一共三层
- 最底部是正常内容(a=0)- 最远的
- 接着是黑色的透明区(a=99)- 中间的
- 最后是白色的登陆注册区(a=100)- 最远的
- 百度登录页面一共三层
【3】示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.index{background-color: green;}.over{position: fixed;left: 0;right: 0;top: 0;bottom: 0;background-color: rgb(127,127,127);z-index: 99;}.modal{background-color: white;height: 400px;width: 600px;position: fixed;margin: 0 auto;/*left: 50%;*//*right: 50%;*//*top: 50%;*//*bottom: 50%;*/z-index: 100;border-top-left-radius: 55pt 25pt;border-top-right-radius: 55pt 25pt;border-bottom-right-radius: 55pt 25pt;border-bottom-left-radius: 55pt 25pt;}</style>
</head>
<body><p>z-index : 控制当前页面的权重数字越大权重越高
</p>
<div class="index"> 这是 div1 标签 </div>
<div class="over"> 这是 div2 标签 </div>
<div class="modal"><h1 style="text-align: center">登陆页面</h1><form action=""><p>username:<input type="text" name="username" placeholder="用户名"></p><p>password:<input type="text" name="password" placeholder="密码"></p><p><input type="submit"></p></form>
</div></body>
</html>
【七】透明度修改
【1】引入
- 不单单可以修改颜色的透明度还可以修改字体的透明度
- rgba 只能修改颜色的透明度
- opacity 不只是能修改颜色还能修改字体的透明度
【2】示例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.font_both {font-size: 40px;font-weight: bold;}#p1 {/* 可以修改颜色的透明度 但是他不能让字体变透明 */background-color: rgba(255, 255, 255, 0.2);}#p2 {background-color: rgb(255, 255, 255);/* 既让颜色 又让字体都变透明 */opacity: 0.4;}</style>
</head>
<body><p class="font_both" id="p1"> 0000 </p>
<p class="font_both" id="p2"> 1111 </p>
</body>
</html>
</body>
</html>