css布局,如何利用margin负数实现水平居中和竖直居中?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
在css
布局中有很多margin
取负数的案例,其中大多数时候就是为了实现居中。那么,本文中苏南大叔就说一下这个margin
为负数的布局小技巧。
苏南大叔的程序如此灵动博客,记录苏南大叔高兴写的内容。测试环境:谷歌浏览器。
主角div
本文的主角div
就是个平平常常的框框,宽高都是60px
。它有几个影分身,要实现几个影分身在网页的位置水平居中和竖直居中。
<style>
div{
box-sizing: border-box;
width: 60px;
height: 60px;
display: absolute;
position: fixed;
}
div.n1{
background-color: red;
}
</style>
<div class="n1">默认</div>
这里注意有个特殊设置:
display: absolute;
position: fixed;
display: absolute
让元素可以脱离文档流。但是,如果父元素存在display:relative
的话,会捕获它。position: fixed
让元素可以固定在某个位置。这个要配合left
、right
、top
、bottom
等属性设置。
水平居中
div.x{
left: 50%;
margin-left: -30px;
}
使用left
的基础是div
是absolute
和fixed
的。距离左侧50%
后,再向左侧移动【一半的宽度】就实现水平居中了。
竖直居中
div.y{
top: 50%;
margin-top: -30px;
}
使用top
的基础是div
是absolute
和fixed
的。距离顶部50%
后,再向顶部移动【一半的高度】就实现顺直居中了。
完整代码
<style>
div {
box-sizing: border-box;
width: 60px;
height: 60px;
display: absolute;
position: fixed;
}
div.n1 { background-color: red; }
div.n2 { background-color: gray; }
div.n3 { background-color: yellow; }
div.n4 { background-color: pink; }
div.x {
left: 50%;
margin-left: -30px;
}
div.y {
top: 50%;
margin-top: -30px;
}
</style>
<div class="n1">默认</div>
<div class="n2 x">x轴居中</div>
<div class="n3 y">y轴居中</div>
<div class="n4 x y">x轴y轴都居中</div>
运行截图如下:
结束语
更多css
小技巧,请参考文字:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。