html+css 元素定位

body有默认的margin:8px
元素定位时用:position:和 left top配合使用,来确定元素的位置

1.absolute 绝对定位

feature:a.脱离原来的层进行定位(当一个元素成absolute元素时,会脱离原来的层)
b.相对于最近的有定位的父级进行定位,如果没有,相对于文档定位

没有定位时:
这里写图片描述
结果:
这里写图片描述

absolute定位之后:
这里写图片描述
这里写图片描述

2.relative 相对定位

feature:a.保留原来的层进行定位
b.相对于自己原来的位置进行定位
relative定位之后:
这里写图片描述
这里写图片描述

注:
relative 一般作为参照物来使用(父级)减少对子元素的破坏,absolute作为定位元素。

3.fixed 固定定位(广告定位)

html

<!DOCTYPE html>
<html>
<head>
    <title></title>
<link rel="stylesheet" href="1.css">
<style type="text/css">

</style>
</head>

<body>
    <div class="box">
        <div  class="content">
            <div>this is a AD</div>
        </div>
    </div>
</body>
</html>

css

*{
    margin:0;
    padding: 0;
}
.box{
    width: 200px;
    height: 100px;
    background-color: #ccc;
    border:1px solid black;
    position: fixed;
    left: 50%;
    top: 50%;
/*  因为left和top是相对于左顶点进行定位的,所以元素会偏右;
    将元素根据高宽的一半进行左上移动*/
    margin-left: -100px;
    margin-top: -50px;
}
.content{
    text-align: center;
    line-height: 100px;
}

这里写图片描述

小测试:做一个五环水平居中再屏幕
html

<!DOCTYPE html>
<html>
<head>
    <title></title>
<link rel="stylesheet" href="1.css">
<style type="text/css">

</style>
</head>

<body>
    <div class="plat">

            <div class="paint blue"></div>
            <div class="paint black"></div>
            <div class="paint red"></div>
            <div class="paint yellow"></div>
            <div class="paint green"></div> 
    </div>
</body
</html>

css

*{
    margin:0;
    padding: 0;
}
.plat{
    width: 320px;
    height: 160px;
    position: fixed;
    left: 50%;
    top: 50%;
/*  因为left和top是相对于左顶点进行定位的,所以元素会偏右;
    将元素根据高宽的一半进行左上移动*/
    margin-left: -160px;
    margin-top: -80px;
}
.paint{
    width: 100px;
    height:100px;
    border-radius: 50%;
    position: absolute;

}
.blue{
    border:3px solid blue;
    top: 0px;
    left: 0px;
}

.black{
    border:3px solid black;
    top: 0px;
    left: 110px;
    z-index: 3;
}
.red{
    border:3px solid red;
    top: 0px;
    left: 220px;
}
.yellow{
    border:3px solid yellow;
    top: 60px;
    left: 55px;
}
.green{
    border:3px solid green;
    top: 60px;
    left: 165px;
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值