zoukankan      html  css  js  c++  java
  • 相对定位与绝对定位

    绝对定位:

      设置为绝对定位的元素会脱离文档流,并相对于其最近的已定位的祖先元素定位,并且元素定位以后会变成一个块级框,例如:

    <style>
        i{
            width:100px;
            height: 100px;
            background: red;
            margin: 300px auto;
        }
    </style>
    <i>HIHA</i>

    i标签本来是行内元素,这段代码的运行结果:

    其宽高完全由其内的文字‘HIHA’撑起来的,跟咱们定义的样式,width、height无关,并且margin在竖直方向上无效(应为i是行内元素),但是将上面代码改成:

    <style>
        i{
            position: absolute;
            width:100px;
            height: 100px;
            background: red;
            margin: 300px auto;
        }
    </style>
    <i>HIHA</i>

    运行结果就变为了:

    Margin和width、height都起了作用,说明其已经变为了块级元素。

    另外,因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其他元素,可以通过z-index属性来控制这些框的堆放次序。

    相对定位:

    如果对一个元素进行相对定位,它将出现在它所在的位置上,换句话说,原来是哪儿,还是哪儿,可以通过设置垂直或水平位置,让这个元素相对于它自己的起点进行移动,其本身还在文档普通流,例如,上例改为:

    <style>
        i{
            position: relative;
            width:100px;
            height: 100px;
            background: red;
            margin: 300px auto;
        }
    </style>
    <i>HIHA</i>

    运行结果为:

    说明这时的i标签还是普通的行内元素,并未发生本质的改变。

    另附:行内元素与块级元素的区别:

    1、  块级元素独占一行,且其宽度默认情况下会占满其父元素的宽度,行内元素不会独占一行,其相邻元素可以排在一行

    2、  块级元素可以设置width,height,行内元素设置width、height无效,而且块级元素即使设置宽度也还是独占一行。

    3、  块级元素可以设置margin和padding属性,行内元素水平方向的margin和padding如margin-left、padding-right可以产生边距效果,但是竖直方向的如,margin-top/bottom,padding-top/bottom,不会产生边距效果。

    4、  块级元素和行内元素的相关属性:display,

    其中块级元素对应display:block,行内元素对应display:inline。

    补充说明:display:inline-block,可以让元素具有块级元素和行内元素的特性,既可以设置长宽,可以让padding和margin生效,有可以和其他行内元素并排,是一个很实用的属性。

    行内元素变为块级元素的方法:

             1、Display:block;2、浮动行内元素;3,绝对定位行内元素;

  • 相关阅读:
    操作系统设计与实现(二)
    SpringCloud(八)Consul的微服务注册
    图的实现(邻接矩阵)及DFS、BFS
    SpringCloud(七)服务注册之Consul的简介和原理
    Mybatis笔记目录(6天)
    Mybatis学习笔记——day02
    C语言教程Day01
    Linux C/C++方向开发(13周学习路线)
    基于Java的实验室预约管理系统
    基于Android的高校学生考勤系统的设计与实现
  • 原文地址:https://www.cnblogs.com/web-fusheng/p/6711079.html
Copyright © 2011-2022 走看看