如何垂直居中元素(浮动元素&居中一个<img>)?

1.如何居中一个浮动元素?

方法一:已知元素的高度

 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
         /* 方法一:已知元素的高宽*/
    #div1{
        background-color:#6699FF;
        200px;
        height:200px;

        position: absolute;      /*  父元素需要相对定位,子元素绝对定位 */
        top: 50%;
        left: 50%;
        margin-top:-100px ;   /* 二分之一的height,width */
        margin-left: -100px;
        }
    </style>
</head>
<body>
    <div id="div1"></div>
</body>
</html>
 

方法二:

 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>居中2</title>
    <style>
        #div1{
             200px;
            height: 200px;
            background-color: #6699FF;

            margin:auto;
            position: absolute;  /*  父元素需要相对定位,子元素绝对定位 */
            left: 0;
            top: 0;
            right: 0;
            bottom: 0;
        }
    </style>
</head>
<body>
    <div id="div1"></div>
</body>
</html>
 

这些方法也是在网上看网友的经验,以后可能用的着

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>子元素在父元素里面垂直居中</title>
<link rel="stylesheet" type="text/css" href=""/>
<style>
#d1{
border:thin solid red;
900px;
height:100px;
display:table-cell;
vertical-align:middle;
}
#d2{/*dashed也是虚线*/
border:thin dotted blue;
50px;
height:50px;
float:right;  
}
</style>  
</head>
<body>
<div id="d1">
<div id="d2"></div>
</div>
</body>  
</html>

浮动元素既垂直又水平居中的方法

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>子元素在父元素里面垂直居中</title>
<link rel="stylesheet" type="text/css" href=""/>
<style>
#d1{
border:thin solid red;
900px;
height:100px;
display:table-cell;
vertical-align:middle;
margin:0 auto;
}
#d2{/*dashed也是虚线*/
border:thin dotted blue;
50px;
height:50px;
float:right;  
}
/* 浮动元素水平居中
二种方法 1、父级div设置固定宽度后
加margin:0 auto; 然后子级div加浮动,
即可实现;不过此方法不能无限伸展; 
2、在table内插入div,div设置浮动,
在table上设置margin:0 auto; 而table不
要设置宽度,因为table默认是宽度最小化的,实现居中的
*/
#d3{/*让浮动元素水平居中的方法1*/
50px;
margin:0 auto;
}
table{/*让浮动元素水平居中的方法2*/
margin:0 auto;
}
</style>  
</head>
<body>
<div id="d1">
<!-- <div id="d3"><div id="d2"></div></div> -->
<table>
<tr>
<td><div id="d2"></div></td>
</tr>
</table>
</div>
</body>  
</html>

二种方法 1、父级div设置固定宽度后

加margin:0 auto; 然后子级div加浮动,

即可实现;不过次方法不能无限伸展;

2、在table内插入div,div设置浮动,

在table上设置margin:0 auto; 而table不

要设置宽度,因为table默认是宽度最小化的,实现居中的

 

2.如何居中一个<img>?

     /* <img>的容器设置如下 */
        #container{
            display:table-cell;
            text-align:center;
            vertical-align:middle;
        }



原文地址:https://www.cnblogs.com/miaosen/p/7450621.html