「CSS」知识点笔记:position

简介: 「CSS」知识点笔记:position

前言

Hello!小伙伴!
首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
哈哈 自我介绍一下
昵称:海轰
标签:程序猿一只|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~)
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!

CSS position

作用

规定元素的定位类型

说明

  • 这个属性定义建立元素布局所用的定位机制
  • 任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。
  • 相对定位元素会相对于它在正常流中的默认位置偏移。

在这里插入图片描述

可能的值

在这里插入图片描述

absolute

  • 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
  • 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

示例1

<html>
<head>
    <style type="text/css">
        .item_1 {
            background-color: #eea2a4;
            width: 500px;
            height: 300px;
            position: absolute;
            left: 100px;
            top: 150px
        }
    </style>
</head>
<body>
    <div class="item_1"></div>
</body>
</html>

相对于浏览器进行定位,效果图如下:
在这里插入图片描述

示例2

<html>
<head>
    <style type="text/css">
    .item_0{
        background-color: #eea6b7;
            width: 500px;
            height: 300px;
    }
        .item_1 {
            background-color: #eea2a4;
            width: 500px;
            height: 300px;
            position: absolute;
            left: 100px;
            top: 150px
        }
    </style>
</head>
<body>
    <div class="item_0"></div>
     <div class="item_1"></div>
</body>
</html>

item_0和item_1是并列关系,item_1的父元素还是理解为是浏览器,所以还是相对于浏览器定位,效果图如下:
在这里插入图片描述

示例3

<html>
<head>
    <style type="text/css">
        .item_-1 {
            background-color: #951c48;
            width: 500px;
            height: 300px;
        }
        .item_0 {
            background-color: #eea6b7;
            width: 500px;
            height: 300px;
        }
        .item_1 {
            background-color: #eea2a4;
            width: 500px;
            height: 300px;
            position: absolute;
            left: 100px;
            top: 150px
        }
    </style>
</head>
<body>
    <div class="item_-1"></div>
    <div class="item_0"></div>
    <div class="item_1"></div>
</body>
</html>

item_-1、item_0和item_1是并列关系,item_1的父元素还是理解为是浏览器,所以还是相对于浏览器定位,效果图如下:
在这里插入图片描述

示例4

<html>
<head>
    <style type="text/css">
        .item_-2 {
            position: fixed;
            top: 100px;
            left: 100px;
            background-color: #51c4d3;
            width: 500px;
            height: 300px;
        }
        .item_-1 {
            background-color: #951c48;
            width: 500px;
            height: 300px;
        }
        .item_0 {
            background-color: #eea6b7;
            width: 500px;
            height: 300px;
        }
        .item_1 {
            background-color: #eea2a4;
            width: 500px;
            height: 300px;
            position: absolute;
            left: 100px;
            top: 150px
        }
    </style>
</head>
<body>
    <div class="item_-2"></div>
    <div class="item_-1"></div>
    <div class="item_0"></div>
    <div class="item_1"></div>
</body>
</html>

item_1的父元素依旧可以理解为浏览器,item_-2的定位是fixed,依据浏览器定位,但是item_-2与item_1不是父元素与子元素的关系,只是并列,没有影响
在这里插入图片描述

示例5(重点)

<html>
<head>
    <style type="text/css">
        .item_a {
            position: fixed;
            top: 100px;
            left: 100px;
            background-color: #51c4d3;
            width: 500px;
            height: 300px;
        }
        .item_b {
            background-color: #eea2a4;
            width: 500px;
            height: 300px;
            position: absolute;
            left: 100px;
            top: 150px
        }
    </style>
</head>
<body>
    <div class="item_a">
        <div class="item_b"></div>
    </div>
</body>
</html>

item_a是位置属性是fixed,且是item_b的父元素,根据absolute的定义:除static以外的第一个父元素,可以得出,item_b的定义的参照item_a的,效果图如下:
在这里插入图片描述

总结:在使用absolute时,首先应该找到除static以外的第一个父元素,再依据这个父元素进行定位

fixed

示例1

<html>
<head>
    <style type="text/css">
        .item_a {
            background-color: #51c4d3;
            width: 500px;
            height: 300px;
            position: fixed;
            top: 200px;
            left: 100px;
        }
    </style>
</head>
<body>
    <div class="item_a">
    </div>
</body>
</html>

依据浏览器定位,效果图如下:
在这里插入图片描述

示例2

<html>
<head>
    <style type="text/css">
        .item_a {
            background-color: #51c4d3;
            width: 500px;
            height: 300px;
            position: fixed;
            top: 200px;
            left: 100px;
        }
        .item_b {
            background-color: #101f30;
            width: 500px;
            height: 300px;
        }
    </style>
</head>
<body>
    <div class="item_b"></div>
    <div class="item_a">
    </div>
</body>
</html>

依据浏览器定位,效果图如下:
在这里插入图片描述

示例3

<html>
<head>
    <style type="text/css">
        .item_a {
            background-color: #51c4d3;
            width: 500px;
            height: 300px;
            position: fixed;
            top: 200px;
            left: 100px;
        }
        .item_b {
            background-color: #101f30;
            width: 500px;
            height: 300px;
        }
    </style>
</head>
<body>
    <div class="item_b">
        <div class="item_a"></div>
    </div>
    </div>
</body>
</html>

尽管item_b是item_a的父元素,但是item_a的位置属性是fixed,依然是依据浏览器定位,效果图如下:
在这里插入图片描述

总结:fixed无论什么情况下,都是依据浏览器进行定位!

relative

示例1

<html>
<head>
    <style type="text/css">
        .item_a {
            background-color: #51c4d3;
            width: 500px;
            height: 300px;
        }
        .item_b {
            background-color: #101f30;
            width: 500px;
            height: 300px;
            position: relative;
            left: 50px;
        }
    </style>
</head>
<body>
    <div class="item_a"></div>
    <div class="item_b"></div>
    </div>
</body>
</html>

相对于正常位置进行定位,效果图如下:

在这里插入图片描述
正常位置
在这里插入图片描述

总结:relative是依据其元素的正常位置进行定位的

结语

学习于:

https://www.w3school.com.cn/cssref/pr_class_position.asp

结合教程学习基础,同时再动手敲代码。

上述理解仅为个人理解,如有不正确的地方,欢迎您的指出~

目录
相关文章
|
10月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
748 0
|
机器学习/深度学习 前端开发 JavaScript
CSS动画知识点
CSS动画知识点
|
前端开发
CSS网页布局综合练习(涵盖大多CSS知识点)
CSS网页布局综合练习(涵盖大多CSS知识点)
|
前端开发
CSS网页布局综合练习(涵盖大多CSS知识点)
CSS网页布局综合练习(涵盖大多CSS知识点)
|
Web App开发 前端开发 JavaScript
「offer来了」1张思维导图,6大知识板块,带你梳理面试中CSS的知识点!
该文章通过一张思维导图和六大知识板块系统梳理了前端面试中涉及的CSS核心知识点,包括CSS框架、基础样式问题、布局技巧、动画处理、浏览器兼容性及性能优化等方面的内容。
|
前端开发 编译器
CSS定位(如果想知道CSS有关定位的知识点,那么只看这一篇就足够了!)
CSS定位(如果想知道CSS有关定位的知识点,那么只看这一篇就足够了!)
|
前端开发 容器
CSS弹性盒子知识点
CSS弹性盒子知识点
|
前端开发
CSS常用属性之(列表、表格、鼠标)属性,(如果想知道CSS的列表、表格、鼠标相关的属性知识点,那么只看这一篇就足够了!)
CSS常用属性之(列表、表格、鼠标)属性,(如果想知道CSS的列表、表格、鼠标相关的属性知识点,那么只看这一篇就足够了!)
|
前端开发 容器
CSS3 新增背景属性 + 新增边框属性(如果想知道CSS3新增背景属性和新增边框属性的知识点,那么只看这一篇就够了!)
CSS3 新增背景属性 + 新增边框属性(如果想知道CSS3新增背景属性和新增边框属性的知识点,那么只看这一篇就够了!)
|
前端开发 开发者
CSS盒子模型(如果想知道CSS有关盒子模型的知识点,那么只看这一篇就足够了!)
CSS盒子模型(如果想知道CSS有关盒子模型的知识点,那么只看这一篇就足够了!)

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    589
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    447
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    452
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    297
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    575
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    748
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1469
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    325
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1185
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    527