问题
This question already has an answer here:
- How to center absolutely positioned element in div? 33 answers
I'm having difficulty on positioning child div's on every parents div.
Here's the css code:
.mainDiv {
height:500px;
position: relative;
}
.mainDiv .parent1 {
height: 250px;
background-color: blue;
top: 50px;
position: relative;
}
.mainDiv .parent2 {
height: 250px;
background-color: yellow;
position: relative;
}
.mainDiv .parent1 .sub1 {
width: 100px;
height: 100px;
background-color: green;
position: absolute;
left: 0;
right: 0;
margin-left: auto;
margin-right: auto;
top: 50%;
}
.mainDiv .parent2 .sub2 {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
left: 0;
right: 0;
margin-left: auto;
margin-right: auto;
top: 50%;
}
Here's the fiddle
回答1:
Use transform for that to the child div and it will work!
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
snippet below:
.mainDiv {
height:500px;
position: relative;
}
.mainDiv .parent1 {
height: 250px;
background-color: blue;
position: relative;
}
.mainDiv .parent2 {
height: 250px;
background-color: yellow;
position: relative;
}
.mainDiv .parent1 .sub1 {
width: 100px;
height: 100px;
background-color: green;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.mainDiv .parent2 .sub2 {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
<div class="mainDiv">
<div class="parent1">
<div class="sub1">
</div>
</div>
<div class="parent2">
<div class="sub2">
</div>
</div>
</div>
来源:https://stackoverflow.com/questions/38892797/how-to-position-child-div-to-the-center-of-every-parents-div-using-position-abso