Reputation: 37
I'm trying add some text to a child div. When I include a <p>
inside the div the whole thing screws up.
Why does the <p>
element cause what is depicted in the image below?
Before Adding the Text:
After Adding the Text:
.containerDonation {
padding: 0px;
margin: 0px;
height: 350px;
text-align: center;
border: 4px solid black;
}
.donations {
display: inline-block;
width: 90%;
height: 300px;
margin-top: 25px;
padding: 0px;
overflow: hidden;
text-align: center;
border: 4px solid red;
}
.donateCircle {
display: inline-block;
width: 22%;
height: 275px;
border: 4px solid #99CCFF;
border-radius: 250px;
margin: 10px 40px 0px 40px;
}
.donate {
margin: 50px 0px 0px 50px;
padding: 0px;
border: 1px solid red;
height: 175px;
width: 175px;
}
.donate p {
margin: 0px;
padding: 0px;
}
<section class="containerDonation">
<div class="donations">
<div class="donateCircle">
<div class="donate">
<p>Small Donation</p>
</div>
</div>
<div class="donateCircle">
<div class="donate">
<p></p>
</div>
</div>
<div class="donateCircle">
<div class="donate">
<p></p>
</div>
</div>
</div>
</section>
Upvotes: 1
Views: 93
Reputation: 207901
The default vertical alignment of inline elements is baseline
, so you need to change that to top in order for them to all be top aligned. Add vertical-align:top
to .donateCircle
:
.containerDonation {
padding: 0px;
margin: 0px;
height: 350px;
text-align: center;
border: 4px solid black;
}
.donations {
display: inline-block;
width: 90%;
height: 300px;
margin-top: 25px;
padding: 0px;
overflow: hidden;
text-align: center;
border: 4px solid red;
}
.donateCircle {
display: inline-block;
width: 22%;
height: 275px;
border: 4px solid #99CCFF;
border-radius: 250px;
margin: 10px 40px 0px 40px;
vertical-align:top;
}
.donate {
margin: 50px 0px 0px 50px;
padding: 0px;
border: 1px solid red;
height: 175px;
width: 175px;
}
.donate p {
margin: 0px;
padding: 0px;
}
<section class="containerDonation">
<div class="donations">
<div class="donateCircle">
<div class="donate">
<p>Small Donation</p>
</div>
</div>
<div class="donateCircle">
<div class="donate">
<p></p>
</div>
</div>
<div class="donateCircle">
<div class="donate">
<p></p>
</div>
</div>
</div>
</section>
Upvotes: 1
Reputation: 12508
You need to vertical-align
your .donateCircle
divs:
.containerDonation {
padding: 0px;
margin: 0px;
height: 350px;
text-align: center;
border: 4px solid black;
}
.donations {
display: inline-block;
width: 90%;
height: 300px;
margin-top: 25px;
padding: 0px;
overflow: hidden;
text-align: center;
border: 4px solid red;
}
.donateCircle {
display: inline-block;
width: 22%;
height: 275px;
border: 4px solid #99CCFF;
border-radius: 250px;
margin: 10px 40px 0px 40px;
vertical-align: top;
}
.donate {
margin: 50px 0px 0px 50px;
padding: 0px;
border: 1px solid red;
height: 175px;
width: 175px;
}
.donate p {
margin: 0px;
padding: 0px;
}
<section class="containerDonation">
<div class="donations">
<div class="donateCircle">
<div class="donate">
<p>Small Donation</p>
</div>
</div>
<div class="donateCircle">
<div class="donate">
<p></p>
</div>
</div>
<div class="donateCircle">
<div class="donate">
<p></p>
</div>
</div>
</div>
</section>
Note: that due to the width
values using percentages, and the snippet being run in an <iframe>
the content looks off. The vertical-align
principle applies non the less though and can be viewed using the snippets Full Screen option or by visiting the full screen link.
Upvotes: 1