一、absolute+margin
需要知道子元素的宽高。
HTML
<div class="container">
<img class="dog" src="https://c-ssl.duitang.com/uploads/blog/201411/07/20141107111217_iAXPt.jpeg alt="">
</div>
CSS
.container{
width:1000px;
height:800px;
border:solid 1px;
position:relasive;
}
.dog{
width:700px;
height:525px;
border-radius:50%;
position:absolute;
left:50%;
right:50%;
margin-left:-350px;
margin-right:-523px;
}
二、flex
不需要知道子元素的宽高。
HTML
<div class="container">
<span contenteditable="true" class="content">hello medium</span>
</div>
CSS
.container{
width:400px;
height:200px;
border:solid 1px #e3c1a9;
border-radius:30px;
display:flex;
align-items:center;
jusitify-content:center;
}
.content{
padding:20px;
border-radius:10px;
background-cplor:#e3c1a9;
color:#ffffff;
}
三、absolute+transform
不需要知道子元素的宽高。
CSS
.container{
width:400px;
height:200px;
border:solid 1px #e3c1a9;
border-radius:30px;
position:relative;
}
.content{
position:absolute;
left:50%;
top:50%;
transform:translate(-50%,-50%);
padding:20px;
border-radius:10px;
background-color:#e3c1a9;
color:#ffffff;
}