首页 > 其他分享 >CSS3 positon定位详解(通俗易懂)

CSS3 positon定位详解(通俗易懂)

时间:2022-10-17 17:05:14浏览次数:53  
标签:CSS3 positon 定位 top 通俗易懂 123 position div div1


CSS3 positon定位详解(通俗易懂),文章内包涵很多个人理解(错误请指出)

positon定位一共有四种,分别是static静态(默认),relative相对,fixed固定,absolute绝对定位,以及sticky粘性定位。

static静态定位

默认的定位方式,不可以使用left,top,right,buttom等属性,Z—index也不能更改,完全遵循文档标准流,

正常定位(static)的效果

<style>
div{
width: 500px;
}
div:nth-child(-n+2){
display: inline;
}
</style>
</head>
<body>
<div style="background-color: red;">123</div>
<div style="background-color: bisque;">132</div>
<div style="background-color: blue;">123</div>
</body>

CSS3 positon定位详解(通俗易懂)_相对定位

设置left 等也不会起效

<style>
div{
width: 500px;
}
div:nth-child(-n+2){
display: inline;
left: 1000px;
}
</style>
</head>
<body>
<div style="background-color: red;">123</div>
<div style="background-color: bisque;">132</div>
<div style="background-color: blue;">123</div>
</body>

效果跟上图一样。

relative相对定位

相对定位可以使用top等位移属性,相对定位是相对于自己的位置进行移动。

<style>
body{
border: 1px solid;
height: 1000px;
}
div{
width: 500px;
}
div:nth-child(-n+2){
position: relative;
top: 200px;
}
</style>
</head>
<body>
<div style="background-color: red;" class="div1">123</div>
<div style="background-color: bisque;" class="div2">132</div>
<div style="background-color: blue;" class="div3">123</div>
</body>

CSS3 positon定位详解(通俗易懂)_css_02

 div1和div2向下进行了移动,移动的距离指的是自己的位置加了200px后的长度,可以看到div3上面空出了一些空间,空出的空间就是移动前的div1和div2,relative定位的元素进行移动后还会在原来的标准流中占有位置,所以div3不会上移。

absolute绝对定位

俗话说子绝父相,绝对定位是相对于自己的父级定位进行移动的,最常和相对定位一起搭配,如果父级没有定位那么就会对body进行参照,绝对定位是脱离标准流的。

绝对定位脱离标准流

<style>
div {
width: 500px;
}

.div1 {
display: inline;
position: absolute;
}

.div3 {
display: inline;
position: absolute;
}
</style>
</head>

<body>
<div class="div1" style="background-color:blue">123</div>
<div class="div2" style="background-color: yellow">456</div>
<div class="div3" style="background-color: red">789</div>
<div class="div4" style="background-color:brown">987</div>
</body>

CSS3 positon定位详解(通俗易懂)_绝对定位_03

div1和div3脱离标准流div2和div4移了上去,然后被div1和div2遮住了于是有了这样的效果。

子绝父相

<style>
body {
border: 1px solid;
}

div {
width: 500px;
}

.div0 {
top: 100px;
position: relative;
height: 300px;
}

.div1 {
top: 200px;
display: inline;
position: absolute;
}

.div3 {
top: 200px;
display: inline;
position: absolute;
}
</style>
</head>

<body>
<div class="div0" style="background-color: green">
<div class="div1" style="background-color:blue">123</div>
</div>
<div class="div2" style="background-color: yellow">456</div>
<div class="div3" style="background-color: red">789</div>
<div class="div4" style="background-color:brown">987</div>
</body>

CSS3 positon定位详解(通俗易懂)_css3_04

div1在div0里面,div1的top就是相对于div0的顶部距离,div3的top是到body边框的距离 

fixed固定定位

固定定位同样会脱离标准流,同时是相对于window窗口的定位,

固定定位演示

<style>
body {
border: 1px solid;
}

div {
width: 500px;
}

.div0 {

top: 100px;
position: relative;
height: 300px;
}

.div1 {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}

.div3 {
top: 200px;
display: inline;
position: absolute;
}
</style>
</head>

<body>
<div class="div0" style="background-color: green">
<div class="div1" style="background-color:blue">123</div>
</div>
<div class="div2" style="background-color: yellow">456</div>
<div class="div3" style="background-color: red">789</div>
<div class="div4" style="background-color:brown">987</div>
</body>

CSS3 positon定位详解(通俗易懂)_css3_05

 div1固定定位 是根据window窗口进行居中位移的。

sticky粘性定位

具有两种状态,一种类似固定地位,一种类似于相对定位,兼容性有些问题,

<style>
body {
border: 1px solid;
height: 900px;
}

div {
width: 500px;
}

.div0 {
top: 150px;
position: relative;
height: 300px;
}

.div1 {
position: sticky;
top: 150px;
}

.div3 {
top: 100px;

position: absolute;
}
</style>
</head>

<body>
<!-- <div class="div0" style="background-color: green">
<div class="div1" style="background-color:blue">123</div>
</div> -->
<div class="div1" style="background-color:blue">123</div>
<div class="div2" style="background-color: yellow">456</div>
<div class="div3" style="background-color: red">789</div>
<div class="div4" style="background-color:brown">987</div>
</body>

 

CSS3 positon定位详解(通俗易懂)_css_06

 顶部元素到边框的 距离大于等于150px时,变成固定定位跟随移动,当距离小于150px时变成相对定位固定、

<style>
body {
border: 1px solid;
height: 900px;
}

div {
width: 500px;
}

.div0 {
top: 150px;
position: relative;
height: 300px;
}

.div1 {
position: sticky;
top: 200px;
}

.div3 {
top: 100px;

position: absolute;
}
</style>
</head>

<body>
<div class="div0" style="background-color: green">
<div class="div1" style="background-color:blue">123</div>
</div>
<div class="div2" style="background-color: yellow">456</div>
<div class="div3" style="background-color: red">789</div>
<div class="div4" style="background-color:brown">987</div>
</body>

CSS3 positon定位详解(通俗易懂)_前端_07

注:当有父级元素时仍然是以body为参考,但是不会超出父元素。

标签:CSS3,positon,定位,top,通俗易懂,123,position,div,div1
From: https://blog.51cto.com/u_15830125/5763582

相关文章

  • CSS3 Z—Index 详解
    CSS3  Z—Index详解 z-index属性规定元素的堆叠顺序,值越高就会显示在上面。无定位<style>.div0{height:80px;width:100px;......
  • HTML5+CSS3笔记
    HTML1、独占一行的称为块元素li是块元素2、a标签中target属性的可选值<ahref="https://www.baidu.com"target="_self">本页面打开</a><ahref="https://www.......
  • css3文字阴影和盒子阴影
    文字阴影文字阴影的语法格式:text-shadow:水平向右的偏移值向下的偏移值迷糊度阴影的颜色,水平向右的偏移值向下的偏移值迷糊度阴影的颜色;可以有多个阴影,但是......
  • css3中的圆角border-radius
    css3的属性应该加上浏览器前缀不同的浏览器内核不同,因此css的前缀不同。常见的几种浏览器内核火狐浏览器Geoko内核前缀是-mox-谷歌浏览器,Webkit内核......
  • css3字体使用
    @font-face{font-family:'kaiti';src:url('../font/KaiTi.woff')format('woff'),url('../font/KaiTi.ttf')format('truetype'),url('../font/KaiTi.svg#GE_SS......
  • CSS3-动画
    CSS3-动画动画(animation)是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果。相比较过渡,动画可以实现更多变化,更多......
  • 表现标准语言CSS3学习 入门+导入方式
    表现标准语言CSS3学习入门+导入方式如何学习:css是什么css怎么用(快速入门)css选择器(重点+难点)美化网页(文字、阴影、超链接、列表、渐变...)盒子模型浮......
  • CSS3新增样式
    CSS3新特性圆角:border-radiusradius:半径四个值是顺时针的顺序<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>demo</title>......
  • 二分法寻找峰值、二分法通俗易懂简单解释讲解
    题目:BM19寻找峰值、力扣162.寻找峰值publicclassSolution{/***保持在上坡的一边一定可以找到峰值,上坡只有两种情况一直为上坡,或者变为下坡这两......
  • CSS3 -2D转换之translate (移动:translate、旋转:rotate、缩放:scale)
    CSS3-2D转换之translate转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果,可以简单理解为变形移动:translate旋转:rotate缩放:scale1......