CSS中的居中方式

CSS中居中方式:

在HTML和CSS的应用中,我们会用到很多的居中方式比如说:单行文本的居中、多行文本的居中、图片的居中。下面我们来逐个的来学习和实现。

单行文本的居中:

	①单行文本的水平居中:text-align:center;
	②单行文本的垂直居中:line-hight:AApx;(AApx要和你的high一样)。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>单行文本的居中方式</title>
    <style type="text/css">
     .parent{
     background-color: gainsboro;
     height:200px;
     width:200px;
     text-align:center;/*使它水平居中*/
     line-height:200px;/*使它垂直居中*/
     }
    </style>
</head>
<body>
    <div class="parent">
        <div>center</div>
 
    </div>
</body>
</html>

实现的效果:
实现的效果

多行文本的居中方式:

	①父元素的高度不固定时:设置padding的使文本在视觉上开上去居中。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>用padding居中</title>
    <style type="text/css">
    .parent{
    background-color:gainsboro;
    width:400px;
    height:400px;
    padding:200px 200px 0 200px;
    } 
    </style>
</head>
<body>
    <div class="parent">
        <div clss="center"> this is a center div.this is a center div.
			this is a center div.this is a center div.</div>
       </div>
</body>
</html>

实现的效果:
在这里插入图片描述

	②水平居中显示:margin:0 auto;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>水平居中margin</title>
    <style type="text/css">
    
    </style>
</head>
<body>
    <div class="parent">
        <div>this is a center div.this is a center div.
			this is a center div.this is a center div.  </div>
 
    </div>
</body>
</html>

实现的效果在这里插入图片描述
注意:要给中间元素一个高度并且不浮动

	③水平垂直居中的方式:绝对定位 position:absolute;
	Ⅰ.position:absolute;
	     top:0; right:0 ;bottom:0; left:0;
	     margin;0 auto;
	Ⅱ.position:absolute;
	     top:50%; left:50%;
	     margin-top:-(height/2)px;
	     magrin-left:-(width/2)px;
	Ⅲ.position:absolute;
	     top:50%; left:50%;
	     transform:translate(-50%,-50%);

这里只列举Ⅰ方式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>absolute</title>
    <style type="text/css">
    .parent{
    background-color:gainsboro;
    width: 200px;
    height:200px;
    position: relative;/*relative、absolute、fixed*/
    } 
    .box{
        width: 50px;
        height: 50px;
        background-color: rgb(238, 228, 139);
        position: absolute;
        top: 0;left: 0;
        bottom: 0; right: 0;
        margin: auto;
    }
    </style>
</head>
<body>
    <div class="parent">
        <div class="box">  center  </div>
    </div>
</body>
</html>

实现的效果:在这里插入图片描述

注意:对于absolute定位的层总是相对于其最近的定义为absolute或relative或fixed的父层,
而这个父层并不一定是其直接父层。如果其父层中都未定义absolute或relative或fixed,
则其将相对body进行定位。

③水平垂直居中的方式:表格布局 display:table-call;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>table-call</title>
    <style type="text/css">
    .parent{
    background-color:gainsboro;
    width: 200px;
    height:200px;
     display: table-cell;
     vertical-align:middle;/*子元素垂直居中*/
    } 
   p{
        width: 50px;
        height: 50px;
        background-color: rgb(238, 228, 139);
        margin:0 auto;  /*自身相对于父级水平居中,只对块级元素或者行内元素设display:block起作用*/
    }
    </style>
</head>
<body>
    <div class="parent">
        <p> center  </p>
    </div>
</body>
</html>

④水平垂直居中的方式:弹性布局display:flex

	通过在其父级元素中添加样式:
	display: flex;
	justify-content:center;  //使子元素水平居中
	align-items:center;   //使子元素垂直居中
1.	<!DOCTYPE html>
2.	<html>
3.	    <head>
4.	        <meta charset="UTF-8">
5.	        <title></title>
6.	        <style type="text/css">
7.		    div{
8.		        width: 200px;
9.		        height: 100px;
10.		        background: skyblue;
11.		        display: flex;
12.		        justify-content: center; /*水平居中*/ 
13.		        align-items: center;  /*垂直居中*/
14.		    }
15.		    p{
16.	                width:100px;
17.	                height:50px;
18.		        background: pink;
19.		    }
20.	        </style>
21.	    </head>
22.	    <body>
23.		<div class="big">
24.		    <p>子元素</p>
25.		</div>
26.	    </body>
27.	</html>

⑤水平垂直居中的方式:display:box

	通过在其父级元素中添加样式:
	display: box;
	display: -webkit-box;
	-webkit-box-pack:center; /*实现水平居中*/
	-webkit-box-align:center; /*实现垂直居中*/
1.	<!DOCTYPE html>
2.	<html>
3.	    <head>
4.	        <meta charset="UTF-8">
5.	        <title></title>
6.	        <style type="text/css">
7.		    div{
8.		        width: 200px;
9.		        height: 100px;
10.		        background: skyblue;
11.		        display: box;
12.			display: -webkit-box;
13.			-webkit-box-pack:center; /*实现水平居中*/
14.			-webkit-box-align:center; /*实现垂直居中*/
15.		    }
16.		    p{
17.	                width:100px;
18.	                height:50px;
19.		        background: pink;
20.		    }
21.	        </style>
22.	    </head>
23.	    <body>
24.		<div class="big">
25.		    <p>子元素</p>
26.		</div>
27.	    </body>
28.	</html>

图片居中

	水平居中:
   在其父级元素添加样式text-align:center
	垂直居中:
   1.在其父级元素添加padding样式
   2. 在图片<img>标签前面添加一个行内元素,如<b></b>
   给<b>标签样式:height:100%;display:inline-block; vertical-align: middle;
   给图片<img>标签添加样式:vertical-align: middle;
   由于图片大小不能大于div层大小,因此最好给图片<img>标签设置max-width,max-height样式。
1.	<!DOCTYPE html>
2.	<html>
3.	    <head>
4.	        <meta charset="UTF-8">
5.		<title></title>
6.		<style type="text/css">
7.		    .box{
8.			width: 300px;
9.			height: 300px;
10.			background: skyblue;
11.			text-align: center;/*水平居中*/
12.			box-sizing: border-box;
13.		    }
14.		    b{height: 100%;
15.	          display: inline-block;
16.	          vertical-align: middle;}
17.		    img{vertical-align: middle;
18.	             max-width: 100px;
19.	             max-height: 100px;}
20.		</style>
21.	    </head>
22.	    <body>
23.		<div class="box">
24.		    <b></b>
25.		    <img src="baidu.png"/>
26.		</div>
27.	    </body>
28.	</html>
 

实现效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值