页面布局-1

news2024/11/25 8:16:48

1.定位

CSS 属性名功能属性值
position设置定位

static:不定位,默认值。

relative:相对定位。

absolute:绝对定位。

fixed:固定定位

left与参照点左侧距离长度
right与参照点右侧距离长度
top与参照点上侧距离长度
bottom与参照点下侧距离长度
z-index显示层级纯数字

1.1相对定位

1.1.1如何设置相对定位

position: relative

1.1.2相对定位元素定位的参考点

自己原来的位置

1.1.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>
        html{
            position: relative;
        }
        body{
            position: relative;
        }
        .wapper{
            
            width: 600px;
            height: 400px;
            background: #999;
        }
        .box1{
            width: 200px;
            height: 100px;
            background: blue;
        }
        .box2{
            position: relative;
            width: 200px;
            height: 100px;
            background: red;
        }
        .box3{
            width: 200px;
            height: 100px;
            background: yellow;
        }
    </style>
</head>
<body>
    <div class="wapper">
        <div class="box1">元素一</div>
        <div class="box2">元素二</div>
        <div class="box3">元素三</div>
    </div>
</body>
</html>

 1.2绝对定位

1.2.1设置绝对定位

position:absolute;

 1.2.2绝对定位元素定位的参考点

1. 绝对定位元素参照它的包含块进行定位
2. 一般元素的包含块就是父元素,绝对定位元素的包含块是第一个定位的祖先元素(从父元素开始向上找),如果没有定位的祖先元素,包含块就是整个页面

1.2.3绝对定位元素的特点

1. 脱离文档流
2. 不论元素原来的显示模式是什么,设置为绝对定位就是绝对定位元素; 同时设置浮动和绝对定位,浮动不生效。
3. 绝对定位元素具有自己的显示特点
   ① 默认宽高都是被内容撑开,不存在外边距的塌陷和合并
   ② 宽高内外边距都可以设置
   ③ 不会被父元素作为文本

<!DOCTYPE html>
<html lang="zh-CN">
<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>
        .wrapper {
            width: 800px;
            padding: 20px;
            background: #ccc;
        }

        .box {
            /* float: left; */
            width: 200px;
            height: 150px;
            padding: 10px;
            color: #fff;
        }

        .box01 {
            background: #900;
        }

        .box02 {
            /* 设置成相对定位 */
            position: relative;

            /* 定位元素 可以使用 left\right\top\bottom 调整位置 */
            /* left: 100px;
            top: 100px; */

            /* left: -20px;
            top: -20px; */

            /* left: 100px;
            right: 30px;
            right: -30px;
            bottom: -20px;
            bottom: 20px; */

            /* margin-left: 100px;
            margin-top: -100px; */

            top: -100px;

            background: #080;
        }

        .box03 {
            background: #099;
        }

        .boxs {
            margin-top: 60px;
        }
        .item {
            float: left;
            margin-right: 20px;
            margin-bottom: 20px;
            width:250px;
            height: 300px;
            padding: 20px;
            background: #ccc;
        }
        .item:hover {
            position: relative;
            top: -2px;
        }
    </style>
</head>
<body>
    <div class="wrapper">
        <div class="box box01">元素A</div>
        <div class="box box02">元素B</div>
        <div class="box box03">元素C</div>
    </div>

    <div class="boxs">
        <div class="item">商品项目</div>
        <div class="item">商品项目</div>
        <div class="item">商品项目</div>
        <div class="item">商品项目</div>
        <div class="item">商品项目</div>
        <div class="item">商品项目</div>
        <div class="item">商品项目</div>
        <div class="item">商品项目</div>
    </div>
</body>
</html>

 1.3固定定位

1.3.1如何设置为固定定位

position: fixed;

1.3.2固定定位的元素定位参考点 

1. 固定定位元素参照它的包含块进行定位
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>
         .wapper {
            /* position: relative; */
            width: 800px;
            padding: 20px;
            border: 4px dashed #999;
            background: #ccc;

            text-align: center;
        }

        .box {
            /* float: left; */
            width: 200px;
            height: 150px;
            padding: 10px;
            color: #fff;
        }

        .box01 {
            background: #900;
        }

        .box02 {
            /* 设置成固定定位 */
            position: fixed;

            right: 10px;
            top: 100px;

            background: #080;
        }

        .box03 {
            background: #099;
        }
    </style>
</head>
<body>
    <div class="wapper">
        <div class="box01">元素一</div>
        <div class="box02">元素二</div>
        <div class="box03">元素三</div>
    </div>

    <div style="height:1000px"></div>
</body>
</html>

1.3.3固定定位元素的特点(同绝对定位)

1. 脱离文档流
2. 不论元素原来的显示模式是什么,设置为固定定位就是固定定位元素; 同时设置浮动和固定定位,浮动不生效。
3. 固定定位元素具有自己的显示特点
   ① 默认宽高都是被内容撑开,不存在外边距的塌陷和合并
   ② 宽高内外边距都可以设置
   ③ 不会被父元素作为文本 

1.3.4定位显示层级 z-index 

1. 定位的元素默认显示层级是相同的,不论进行哪一种定位,后面的元素显示在上层; 定位元素的显示层级比不定位高。
2. 定位的可以通过 CSS 属性 z-index 设置显示层级,值是数字,可以是负值,值越大显示层级越高; 不定位的元素设置 z-index 无效!

 1.4定位元素(绝对和固定)的默认宽高计算规则

1. 定位的元素,如果没有固定宽度,同时 left 和 right 都会生效,进而影响到默认的宽度
2. 定位的元素,如果没有固定高度,同时 top 和 bottom 都会生效,进而影响到默认的高度

原始的样式 

设置 left和right

.box01 {
            background: #900;

            position: absolute;
            left: 0;
            right: 0;
            left: 100px;
            right: 20px;

            top: 0;
            bottom: 0;
            /* width: 200px; */
        }

设置固定宽度

.box01 {
            background: #900;

            position: absolute;
            left: 0;
            right: 0;
            left: 100px;
            right: 20px;

            top: 0;
            bottom: 0;
            width: 200px; 
        }

固定定位

        .box02 {
            position: fixed;
            left: 0;
            right: 0;
            top: 200px;
            bottom: 200px;

            background: #080;
        }

1.4设置定位元素(绝对和固定)在包含块中水平垂直都居中 

1.4.1方案一:

position: absolute/fixed;
left: 50%;
top:50%;
margin-left: -自身总宽度/2;
margin-top:-自身总高度/2;

设置居中

 .box {
            position: fixed;
            left: 50%;
            top: 50%;
            margin-left: -220px;
            margin-top: -120px;
            width: 400px;
            height: 200px;
            padding: 20px;
            color: #fff;
            background: #900;
        }

1.4.2方案二: 

position: absolute/fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;

 2.精灵图

把小的图片合并到一张大的图片上

多个元素使用相同的图片作为背景图像,但是设置不同的图像位置,实现各自元素显示的图案不同

2.1精灵图的优点

减少图片的请求次数,提高网页加载速度。

2.2制作精灵图在线工具

https://alloyteam.github.io/gopng/

<!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>
        .b1{
            width: 120px;
            height: 56px;
            background: url(./images/toolbars.png) -100px 0;
        }
        .b2{
            width: 120px;
            height: 56px;
            background: url(./images/toolbars.png) top right;
        }
        .b3{
            width: 18px;
            height: 20px;
            background: url(./images/toolbars.png) -97px -212px;
        }
    </style>
</head>
<body>
    <h1>精灵图</h1>
    <button class="b1"></button>
    <button class="b2"></button>
    <button class="b3"></button>
</body>
</html>

 

3.重置样式表

由于很多的元素有自己默认的样式,一般在使用时会将默认样式去掉,自己设计样式

1. reset.css  将元素自带的样式重置掉
2. normalize.css 重新设置了元素自带的样式,保持各浏览器统一,需要设计稿也使用normalize标准

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

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

相关文章

【数据结构初阶】队列

hello&#xff01; 目录 一、概念与结构 二、队列的实现 Queue.h Queue.c test.c 一、概念与结构 1、概念&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出的特性。 入队列&#xff1a;进行插入操作…

音视频概要

YUV原理的讲解 YUV是一种常见的视频像素格式&#xff0c;经常用在视频编解码上面&#xff0c;YUV分别由Y分量和U、V分量(红色投影Cr)组成。Y分量指的是亮度分量&#xff0c;也就是我们经常说的灰阶值&#xff0c;相当于一副灰色的图像。而U分量和V分量表示的是色度分量&#x…

搭建高可用OpenStack(Queen版)集群(九)之部署nova计算节点

一、搭建高可用OpenStack&#xff08;Queen版&#xff09;集群之部署计算节点 一、部署nova 1、安装nova-compute 在全部计算节点安装nova-compute服务 yum install python-openstackclient openstack-utils openstack-selinux -y yum install openstack-nova-compute -y 若yu…

基于vue框架的《大学计算机》课程思政资源共享平台ac9s7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;学生,教师,教研小组,章节分类,课程内容,资源类型,资源信息 开题报告内容 基于Vue框架的《大学计算机》课程思政资源共享平台 开题报告 一、引言 随着教育信息化的深入发展&#xff0c;高等教育领域对课程思政的重视程度日益提升。《大…

【kubernetes】pod控制器详解

一、pod控制器概述 1、Pod控制器作用 Pod控制器&#xff0c;是用于实现管理pod的中间层&#xff0c;确保pod资源符合预期的状态&#xff0c;pod的资源出现故障时&#xff0c;会尝试进行重启&#xff0c;当根据重启策略无效&#xff0c;则会重新新建pod的资源。 2、pod控制器…

Ethercat学习-SOEM主站源码解析(DC部分)

文章目录 SOEM DC模式源码简介示例用图ecx_porttimeecx_parentportecx_configdc如果从站不支持DC如果从站支持DC SOEM DC模式源码简介 示例用图 本文中都会围绕着这个图来讲&#xff0c;从站的port编号依次为0&#xff0c;3&#xff0c;1&#xff0c;2 在SOEM中&#xff0c;与…

C++11相关新特性(列表初始化、右值引用、可变参数模版)

目录 C11相关新特性 列表初始化 初始化简单变量 初始化容器 decltype关键字 C 11新增的容器 左值引用和右值引用 左值与右值 左值引用与右值引用 左值引用和右值引用的相互转化 右值引用的使用 拷贝构造函数与移动构造函数 赋值重载函数与移动赋值重载函数 元素插…

ZABBIX邮件监控发送信息

前言&#xff1a;本地邮箱&#xff0c;第三方邮箱&#xff0c;第三方邮箱加脚本 1、本地邮箱测试 #cd /home # ls laiyingx [rootzabbix ~]# vim /etc/postfix/main.cf /mydestination $myhostname, localhost.$mydomain, localhost,$mydomain [rootzabbix ~]# systemctl…

Python 函数返回yield还是return?这是个问题

如果你刚入门 Python&#xff0c;你可能之前没有遇到过yield。虽然它看起来很奇怪&#xff0c;但它是你编码工具库中的一个重要工具。在成为 Python 大师的道路上&#xff0c;你必须掌握它。 返回列表的函数 假设有一个函数&#xff0c;它可以一次性生成一系列值&#xff0c;…

代理服务器在HTTP请求中的应用:Ruby实例

摘要 在现代互联网架构中&#xff0c;代理服务器是不可或缺的组件&#xff0c;它提供了访问控制、数据加密、缓存和匿名访问等多种功能。本文将介绍代理服务器的基本概念&#xff0c;并以Ruby编程语言为例&#xff0c;展示如何在HTTP请求中使用代理服务器&#xff0c;包括设置…

树莓派4 AV没有视频输出

使用AV接口输出&#xff0c;没有画面 需要在config.txt文件中 增加配置 enable_tvout1config.txt 中的 dtoverlayvc4-kms-v3d 行末尾添加,composite&#xff1a; dtoverlayvc4-kms-v3d,composite默认情况下&#xff0c;输出 NTSC 复合视频。要选择不同的模式&#xff0c;请在…

python信息熵与信息增益

前言 最近在读几篇华为杯的优秀论文&#xff0c;都是关于数据预测相关的&#xff0c;准确来说是时间序列预测&#xff0c;在数据处理部分发现了一个有趣的内容“信息熵”&#xff0c;之前在周志华老师的西瓜书上决策树剪枝部分看到过&#xff0c;在数据降维的部分看到还是第一…

关于springboot的拦截器能力源码分析

首先你得有web环境&#xff0c;这个就不说了&#xff0c;springboot下很简单。 一、拦截器使用 我们先来使用一下拦截器。 步骤1、先创建一个Controller RestController RequestMapping("/test") public class MyController {GetMapping("/test/{name}"…

HAProxy原理及实例

目录 目录 haproxy简介 haproxy的基本信息 haproxy下载并查看版本 haproxy的基本配置信息 global配置 ​编辑多进程和多线程 启用多进程 启用多线程 haproxy开启多线程和多进程有什么用 proxies配置 defaults frontend backend listen socat工具 实例&#xff1a…

ESP32 SNTP 网络校时 钟表显示

8月12日(2) 例程环境&#xff1a;Windows 11、Visual Studio Code、IDF_V5.2.1、LVGL_V8.3.11、HelloBug ESP32 Pilot开发板 源码获取&#xff1a;https://item.taobao.com/item.htm?ftt&id652537645861 向商家索取对应源码 SNTP (Simple Network Time Protocol) 是一种简…

中科亿海微SoM模组——电机驱动板

电机驱动板 电机驱动板作为驱动电机的重要组成部分&#xff0c;被广泛应用于工业自动化、消费电子、汽车、家用电器等应用领域。在工业自动化中&#xff0c;电机驱动板主要用于控制机器人、数控机床、输送带等设备&#xff0c;确保其高效、精准地运行。在消费电子和家用电器中…

【ARM Coresight Debug 工具系列 -- Trace32 | ARM-DS5 | OpenOCD JLINK 关系与差】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 常用debug工具差异介绍Trace32ARM DS-5OpenOCDJ-Link 关系与差异差异 示例比较使用 Trace32 进行实时跟踪使用 ARM DS-5 进行高级调试使用 OpenOCD 进行开源调试 Summary 常用debug工具差异介绍 在嵌入式系统开发和…

阿里淘天校招校招开始啦,欢迎投递~

淘天校招&校招开始啦&#xff0c;欢迎投递~ 后续继续推出技术类面试资料&#xff0c;有问题也可咨询哦&#xff01; 校招内推码&#xff08;25年10月前均有效&#xff09; 社招内推码&#xff08;长期有效&#xff09;

Tarjan(五)vDCC缩点

Tarjan(五) vDCC点双联通分量&#xff1a; 需要之前的前置知识&#xff0c;需要搞懂什么是割点。在tarjan(2)中有介绍到。 点双连通分量是指在一个无向图中&#xff0c;如果一个子图是点双连通的&#xff08;即去掉该子图中的任意一个节点后&#xff0c;剩余的图仍然是连通的&a…

电商平台产品ID|CDN与预渲染|前端边缘计算

技术实现 都是通过ID拿到属性&#xff0c;进行预渲染html&#xff0c;通过 oss 分发出去 详情页这种基本都是通过 ssr 渲染出来&#xff0c;然后上缓存 CDN 分发到边缘节点来处理&#xff0c;具体逻辑可以参考 淘宝——EdgeRoutine边缘计算&#xff08;CDNServerless 边缘计算…