搜索
首页web前端html教程CSS定位问题(3):相对定位,绝对定位_html/css_WEB-ITnose

引子:

开始的时候我想先要解决一个问题,怎么设置一个div盒子撑满整个屏幕?

看下面的html代码:

<body>    <div id="father-body">        <div class="item1"></div>    </div></body>

实现方法一:

html, body,#father-body{            height:100%;            width:100%;            background-color:#123456;        }

这里主要解释下%(百分号)在CSS中使用的问题。% 主要是在父级元素或者是祖先元素定义了固定的width 和height 的时候才可以使用(或者说使用的时候才会有效果)。

实现方法二:

#father-body{            position:fixed;            width:100%;            height:100%;            background-color:#123456;        }

这里为#father-body 设置position属性,触发自身的BFC。当对自身使用width 和 height的时候才可以生效。

position的fixed值的含义:

对象脱离常规流,使用 top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。

position属性的几个值的概念:

1.相对定位

有了以上的定义,来看一段代码:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <style type="text/css">    .item1, .item2, .item3{        width:300px;        height:100px;        background-color:#123456;        margin:20px;    }        .item2{            position:relative;            /*top:40px;            left:40px;*/            margin:40px 0 0 40px;        }    </style></head><body>    <div>        <div class="item1"></div>        <div class="item2"></div>        <div class="item3"></div>    </div></body></html>

效果如下图:

当我们使用top right bottom left 这样的属性的时候,CSS代码如下:

<style type="text/css">    .item1, .item2, .item3{        width:300px;        height:100px;        background-color:#123456;        margin:20px;    }        .item2{            position:relative;            top:40px;            left:40px;            /*margin:40px 0 0 40px;*/        }    </style>

可以看到的效果图如下图:

到这里可以验证当使用top right bottom left (这四个属性可以设置具体的像素数也可以设置百分比)这样属性改变元素的位置的时候,不会影响其他元素的位置。而使用margin 这样的属性改变元素的位置会影响其他元素的位置。

示意图如下(图片来自W3CSchool):


2.绝对定位

看下面的一段代码:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <style type="text/css">        body{margin:20px;}        #body-div{            padding:15px;            background-color:#a0c8ff;            border:1px solid #000000;        }        #body-div div{            padding:10px;            background-color:#fff0ac;            border:1px solid #000000;        }    </style></head><body>    <div id="body-div">        <div class="item1">Box-1</div>        <div class="item2">Box-2</div>        <div class="item3">Box-3</div>    </div></body></html>

效果图如下:

我们为Box-2设置绝对定位属性

.item2{            position:absolute;        }

此时Box-2脱离文档流,效果如下:

这个时候Box-3的位置会占据之前Box-2的位置。且Box-2和Box-3的左边框会重合。且盒子的宽度会根据盒子内部的元素自适应。

当盒子设置了绝对定位但是没有使用top right bottom left设置盒子的偏移量的时候,它仍会占据原先的位置。

那么当设置top right bottom left这些属性的时候会是什么效果呢?

设置下面的代码:

.item2{            position:absolute;            top:0;            right:0;        }

效果如下图:

那么当我们把直接父级元素设置为已定位的元素会怎么样呢?

由上可以得出两个结论:

1.使用绝对定位的盒子以它的“最近”的一个“已经定位”的“祖先元素”为基准进行偏移(定位)。如果没有已经定位的祖先元素,那么就会以浏览器窗口为基准进行定位。2.决对定位的框从标准流中脱离,这意味着它们对其后的兄弟盒子的定位没有影响。其它的盒子好像就当这个盒子(绝对定位的盒子)不存在一样。

3.z-index属性

z-index属性用于调整定位时重叠块的上下位置,与它的名称一样,如果页面为x-y轴,则垂直于页面的方向为z轴。z-index大的页面位于其值小的的上面。

看下面的代码:

.item1{            position:relative;            z-index:3;        }        .item2{            position:absolute;            top:0;            right:0;            z-index:1;        }

常见定位拓展:

以下的代码我都亲测过,均可以达到效果,就不在展示效果图(如果对代码有疑问可以留言):

1.水平居中

1.1行内元素的水平居中

/*行内元素水平居中*/        #body-div{            text-align:center;        }

1.2块级元素的水平居中

/*块级元素水平居中*/        #body-div{            margin:0 auto;        }

1.3多个块级元素水平居中

/*多个块级元素水平居中*/        #body-div{            text-align:center;        }        ##body-div-container{            display:inline-block;        }

2.水平垂直居中

2.1已知宽度高度的垂直水平居中

/*已知高度和宽度的水平垂直居中*/        #body-div{            position:relative;        }        #body-div-container{            width:100px;            height:100px;            position:absolute;            top:50%;            left:50%;            margin:-50px 0 0 -50px;        }

2.2未知宽度高度的垂直水平居中

/*未知高度和宽度的水平垂直居中*/        #body-div{            position:relative;        }        ##body-div-container{            position:absolute;            margin:auto;            top:0;            right:0;            bottom:0;            left:0;        }

2.3当被居中的元素是inline或者是inline-block

#body-div{            display:table-cell;            text-align:center;            vertical-align:middle;        }        ##body-div-container{        }

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
绝对定位的缺点是什么绝对定位的缺点是什么Oct 23, 2023 pm 02:09 PM

绝对定位的缺点是脱离文档流、对页面响应性的影响、可维护性差、对无障碍性的影响、对SEO的影响和元素重叠问题等。详细介绍:1、脱离文档流,使用绝对定位的元素会脱离文档流,不再占据原来的位置,这意味着其他元素不会再考虑这个绝对定位的元素的存在,可能会导致页面布局混乱;2、对页面响应性的影响,由于绝对定位的元素不再占据原来的位置,当页面尺寸发生变化时,绝对定位的元素可能超出页面等等。

详解Css Flex 弹性布局中的绝对定位与层叠效果详解Css Flex 弹性布局中的绝对定位与层叠效果Sep 27, 2023 pm 01:58 PM

详解CSSFlex弹性布局中的绝对定位与层叠效果导语:在CSS中,弹性布局(Flex)是一种非常强大的布局模型。它在垂直和水平方向上提供了灵活性,能够自适应不同的屏幕尺寸和设备。弹性布局也支持各种功能,包括绝对定位和层叠效果。本文将深入探讨CSSFlex弹性布局中绝对定位和层叠效果的使用和实现方法,并提供详细的代码示例。一、绝对定位(AbsoluteP

绝对定位的精度评价指标有哪些绝对定位的精度评价指标有哪些Oct 23, 2023 pm 05:01 PM

绝对定位的精度评价指标有定位误差、精度圈、定位精度指数、定位可靠性、动态定位精度等。详细介绍:1、定位误差是指实际定位结果与真实位置之间的差异。常见的定位误差指标包括水平定位误差、垂直定位误差等;2、精度圈是指定位结果所在的区域,也称为置信区间。通常以概率的形式表示,例如95%的精度圈表示在这个区域内有95%的概率可以找到真实位置;3、定位精度指数等等。

揭示网页设计中绝对定位的独特优势揭示网页设计中绝对定位的独特优势Jan 23, 2024 am 08:16 AM

探索绝对定位在网页设计中的独特优势在网页设计中,绝对定位是一种常用的布局方式。通过使用绝对定位,可以将元素精确地放置在网页的指定位置,同时还可以轻松实现一些特殊的布局效果。本文将就这些优势进行探索,并通过具体的代码示例来说明。精确定位元素位置绝对定位可以精确地控制元素在网页中的位置。通过指定元素的top、right、bottom、left四个属性,可以将元素

探究绝对定位属性值的常见用法:掌握CSS中的top、right、bottom、left属性设置探究绝对定位属性值的常见用法:掌握CSS中的top、right、bottom、left属性设置Dec 28, 2023 am 11:26 AM

了解绝对定位的常用属性值:掌握CSS中的top、right、bottom、left属性,需要具体代码示例绝对定位是CSS中常用的一种定位方式,通过设置元素的top、right、bottom、left属性,实现元素在父容器中的具体位置定位。掌握这些属性的使用,能够为我们在网页布局中提供更多灵活性和准确度。下面将详细介绍这些属性的具体用法,并提供代码示例。首先,

实现绝对定位策略的实践方法实现绝对定位策略的实践方法Jan 23, 2024 am 08:10 AM

如何满足绝对定位策略的要求,需要具体代码示例绝对定位是CSS中一种常用的定位方式。通过使用绝对定位,我们可以精确地控制元素在页面中的位置,并且不受其他元素的影响。然而,要实现绝对定位的效果,需要满足一些要求和注意事项。本文将介绍如何满足绝对定位策略的要求,并提供一些具体的代码示例。一、理解绝对定位的基本原理在开始编写绝对定位的代码之前,我们需要先理解绝对定位

绝对定位故障有哪些原因绝对定位故障有哪些原因Nov 22, 2023 pm 03:37 PM

绝对定位故障的原因有:1、卫星信号接收不良;2、信号传播问题;3、接收机故障;4、干扰;5、多路径效应;6、硬件配置错误;7、软件配置错误;8、数据处理错误;9、外部干扰;10、卫星故障等。详细介绍:1、卫星信号接收不良,绝对定位系统通过接收卫星信号来确定位置信息,如果接收机无法接收到足够数量或质量合格的卫星信号,就会导致无法正常确定位置,出现定位故障;2、信号传播问题等等。

绝对定位的常用属性值有哪些绝对定位的常用属性值有哪些Dec 21, 2023 pm 04:16 PM

绝对定位的常用属性值有“经度”、“纬度”、“海拔高度”、“速度”、“方向”和“时间戳”六种:1、经度,表示地理位置在东西方向上相对于本初子午线的偏移量;2、纬度,表示地理位置在南北方向上相对于赤道的偏移量;3、海拔高度,表示地理位置相对于海平面的高度;4、速度,表示物体在地理位置上的移动速度;5、方向,表示物体在地理位置上的移动方向;6、时间戳,表示定位信息的时间戳。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器