如何让一个浮动元素既水平又垂直居中

2016年3月22日

让一个普通标签居中很容易,使用div {margin:0 auto}然后利用css可以自动计算元素左右的宽度就可以了

div {margin:0 auto;}

但是让一个浮动元素居中的话,却是无法通过这种形式居中的,因为浮动元素会自动跑到浮动的方向上的最边上,设置的外边框auto根本不起作用。

这时我们可以先把这个元素的位置设置为relative,这样的话就可以通过left属性来将它相对于父元素左边框的距离改为50%,当然这样还是不能实现水平居中的目标,因为元素有自己的宽度,所以将此元素的左外边距改为元素宽度的一半的负值,这样就可以实现元素水平居中了。使用同样的原理,我们可以实现垂直居中。但是垂直居中还有一个隐藏的坑:如果此元素的父元素为body的话,需要先将body的高度设置为100%,这样才能实现垂直居中,具体原理可以参考:全屏品字布局及height:100%的坑

talk is cheap,here is the code:

<!DOCTYPE html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style>
            * {
              margin: 0;
              padding:0;
            }
            html , body {
              height:100%;
            }
            .div {
              width:200px;
              height:100px;
              background-color: pink;
              float:left;
              position:relative;
              border:1px solid black;
              margin:-50px 0 0 -100px;
              top:50%;
              left:50%;
            }
        </style>
    </head>

    <body>
        <div class = "div">

        </div>
    </body>
</html>
时间: 2024-12-23 21:40:48

如何让一个浮动元素既水平又垂直居中的相关文章

如何垂直居中一个浮动元素

如何垂直居中一个浮动元素 // 方法一:已知元素的高宽 #div1{ width:200px; height:200px; position: absolute;        /*父元素需要相对定位*/ top: 50%; left: 50%; margin-top:-100px ;   /*二分之一的height,width*/ margin-left: -100px; } //方法二:未知元素的高宽 #div1{ width: 200px; height: 200px; margin:au

如何居中div?如何居中一个浮动元素?

如何居中div? 给div设置一个宽度,然后添加margin:0 auto属性 div{ width:200px; margin:0 auto; } 如何居中一个浮动元素? <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:html5="http://www.w3.org/html5/"> <head> <meta charset="u

清理浮动的三种常用方法以及如何居中一个浮动元素

千里之行始于足下 今天看到一个题目说如何居中一个float:left的元素的题目,我蛮以为用margin:0 auto 就可以解决了.然而,试验之后,发现事实并非如此,才发现自己对于这方面的知识竟是相当忙乱!于是撇下手头事务,翻书查资料温习了这部分‘简单’的内容.并总结如下. 一.清理浮动的三种方法. 当给元素设置了float属性之后,我们知道,元素便会脱离文档流的束缚,像一片水中浮动的树叶随波逐流.但是,在浮动的情况下,可能会导致网页内容出现一些我们并不想让其发生的干扰,例如其父元素的包裹作用

如何居中一个浮动元素?

CSS代码 1 width:500px; height:300px; float:left; margin-left:50%; position:relative; left:-250px; background-color:#CCC; 代码解读 首先设置块元素的宽度和高度,这里宽度是必须的,高度可以不设,我设置了块的背景色,以给大家看效果.实现居中关键在于 margin-left:50%; position:relative; left:-250px; 设置margin-left:50%;后浮

如何垂直居中一个浮动元素?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 // 方法一:已知元素的高宽 #div1{ width:200px; height:200px; position: absolute;        //父元素需要相对定位 top: 50%; left: 50%; margin-top:-100px ;   //二分之一的height,width margin-left: -100px; } /

如何垂直居中一个浮动元素?如何垂直居中一个&lt;img&gt;?

// 方法一:已知元素的高宽 #div1{     background-color:#6699FF;     width:200px;     height:200px;     position: absolute;        //父元素需要相对定位     top: 50%;     left: 50%;     margin-top:-100px ;   //二分之一的height,width     margin-left: -100px;  }   //方法二:未知元素的高宽 #

如何垂直居中一个浮动元素(未知元素的宽高)

<style> #div{ width: 800px; height: 500px; border: 1px solid gold; position: relative; } #div1{ width: 200px; height: 200px; background-color: cyan; position: absolute; /*父元素需要相对定位*/ margin: auto; top: 0; left: 0; bottom: 0; right: 0; }</style>

div和css:行内元素和块元素的水平和垂直居中

行内元素: 水平居中:text-align:center ul水平居中:加 display:table; margin:0 auto; 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符. 垂直居中:line-height:父元素的height 块元素: 水平居中: ①margin:0 auto 例: .father{ width:200px; height:200px; background-color:red; } .son{ width:100px; height:1

块级元素的水平、垂直居中

HTML: <div class="parent"> <div class="child"></div> </div> 1.固定宽高 /* 利用calc */ .parent{ position: relative; height: 500px; width: 300px; margin: 0 auto; border: 1px solid pink; } .child{ width: 200px; height: 1