Day09-网页布局实战定位

news2024/11/25 13:17:30

文章目录

  • 网页布局实战
    • 一 表格
      • 案例1-单元格的合并
      • 案例2-随堂练习
    • 二 定位
      • 1 文档流
      • 2 position 共有四个属性值:
      • 3 固定定位
        • 案例1-右下角广告
        • 案例2-头部固定
        • 案例3-div居中
      • 4 相对定位
        • 案例1-基础案例
        • 案例2-文字居于水平线中间
      • 5 绝对定位
        • 案例1-基础案例
      • 6 定位的层次关系 z-index
        • 案例1
      • 踩坑记
    • 三 贯穿案例
      • 案例1-贯穿案例-家居网头部定位
      • 案例2-贯穿案例-家居网分类定位

网页布局实战

一 表格

案例1-单元格的合并

colspan=""	列合并
rowspan=""	行合并
		<table border="1" cellpadding="0" cellspacing="0" width="300px" height="200px">
			<tr>
				<!-- 列合并(横着合并) -->
				<td colspan="2"></td>
				<td></td>
			</tr>
			<tr>
				<!-- 行合并(竖着合并) -->
				<td rowspan="2"></td>
				<td></td>
				<td></td>
			</tr>
			<tr>
				<td></td>
				<td></td>
			</tr>
		</table>

案例2-随堂练习

image-20211102114930835

二 定位

1 文档流

文档流和非文档流的定义:
1.什么是文档流?
 解释:将窗体自上而下分成一行行,并在每一行中按从左到右的顺序来排放元素,这个我们称之为文档流。

2.什么是脱离文档流(非文档流)
 解释:也就是将元素从普通的布局排版中拿走。

2 position 共有四个属性值:

fixed  固定定位   -- 相对于浏览器定位
	 |-脱离文档流
relative 相对定位 -- 相对于元素自身的位置来定位
     |-不脱离文档流,相对定位会保留原来盒子的位置	 
absolute 绝对定位 -- 是相对于一个【有定位】父容器的定位,如果所有的父容器都没有加定位,那么相对于body定位
	 |-脱离文档流

static 默认值 -- 没有定位效果

3 固定定位

​ 相对于浏览器窗口定位

标签加了固定定位后,默认100%的宽度会丢失

行内标签加了固定定位后,会自动的转成块级元素

固定定位,原来的位置不会被保留

案例1-右下角广告

image-20230301143027665

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        body{
            height: 2000px;
        }
        /* 
            固定定位 fixed
                相对于浏览器窗口定位
                固定定位会让元素脱离文档流
                固定定位,元素100%的宽度会消失
         */
        .box{
            /* 固定定位 */
            position: fixed;
            /* 距离浏览器窗口顶部的尺寸 */
            /* top: 100px; */
            /* 距离浏览器窗口左边的尺寸 */
            /* left: 100px; */
            /* 距离浏览器窗口右边的尺寸 */
            right: 0;
            /* 距离浏览器窗口底部的尺寸 */
            bottom: 0;
        }


        .box img{
            width: 200px;
        }
    </style>

</head>
<body>
    <div class="box">
        <img src="https://s3m4.fenxi.com/galileo/6b350532650d8768ac060cf81865ce9c.gif_.webp" alt="">
    </div>
</body>
</html>

案例2-头部固定

image-20230301144823448

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        header{
            height: 100px;
            width: 100%;
            background-color: orange;
            /* 固定定位 */
            position: fixed;
            top: 0;
        }
        main{
            height: 2000px;
            background-color: brown;
        }
        /* 通过给body加padding-top的形式解决主体被头部盖住的问题 */
        body{
            padding-top: 100px;
            box-sizing: border-box;
        }
    </style>
</head>
<body>
    <header>头部</header>
    <main>主体</main>
</body>
</html>

案例3-div居中

image-20221214111257375

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }

        .box{
            width: 300px;
            height: 300px;
            background-color: brown;
            position: fixed;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            margin: auto;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

4 相对定位

相对于元素自身位置定位,主要用来微调自身位置

相对定位不脱离文档流,而且会占有它原来的空间

案例1-基础案例

image-20221129092711100

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1{
            width: 200px;
            height: 200px;
            background-color: aqua;
            /* 
                相对定位
                相对于自身原来的位置定位,不脱离文档流,而且会占有它原来的空间
             */
            position: relative;
            left: 10px;
            top: 5px;

        }
        .box2{
            width: 300px;
            height: 300px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="box1">box1</div>
    <div class="box2"></div>
</body>
</html>

案例2-文字居于水平线中间

image-20221214115257276

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            border-bottom: 4px black solid;
            margin: 0 auto;
            text-align: center;
        }
        .box .sp{
            position: relative;
            top: 12px;
            background-color: white;
            padding: 0 10px;
        }
    </style>
</head>
<body>
    <div class="box">
        <span class="sp">新闻中心</span>
    </div>
</body>
</html>

5 绝对定位

​ 是相对于一个【有定位】父容器的定位,如果所有的父容器都没有加定位,那么相对于body定位

​ 用来把盒子放在父容器的某个位置

块级标签加了绝对定位后,默认100%的宽度会丢失

行内标签加了绝对定位后,会自动转成块级元素

绝对定位脱离文档流,不会保留原来的位置

案例1-基础案例

image-20221214142657987

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0px;
            padding: 0px;
        }
        div{
            margin: 50px;
            padding: 50px;
            border: 10px solid red;
        }

        .box{
            background-color: aqua;
            position: absolute;
            top: 0px;
            left: 0px;
        }
        .two{
            position: relative;
        }
    </style>
</head>
<body>
    <div class="one">
        <div class="two">
            <p class="box">这是最小的盒子</p>
        </div>
    </div>
</body>
</html>

6 定位的层次关系 z-index

因为我们做了定位的元素都会在普通元素上的上方,如果有多个定位的元素叠加在一起了,那么默认后出现的叠加在前面出现的上面如果我们希望手动的调整定位的层次关系。

我们可以手动改变z-index的值来改变元素的层级关系

数字越高,层级也越高,如果定位元素没设置z-index。默认值就是0

案例1

image-20230301165318137

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
            position: fixed;
            top: 0;
            left: 0;
            /* 我们可以手动改变z-index的值来改变元素的层级关系
            数字越高,层级也越高,如果定位元素没设置z-index。默认值就是0 */
            z-index: 10;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: green;
            position: fixed;
            top: 50px;
            left: 50px;

            z-index: 15;
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: blue;
            position: fixed;
            top: 100px;
            left: 100px;

            z-index: 20;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
</body>
</html>

踩坑记

1.如果是头部固定。后续的内容会顶到之前头部所在的空间,被头部所遮住。这个时候不建议大家使用margin-top去移动,会有很多的副作用,不太好操作。建议给body使用padding-top将内容挤下去,保证正确显示

2.如果某个元素设置了margin为负值,但是被之前的元素给遮住了。这个时候可以给这个元素设置一个相对定位。保证层级比普通元素更高。如果还不够,再设置z-index

三 贯穿案例

案例1-贯穿案例-家居网头部定位

image-20221129103643745

image-20230301172725011

案例2-贯穿案例-家居网分类定位

image-20221129104701951

image-20230301175225044

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

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

相关文章

免费下载丨一看即会,Serverless 技术进阶必读百宝书

过去一年&#xff0c;全球正在加速推进云计算的 Serverless 化进程。Serverless 架构已经逐渐从“被接受”走向了“被学习”和“被应用”。云的产品体系正在 Serverless 化&#xff0c;从计算、存储、数据库到中间件&#xff0c;越来越多的云产品采用了 Serverless 模式。服务器…

筑基九层 —— 指针详解

目录 前言&#xff1a; 指针详解 前言&#xff1a; 1.CSDN由于我的排版不怎么好看&#xff0c;我的有道云笔记比较美观&#xff0c;请移步有道云笔记 2.修炼必备 1&#xff09;入门必备&#xff1a;VS2019社区版&#xff0c;下载地址&#xff1a;Visual Studio 较旧的下载 -…

现代卷积神经网络(GoogleNet),并使用GoogleNet进行实战CIFAR10分类

专栏&#xff1a;神经网络复现目录 本章介绍的是现代神经网络的结构和复现&#xff0c;包括深度卷积神经网络&#xff08;AlexNet&#xff09;&#xff0c;VGG&#xff0c;NiN&#xff0c;GoogleNet&#xff0c;残差网络&#xff08;ResNet&#xff09;&#xff0c;稠密连接网络…

【Hello Linux】进程控制 (内含思维导图)

作者&#xff1a;小萌新 专栏&#xff1a;Linux 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;简单介绍下进程的控制 包括进程启动 进程终止 进程等待 进程替换等概念 进程控制介绍进程创建fork函数fork函数的返回值fork函数的使用…

利用Cookie劫持+HTML注入进行钓鱼攻击

目录 HTML注入和cookie劫持&#xff1a; 发现漏洞 实际利用 来源 HTML注入和cookie劫持&#xff1a; HTML注入漏洞一般是由于在用户能够控制的输入点上&#xff0c;由于缺乏安全过滤&#xff0c;导致攻击者能将任意HTML代码注入网页。此类漏洞可能会引起许多后续攻击&#…

高德地图绘制图层

效果图&#xff1a; //初始数据 data(){return{//地图map:{address:,map:null,//当前鼠标绘制mouseTool:null,//当前编辑polyEditor:null,//覆盖物的绘制点【用于编辑】mouseToolArr:[],//覆盖物的poly对象polyArr:[],//地图右侧功能按钮signNumber:0,//保存提交的覆盖物的点数…

win10添加右键菜单打开VSCode

当进入一个文件夹后&#xff0c;想右键直接打开我的工程&#xff0c;用发现没有vscode项。 我了方便&#xff0c;把 VSCode添加到右键菜单吧。 1. 在桌面新建一个txt文档&#xff0c;用文本编辑器打开 2. 查看vscode所在位置 在桌面找到vscode快捷键图标&#xff0c;右键--&g…

2023年考PMP真的有用吗?含备考资料分享~

对于项目管理者来说&#xff0c;是真的有用&#xff0c;前提是你真的学进去了&#xff0c;是为了学习而考&#xff0c;而不是为了考证而考&#xff0c;考试的作用不是为了让你得到证书&#xff0c;而是考校你的水平&#xff0c;知识是知识&#xff0c;经验是经验&#xff0c;缺…

【浅学Java】MySQL索引七连炮

MySQL索引面试七连炮0. 谈一下你对索引的理解1. MySQL索引原理和数据结构能介绍一下吗2. B树和B树的区别3. MySQL聚簇索引和非聚簇索引的区别4. 使用MySQL索引都有什么原则4.1 回表4.2 索引覆盖4.3 最左匹配4.4 索引下推5. 不同的存储引擎是如何进行数据的存储的6. MySQL组合索…

根据文件内容批量更改文件名称

注意的问题&#xff1a; ★★★待处理的文件顺序要与excel中新的文件名称顺序一致&#xff0c;我直接复制文件地址到excel中顺序与原来顺序不一样&#xff0c;也不能通过排序得到原来的顺序&#xff0c;这里给出一种解决办法&#xff0c;具体步骤见2数据预处理阶段。 1. 这是我…

最新版本OpenAI怎么调试--用Postman调试最新版OpenAI-API

动动小手指&#xff0c;去到openai的API介绍页面。 https://platform.openai.com/docs/api-reference/models 通过官网的提示&#xff0c;可以copy对应的调试命令进行测试。 本文主要通过curl命令实现。 打开Postman&#xff0c;对&#xff0c;就是那个测试接口用的postman ​…

浙江首场千人大会现场爆满!实在智能九哥专题演讲:企业数字化转型,从实在RPA开始!

为帮助众多电商商家探索数字时代下新赛道、新趋势、新方向&#xff0c;制定有目标、有节奏的全年生意规划&#xff0c;“未来电商高峰论坛暨电商生态赋能大会”于3月4日在杭州正式拉开序幕。本次大会旨在向品牌电商企业主、运营操盘手分享数字电商时代的黄金趋势及运营策略&…

【C++】30h速成C++从入门到精通(继承)

继承的概念及定义继承的概念继承&#xff08;inheritance&#xff09;机制是面向对象程序设计使代码可以复用的重要手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象程序…

数据结构——链表OJ题目讲解(1)

作者&#xff1a;几冬雪来 时间&#xff1a;2023年3月7日 内容&#xff1a;数据结构链表OJ题目讲解 题目来源&#xff1a;力扣和牛客 目录 前言&#xff1a; 刷题&#xff1a; 1.移出链表元素&#xff1a; 2.链表的中间结点&#xff1a; 3. 链表中倒数第k个结点&#xff1…

第六届省赛——8移动距离(总结规律)

题目&#xff1a;X星球居民小区的楼房全是一样的&#xff0c;并且按矩阵样式排列。其楼房的编号为1,2,3...当排满一行时&#xff0c;从下一行相邻的楼往反方向排号。比如&#xff1a;当小区排号宽度为6时&#xff0c;开始情形如下&#xff1a;1 2 3 4 5 612 11 10 9 8 713 14 1…

【论文简述】MVSTER: Epipolar Transformer for EfficientMulti-View Stereo(ECCV 2022)

一、论文简述 1. 第一作者&#xff1a;Xiaofeng Wang 2. 发表年份&#xff1a;2022 3. 发表期刊&#xff1a;ECCV 4. 关键词&#xff1a;MVS、3D重建、Transformer、极线几何 5. 探索动机&#xff1a;融合多视图代价体很关键&#xff0c;现有的方法效率低&#xff0c;引入…

【Git】P2 分支(创建分支,合并分支,分支冲突,分支分类)

分支分支的概念2077 与 分支git - 分支分支语句查看与创建分支切换与删除分支合并分支分支冲突分支分类分支的概念 什么是分支&#xff1f; 2077 与 分支 我最喜欢的游戏就是 赛博朋克2077&#xff0c;美国末日 和 GTA&#xff0c;下图是2077的存档。 存档非常多的原因是因为…

JavaScript 语句、注释和代码块实例集合

文章目录JavaScript 语句、注释和代码块实例集合JavaScript 语句JavaScript 代码块JavaScript 单行注释JavaScript 多行注释使用单行注释来防止执行使用多行注释来防止执行JavaScript 语句、注释和代码块实例集合 JavaScript 语句 源码 <!DOCTYPE html> <html> &…

Springboot 读取模板excel信息内容并发送邮件, 并不是你想想中的那么简单

Springboot 读取模板excel信息内容并发送邮件 背景技术选型搭建过程数据加密隐藏问题暴露背景追溯解决背景 在我们日常开发中, 会遇到这样一种场景, 就是读取表格中的数据, 并将数据以附件的形式通过邮箱发送到表格中的每个人 即: excel 读取 excel 写入 发送邮件(携带附件), 例…

Volsdf Sampling algorithm

l论文作者开发一个算法计算抽样S方程中使用 I(c,v)≈I^S(c,v)∑i1m−1τ^iLiI(\boldsymbol{c}, \boldsymbol{v}) \approx \hat{I}_{\mathcal{S}}(\boldsymbol{c}, \boldsymbol{v})\sum_{i1}^{m-1} \hat{\tau}_{i} L_{i} I(c,v)≈I^S​(c,v)i1∑m−1​τ^i​Li​ 首先是通过利用…