我有一個帶有幾個div的列表來設計它們的樣式。我想沿着底邊對齊其中一個div。如果我製作div position: absolute
(父母li
也是絕對的,所以它是相對的),那麼它會丟失元素應該的寬度。如果我從div中刪除position: absolute
,那麼div的寬度是正確的。 div的寬度沒有明確設置,但應占用盡可能多的空間。如何在設置絕對位置時保持寬度
在下面的例子中,我有2項。與class="rules"
的div是有問題的項目。在這紅色的項目,該<p>
足夠寬,從而擴展div來全寬,它可以佔用,但就是藍色的項目有不<p>
裏面很多文本,以便在div不是很寬。我可以刪除position: absolute
,但是div不會與底部對齊。
我的問題是這樣的:我可以以某種方式使寬度相同的所有項目沒有明確聲明的寬度,或者是有在列表項的底部定位的div一些其他的方式?我能想到的唯一的辦法是
和代碼,以防萬一:
HTML
<ul class="cardlist">
<li class="blue">
<h4>Think Twice<div class="cost">1U</div></h4>
<div class="type">Instant</div>
<div class="rules">
<p>Draw a card.</p>
<p>Flashback {2}{U}</p>
</div>
</li>
<li class="red">
<h4>Lightning Bolt<div class="cost">R</div></h4>
<div class="type">Instant</div>
<div class="rules">
<p>Lightning Bolt deals 3 damage to target creature or player.</p>
</div>
</li>
</ul>
CSS
p, div, ul, li, body, h1, h2, h3, h4, h5, h6
{
margin: 0px;
padding: 0px;
border: 0px solid #000000;
}
.blue { background-color: rgba(15, 158, 219, 0.9);}
.red { background-color: rgba(227, 65, 16, 0.9); }
#BodyContainer
{
width: 100%;
height: 100%;
}
#BodyContainer > div, ul, li
{
display: inline-block;
}
ul
{
text-align: left;
list-style-type: none;
}
.cardlist li
{
vertical-align: top;
border: 10px solid #000000;
border-radius: 15px;
padding: 10px;
width: 250px;
height: 300px;
margin-bottom: 5px;
position: relative;
box-shadow: 5px 5px 5px #CCCCCC;
}
.cardlist li h4
{
padding: 3px;
background-color: #FFFFFF;
border: 2px solid #000000;
border-radius: 5px;
}
.cardlist .cost
{
float: right;
margin-right: 4px;
}
.cardlist .type
{
display: block;
background-color: #FFFFFF;
border: 2px solid #000000;
border-radius: 5px;
padding: 1px;
}
.cardlist li .rules
{
display: inline-block;
min-height: 100px;
background-color: #FFFFFF;
border: 2px solid #000000;
padding: 4px;
position: absolute;
bottom: 7px;
margin-right: 12px;
margin-left: 2px;
}
.cardlist li .rules p
{
width: 100%;
}
.cardlist li .pt
{
float: right;
position: absolute;
bottom: 2px;
right: 8px;
padding: 3px 8px;
background-color: #FFFFFF;
border: 2px solid #000000;
border-radius: 5px;
}
.cardlist li p
{
margin-bottom: 5px;
}
啊,但他說,他不希望有設置一個固定的寬度 –
@JoshC假設會有至少1比寬度多文本元素,這個工程。如果沒有,請使用javascript。 – bjb568
'left:0px;正確:0px'工作了一種享受。謝謝老兄:-) – Andrew