CSS 定位布局

news2024/11/18 1:50:43

定位布局共有4种方式

CSS定位使你可以将一个元素精确地放在页面上指定的地方。联合使用定位和浮动,能够创建多种高级而精确的布局。其中,定位布局共有4种方式。

  • 固定定位(fixed)
  • 相对定位(relative)
  • 绝对定位(absolute)
  • 静态定位(static)

固定定位:fixed

在CSS中,我们可以使用“position:fixed;”来实现固定定位。所谓的固定定位,指的是被固定的元素不会随着滚动条的拖动而改变位置。

position:fixed;
top:像素值;
bottom:像素值;
left:像素值;
right:像素值;

说明

“position:fixed;”是结合top、bottom、left和right这4个属性一起使用的。其中,先使用“position:fixed”让元素成为固定定位元素,接着使用top、bottom、left和right这4个属性来设置元素相对浏览器的位置。top、bottom、left和right这4个属性不一定会全部都用到,一般只会用到其中两个。注意,这4个值的参考对象是浏览器的4条边。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        #first
        {
            width:120px;
            height:1800px;
            border:1px solid gray;
            line-height:600px;
            background-color:#B7F1FF;
        }
        #second
        {
            position:fixed; /*设置元素为固定定位*/
            top:30px; /*距离浏览器顶部30px*/
            left:160px; /*距离浏览器左部160px*/
            width:60px;
            height:60px;
            border:1px solid silver;
            background-color:hotpink;
        }
    </style>
</head>
<body>
    <div id="first">无定位的div元素</div>
    <div id="second">固定定位的div元素</div>
</body>
</html>

分析

我们尝试拖动浏览器的滚动条,其中,有固定定位的div元素不会有任何位置改变,但没有定位的div元素会发生位置改变,如图23-2所示。

注意一下,这里只使用top属性和left属性来设置元素相对于浏览器顶边和左边的距离就可以准确定位该元素的位置了。top、bottom、left和right这4个属性不必全部用到,

大家稍微想一下就懂了。固定定位最常用于实现“回顶部特效”如图23-3所示,这个效果非常经典。为了实现更好的用户体验,大多数网站都用到了它。

相对定位:relative

在CSS中,我们可以使用“position:relative;”来实现相对定位。所谓的相对定位,指的是该元素的位置是相对于它的原始位置计算而来的。

position:relative;
top:像素值;
bottom;像素值;
left:像素值;
right:像素值;

说明

“position:relative;”也是结合top、bottom、left和right这4个属性一起使用的,其中,先使用“position:relative;”让元素成为相对定位元素,接着使用top、bottom、left和right这4个属性来设置元素的相对定位。

top、bottom、left和right这4个属性不一定会全部都用到,一般只会用到其中两个。这4个值的参考对象是该元素的原始位置。

注意,在默认情况下,固定定位元素的位置是相对浏览器而言的,而相对定位元素的位置是相对于原始位置而言的。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        #father
        {
            margin-top:30px;
            margin-left:30px;
            border:1px solid silver;
            background-color: lightskyblue;
        }
        #father div
        {
            width:100px;
            height:60px;
            margin:10px;
            background-color:hotpink;
            color:white;
            border:1px solid white;
        }
        #son2
        {
            /*这里设置son2的定位方式*/
        }
    </style>
</head>
<body>
    <div id="father">
        <div id="son1">第1个无定位的div元素</div>
        <div id="son2">相对定位的div元素</div>
        <div id="son3">第2个无定位的div元素</div>
    </div>
</body>
</html>

我们为第2个div元素加入相对定位,CSS代码如下。

#son2
{
    position:relative;
    top:20px;
    left:40px;
}

分析

从这个例子可以看出,相对定位元素的top和left是相对于该元素的原始位置而言的,这一点和固定定位是不一样的。

在相对定位中,对于top、right、bottom、left这4个属性,我们也只需要使用其中两个属性就可以确定一个元素的相对位置。

绝对定位:absolute

在CSS中,我们可以使用“position:absolute;”来实现绝对定位。绝对定位在几种定位方式中使用最为广泛,因为它能够很精确地把元素定位到任意你想要的位置。

一个元素变成了绝对定位元素,这个元素就完全脱离文档流了,绝对定位元素的前面或后面的元素会认为这个元素并不存在,此时这个元素浮于其他元素上面,已经完全独立出来了。

position:absolute;
top:像素值;
bottom:像素值;
left:像素值;
right:像素值;

说明

“position:absolute;”是结合top、bottom、left和right这4个属性一起使用的,先使用“position:absolute”让元素成为绝对定位元素,接着使用top、bottom、left和right这4个属性来设置元素相对浏览器的位置。

top、bottom、left和right这4个属性不一定会全部都用到,一般只会用到其中两个。默认情况下,这4个值的参考对象是浏览器的4条边。

对于前面3种定位方式,我们现在可以总结如下:默认情况下,固定定位绝对定位的位置是相对于浏览器而言的,而相对定位的位置是相对于原始位置而言的。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        #father
        {
            padding:15px;
            background-color:#0C6A9D;
            border:1px solid silver;
        }
        #father div{padding:10px;}
        #son1{background-color:#FCD568;}
       #son2
       {
        position:absolute;
        top:20px;
       right:40px;
      }
        #son3{background-color: lightskyblue;}
    </style>
</head>
<body>
    <div id="father">
        <div id="son1">box1</div>
        <div id="son2">box2</div>
        <div id="son3">box3</div>
    </div>
</body>
</html>

分析

从这个例子可以看出,绝对定位元素的top和right是相对于浏览器而言的。在绝对定位中,top、right、bottom、left这4个属性,我们也只需要其中两个属性就能确定一个元素的相对位置。

静态定位:static

在默认情况下,元素没有指定position属性时,这个元素就是静态定位的。也就是说,元素position属性的默认值是static。

一般情况下,我们用不到“position:static”,不过在使用JavaScript来控制元素定位时,如果想要使元素从其他定位方式变成静态定位,就需要使用“position:static”来实现。

在CSS入门中,我们只需要掌握固定定位、相对定位和绝对定位3种就可以了,静态定位了解一下就行。

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

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

相关文章

用Vue3.0 写过组件吗?如果想实现一个 Modal你会怎么设计?

一、组件设计 组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念&#xff08;组件&#xff09;来实现开发的模式 现在有一个场景&#xff0c;点击新增与编辑都弹框出来进行填写&#xff0c;功能上大同小异&#xff0c;可能只是标题内容或者是显示的主体内容稍微不同 …

安卓逆向之抽象函数public abstract的hook定位处理

一、抽象类调用过程 1、定义接口 public abstract class AbsNetHelper{public abstract int X(int x,int y); }2、其他类调用 public class f extends AbsNetHelper {public abstract int X(int x,int y){ return xy;} }二、如何HOOK 想hook调用AbsNetHelper类的X抽…

攻防世界web篇-robots

打开网址后&#xff0c;发现是一个空白页面的网页 但是&#xff0c;这个题目是robots&#xff0c;所以就联想到robots.txt这个目录&#xff0c;于是我就试了一下 注意&#xff1a;这里有个php的文件&#xff0c;这个应该就是一个目录文件 当输入后&#xff0c;直接回车&#…

【C语言必知必会 | 子系列第四篇】深入剖析选择结构(2)

引言 C语言是一门面向过程的、抽象化的通用程序设计语言&#xff0c;广泛应用于底层开发。它在编程语言中具有举足轻重的地位。 此文为【C语言必知必会】子系列第四篇&#xff0c;基于进行C语言选择结构的编程题专项练习&#xff0c;结合专题优质题目&#xff0c;带领读者从0开…

VMware Workstation里面安装ubuntu20.04的流程

文章目录 前言一、获取 desktop ubuntu20.04 安装镜像二、VMware Workstation下安装ubuntu20.041. VMware Workstation 创建一个新的虚拟机2. ubuntu20.04的安装过程3. 登录ubuntu20.044. 移除 ubuntu20.04 安装镜像总结参考资料前言 本文主要介绍如何在PC上的虚拟机(VMware W…

ESP32C3 LuatOS TM1650①驱动测试

合宙TM1650驱动资料 TM1650.lua源码 引脚连接 TM1650ESP32C3SCLGPIO5SDAGPIO4 下载TM1650.lua源码&#xff0c;并以文件形式保存在项目文件夹中 驱动测试源码 --注意:因使用了sys.wait()所有api需要在协程中使用 -- 用法实例 PROJECT "ESP32C3_TM1650" VERSION …

批量xls转换为xlsx

import win32com.client as win32 import os# 另存为xlsx的文件路径 xlsx_file r"F:\志丹\1020Excel汇总\成果表备份\xlsx" xls_file r"F:\志丹\1020Excel汇总\成果表备份" for file in os.scandir(xls_file):suffix file.name.split(".")[-1…

AQS源码与实现原理

前言 前段时间在看ReentrantLocak及其依赖的基础模板类AbstractQueuedSynchronizer的源码&#xff0c;自己看源码同时在网上找文章&#xff0c;然而对源码中的一些细节问题还是不太理解&#xff0c;比如为什么阻塞的线程因中断被唤醒后需要重新中断&#xff0c;为什么被Condit…

uipath 调用 webapi 接口使用示例

环境依赖下载 提示&#xff1a;需要先按照webapi包依赖 文章目录 环境依赖下载一、webapi是什么&#xff1f;二、使用步骤1.导入cURL http 请求 一、webapi是什么&#xff1f; UiPath WebAPI包是一个用于实现与Web服务进行交互的UiPath活动库。它基于.NET Framework 4.5及以上…

ddns-go配合aliyun域名解析通过ipv6实现共享桌面

ddns-go配合aliyun域名解析通过ipv6实现共享桌面 前提&#xff1a; 必须拥有ipv6公网IP&#xff0c;测试IPv6 测试 (testipv6.cn) 如果是光猫拨号一点要选择ipv4和ipv6&#xff0c;同时要看光猫是否支持ipv6转发&#xff0c;如果不支持转发也不行&#xff0c;光猫不支持ipv6…

一阶系统阶跃响应实现规划方波目标值

一阶系统单位阶跃响应 一阶系统传递函数&#xff0c;实质是一阶惯性环节&#xff0c;T为一阶系统时间常数。 输入信号为单位阶跃函数&#xff0c;数学表达式 单位阶跃函数拉氏变换 输出一阶系统单位阶跃响应 拉普拉斯反变换 使用前向差分法对一阶系统离散化 将z变换写成差分方…

分类网络-类别不均衡问题之FocalLoss

有训练和测代码如下&#xff1a;(完整代码来自CNN从搭建到部署实战) train.py import torch import torchvision import time import argparse import importlib from loss import FocalLossdef parse_args():parser argparse.ArgumentParser(training)parser.add_argument(-…

Monocle 3 | 太牛了!单细胞必学R包!~(一)(预处理与降维聚类)

1写在前面 忙碌的一周结束了&#xff0c;终于迎来周末了。&#x1fae0; 这周的手术真的是做到崩溃&#xff0c;2天的手术都过点了。&#x1fae0; 真的希望有时间静下来思考一下。&#x1fae0; 最近的教程可能会陆续写一下Monocle 3&#xff0c;炙手可热啊&#xff0c;欢迎大…

【七:docken+jenkens部署】

一&#xff1a;腾讯云轻量服务器docker部署Jenkins https://blog.csdn.net/qq_35402057/article/details/123589493 步骤1&#xff1a;查询jenkins版本&#xff1a;docker search jenkins步骤2&#xff1a;拉取jenkins镜像 docker pull jenkins/jenkins:lts步骤3&#xff1a;…

设计模式:外观模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

大家好&#xff01;本节主要介绍设计模式中的外观模式。 简介&#xff1a; 外观模式&#xff0c;它是一种设计模式&#xff0c;它为子系统中的一组接口提供一个统一的、简单的接口。这种模式主张按照描述和判断资料来评价课程&#xff0c;关键活动是在课程实施的全过程中进行…

【C语言必知必会 | 第八篇】一文带你精通循环结构

引言 C语言是一门面向过程的、抽象化的通用程序设计语言&#xff0c;广泛应用于底层开发。它在编程语言中具有举足轻重的地位。 此文为【C语言必知必会】系列第八篇&#xff0c;进行C语言循环结构的专项练习&#xff0c;结合专题优质题目&#xff0c;带领读者从0开始&#xff0…

丰富功能带来新奇体验,乐划锁屏持续引领行业潮流

在日常使用手机的过程中,为了省电或在口袋里误触,不少用户都会对手机进行锁屏,有这么一款锁屏软件,不仅能够解决以上功能性问题,还有不少其他新奇的功能,那就是乐划锁屏。 现在“手机不离手”、每天翻看手机上百遍的年轻人,最喜欢关注什么样的内容呢?乐划锁屏以图片和视频为主…

RabbitMQ官方案例学习记录

官方文档&#xff1a;RabbitMQ教程 — RabbitMQ (rabbitmq.com) 一、安装RabbitMQ服务 直接使用docker在服务器上安装 docker run -it -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management 安装完成后&#xff0c;访问15672端口&#xff0c;默认用户…

实时数据更新与Apollo:探索GraphQL订阅

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

FIFO设计16*8,verilog,源码和视频

名称&#xff1a;FIFO设计16*8&#xff0c;数据显示在数码管 软件&#xff1a;Quartus 语言&#xff1a;Verilog 代码功能&#xff1a; 使用verilog语言设计一个16*8的FIFO&#xff0c;深度16&#xff0c;宽度为8。可对FIFO进行写和读&#xff0c;并将FIFO读出的数据显示到…