HTML与CSS中的定位个人分享

码海绘月使
• 阅读 1019

定位

  • static - 默认值 (几乎不用,了解就可以)

absolute - 绝对定位,不为元素预留空间,脱离文档流:

  1. 如果当前元素的父级元素是<body>元素的话 -> 是相对于当前页面的定位
  2. 如果当前元素的父级不是<body>元素的话,父级元素没有开启定位 -> 则是相对于页面的定位
  3. 如果当前元素的父级不是<body>元素的话,父级元素开启定位 -> 则是相对于父级元素定位
    <style>
        body {
            margin: 0;/* 去掉浏览器默认的外边距8px */
        }
        div {
            width: 200px;
            height: 200px;
            background-color: cyan;
            /*
                开启绝对定位
                1.当前元素脱离文档流
                2.如果不设置位置的偏移量的话,位置不会有任何变化的
             */
            position: absolute;
            /*
                设置定位的偏移量:
                 * 水平方向正值 - 向右移动
                 * 水平方向负值 - 向左移动
                 * 垂直方向正值 - 向下移动
                 * 垂直方向负值 - 向上移动
            */
            top: 100px;
            left: 100px;
        }

    </style>
</head>
<body>
<div></div>
</body>

fixed - 固定定位,不为元素预留空间:

  1. 是相对于窗口来定位元素位置,脱离文档流
    <style>
        body {
            margin: 0;
            height: 1000px;
        }
        #d1 {
            width: 200px;
            height: 200px;
            background-color: #83c44e;
            /* 开启固定定位 - 相对于浏览器窗口的定位 */
            position: fixed;

            left: 100px;
            top: 100px;
        }
        #d2 {
            width: 200px;
            height: 200px;
            background-color: cyan;

            position: absolute;

            left: 500px;
            top: 100px;
        }
    </style>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
</body>

relative - 相对定位,不脱离文档流

  1. 相对定位是相对于自身元素原来的位置的定位
    <style>
        body{
            margin: 0;
        }
        #d1{
            width: 200px;
            height: 200px;
            background-color: cyan;
            /* 外边距 */
            margin: 100px;
        }
        #d2{
            width: 100px;
            height: 100px;
            background-color: #ffac13;
            /* 外边距 */
            margin-left: 100px;
            /* 相对定位是相对于自身元素原来的位置的定位 */
            position: relative;
            left: 100px;
        }
    </style>
</head>
<body>
<div id="d1">
    <div id="d2"></div>
</div>
</body>

定位的方式解析图:
HTML与CSS中的定位个人分享


堆叠

  • z-index属性值大的在上方,小的在下方,就是所z-index属性值大的覆盖小的
 <style>
        body{
            margin: 0;
        }
        div{
            width: 200px;
            height: 200px;
        }
        #d1{

            background-color: cyan;
            /* 开启绝对定位 */
            position: absolute;
            /* 开启定位后设置偏移量 */
            left: 150px;
            top: 150px;
            z-index: 2323;
        }
        #d2{
            background-color: #ffac13;

            /* 开启相对定位 */
            position: relative;
            /* 开启定位后设置偏移量 */
            left: 50px;
            top:50px;
            z-index:1;
        }
        /*
            必须是当前元素开启定位的情况下,z-index属性才会有效
                当多个属性设置z-index属性时 - 值大的会覆盖值小的
         */
    </style>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
</body>

堆叠分析图:
HTML与CSS中的定位个人分享


继承于层叠

继承

  • 继承就是父级元素的属性,子级元素使用可以不用设置直接使用
  • 注意: CSS属性中不是所用属性都可以继承
  • CSS的样式属性:
  1. 可继承的属性 - 指定元素的样式,同时作用其后代元素
  2. 不可继承的属性 - 只能作用在指定的元素

备注: 继承中有一个inherit值 - 就是是继承于祖先元素属性的意思,当子级元素的属性设置inherit值时代表继承父级元素使用的属性值.

    <style>
        /*
            CSS的样式属性:
             1. 可继承的属性 - 指定元素的样式,同时作用其后代元素
             2. 不可继承的属性 - 只能作用在指定的元素
         */
        body{
            /*
                页面中的默认的字体大小为 16px
                页面中的默认的颜色为黑色
             */
            font-size: 148px;
            color: cyan;
        }
        p{
            /*
                inherit值 - 是继承于祖先元素属性的意思
                当前样式属性的值是继承于祖先元素
             */
            font-size: inherit;
        }
    </style>
</head>
<body>
<p>一花一世界,一叶一孤城</p>
</body>

继承于层叠分析图HTML与CSS中的定位个人分享

层叠

  • 就是选择器的优先级别,当为某个选择器设置 !important 时该选择器优先级别最大
  • 注意: 为某个选择器设置!important时会打乱原本选择器的优先级别的规则可能会影响整个页面布局,所以能不用就不用,知道有这个东西就行
点赞
收藏
评论区
推荐文章
小嫌 小嫌
4年前
css中块状元素和内联元素
CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。块状元素块状元素特点1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。2、元素的高度、宽度、行高以及顶和底边距都可设置。3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。常用的块状元素有:、
Python进阶者 Python进阶者
4年前
一篇文章带你了解CSS定位知识
大家好,我是IT共享者,人称皮皮。这篇我们来讲讲CSS定位。一、Position(定位)CSS定位属性允许你为一个元素定位。它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么。元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。二、属
浩浩 浩浩
4年前
【Flutter实战】对齐与相对定位(Align)
4.6对齐与相对定位(Align)在上一节中我们讲过通过Stack和Positioned,我们可以指定一个或多个子元素相对于父元素各个边的精确偏移,并且可以重叠。但如果我们只想简单的调整一个子元素在父元素中的位置的话,使用Align组件会更简单一些。4.6.1AlignAlign组件可以调整子组件的位置,并且可以根据子
Stella981 Stella981
4年前
Python+Selenium自动化篇
本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。0.元素定位方法主要有:id定位:find\_element\_by\_id('')name定位:find\_element\_by\_name('')class定位:find\_element\_by\_class\_name(''
Stella981 Stella981
4年前
RobotFramework自动化测试之元素定位
前言:最近在做基于RF框架的Web自动化测试,其中涉及到元素的定位,主要用到id、name、xpath、css四中定位方法,尤其后面的两种方法特别有效,可以解决大部分的定位问题。
Wesley13 Wesley13
4年前
CSS内容布局
网页是由不同内容块构成的:标题、段落、链接、列表、图片、视频,等等。1.定位定位并不适合总体布局,因为它会把元素拉出页面的正常流。元素的初始定位方式为静态定位(static),即块级元素垂直堆叠。把元素设置为相对定位(relative),然后可以相对于其原始位置控制该元素的偏移量,同时又不影响其周围的元
Wesley13 Wesley13
4年前
CSS相对定位与绝对定位
CSS相对定位设置为相对定位的元素框会偏移某个距离。“相对于”元素仍然保持其未定位前的形状,它原本所占的空间仍保留!CSS相对定位实例(http://static.oschina.net/uploads/img/201312/01164555_uxZw.gif)注意:在使用相对定位时,无论是否进行移动,元素仍然占据原来
Stella981 Stella981
4年前
CSS的相对定位和绝对定位(position)
什么是定位呢?定位(position),故名思议,就是确定元素在页面中的位置。CSS的常用定位有两种,一种是相对定位,一种是绝对定位。下面我们看例子1.<html2.<head3.<style4.div0{5./设置背景色为黄色/6.backgrou
Stella981 Stella981
4年前
CSS 分类 (Classification)
★★CSS分类属性(Classification)★★⑴CSS分类属性允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素,使用绝对值来定位元素,以及元素的可见度。⑵下面是常用的属性以及描述:!(https://oscimg.oschina.net/oscnet/00cb565
Wesley13 Wesley13
4年前
CSS基础知识(定位、浮动)
12、浮动!(https://oscimg.oschina.net/oscnet/80b6fe9ed0e2c74d146667b2fdbd187f21a.jpg)特点:将当前元素脱离文档流   float:left即左浮动 float:right即右浮动注:\父与子元素,设置子元素浮动不能超出父元素的范围
Stella981 Stella981
4年前
CSS 定位 (Positioning) 实例
CSS定位和浮动CSS为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对