簡體   English   中英

對齊表單元素以水平填充div

[英]Justifying form elements to fill a div horizontally

我有以下div:

<div>
    <label for="ctl00_cph_address">Address</label>
    <input name="ctl00$cph$address" type="text" id="ctl00_cph_address" class="required text">
    <a id="ctl00_cph_addCcContact">Add</a>
    <span id="ctl00_cph_addressrequiredValidator" style="display: none;"></span>
    <span id="ctl00_cph_addressValidator" style="display: none;"></span>
</div>

我希望標簽固定寬度並右對齊,這通常很容易,但是幾乎不可能實現的是將addCcContact錨點右對齊到包含div的右側。 我已經通過絕對定位和浮動實現了這一點,但是可以肯定的是,有一種方法可以使用text-align來做到這一點。 為什么這么難?

問題是,如果在<a>上設置text-align ,它將正確地<a>元素內的文本右對齊,但是<a>仍僅占用所需的空間,並且會立即流動輸入后。 在另一方面,如果你設置text-align的含<div>那么一切都將里面<div>會推到右側。

因此,您需要使用諸如浮動或定位之類的東西,或者確定要占據中間空間的內容- <input>或不可見元素,或<a>本身。 然后,您可以使用例如flexbox相應地調整元素的大小。

例如,要使<input>填充其余寬度:

 div { display:flex; } input { flex:1 } 
 <div> <label for="ctl00_cph_address">Address</label> <input name="ctl00$cph$address" type="text" id="ctl00_cph_address" class="required text"> <a id="ctl00_cph_addCcContact">Add</a> <span id="ctl00_cph_addressrequiredValidator" style="display: none;"></span> <span id="ctl00_cph_addressValidator" style="display: none;"></span> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM