可能很简单的CSS,但我现在已经看了很长时间。
我希望在同一行上有两个元素:
搜索图标应保持相同的大小,无论宽度如何,文本框应该对齐100%的空间(但仍然要确保图标正好在它旁边。
我的问题可以在此图片中看到(由于文本框的宽度为100%,因此无法对齐):
我的标记:
<div class="SearchBox">
<div class="searchDiv">
<div class="searchDivFullSpan">
<asp:TextBox runat="server" ID="SearchOnGoogleBox" Height="34px"></asp:TextBox>
</div>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Resources/Images/SearchIcon.png" OnClick="SearchBtn_Click" ToolTip="Søg efter et emne" Height="48px" OnClientClick="_gaq.push(['_trackEvent', 'Global_master', 'Search for content']);" />
</div>
</div>
我的css:
.SearchInputBox {
border: 1px solid #C6D1AD;
font-size: 20pt;
background-color: #FAFAFA;
}
.searchDiv {
padding-top: 10px;
padding-left: 10px;
padding-right: 10px;
}
.searchDivFullSpan {
display: inline;
}
.searchDivFullSpan input[type=text] {
width: 100%;
}
.searchDiv input[type="text"] {
background-color: #f3f3e9;
-moz-border-radius: 5px;
border-radius: 5px;
}
任何提示?真的很感激: - )
答案 0 :(得分:1)
我现在无法测试这个,但是如下所示:
.searchDiv{
padding-left: 25px; //MAKE THIS THE WIDTH OF YOUR IMAGE PLUS A BIT EXTRA
position:relative;
}
.searchDivFullSpan input[type=text] {
width: 100%;
}
input[type="image"]{
width: 20px; //ADJUST THIS, BUT ADJUST ABOVE IN TANDEM
position:absolute;
top:10px; //FIDDLE WITH THESE TWO PROPERTIES AS NEEDED
left:5px;
}
答案 1 :(得分:1)
试试这个:
CSS代码:
.SearchBtn{
display:inline-block;
float:right;
bottom:24px;
position:relative;
}
.SearchInputBox {
border: 1px solid #C6D1AD;
font-size: 20pt;
background-color: #FAFAFA;
}
.searchDiv {
padding-top: 10px;
padding-left: 10px;
padding-right: 10px;
}
.searchDivFullSpan {
display: inline;
}
.searchDivFullSpan input[type=text] {
width: 100%;
}
.searchDiv input[type="text"] {
background-color: #f3f3e9;
-moz-border-radius: 5px;
border-radius: 5px;
}
HTML CODE:
<div class="SearchBox">
<div class="searchDiv">
<div class="searchDivFullSpan">
<input type="text" id="SearchOnGoogleBox"/>
</div>
<input type="button" value="Click" class="SearchBtn"/>
</div>
</div>
的 jsfiddle 强>
答案 2 :(得分:1)
您应该尝试显示table-cell而不是inline。你需要另一个容器div。然后给searchDiv和searchDivFullSpan两个宽度100%。 searchDiv的两个子div都需要设置为显示table-cell。
.SearchInputBox {
border: 1px solid #C6D1AD;
font-size: 20pt;
background-color: #FAFAFA;
}
.searchDiv {
padding-top: 10px;
padding-left: 10px;
padding-right: 10px;
}
.searchDiv div {
display: table-cell;
}
.searchDivFullSpan {
width: 100%;
}
.searchDivFullSpan input[type=text] {
width: 100%;
}
.searchDiv input[type="text"] {
background-color: #f3f3e9;
-moz-border-radius: 5px;
border-radius: 5px;
}
<div class="SearchBox">
<div class="searchDiv">
<div class="searchDivFullSpan">
<asp:TextBox runat="server" ID="SearchOnGoogleBox" Height="34px"></asp:TextBox>
</div>
<div class="searchImageDiv">
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Resources/Images/SearchIcon.png" OnClick="SearchBtn_Click" ToolTip="Søg efter et emne" Height="48px" OnClientClick="_gaq.push(['_trackEvent', 'Global_master', 'Search for content']);" />
</div>
</div>
</div>
<div class="SearchBox">
<div class="searchDiv">
<div class="searchDivFullSpan">
<asp:TextBox runat="server" ID="SearchOnGoogleBox" Height="34px"></asp:TextBox>
</div>
<div class="searchImageDiv">
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Resources/Images/SearchIcon.png" OnClick="SearchBtn_Click" ToolTip="Søg efter et emne" Height="48px" OnClientClick="_gaq.push(['_trackEvent', 'Global_master', 'Search for content']);" />
</div>
</div>
</div>
<style>
.SearchInputBox {
border: 1px solid #C6D1AD;
font-size: 20pt;
background-color: #FAFAFA;
}
.searchDiv {
padding-top: 10px;
padding-left: 10px;
padding-right: 10px;
}
.searchDiv div {
display:table-cell;
}
.searchDivFullSpan {
width:100%;
}
.searchDivFullSpan input[type=text] {
width: 100%;
}
.searchDiv input[type="text"] {
background-color: #f3f3e9;
-moz-border-radius: 5px;
border-radius: 5px;
}
</style>
答案 3 :(得分:1)
我不知道它是否有帮助,但看看这个例子,我使用bootstrap 3:
<div class="form-inline" style="display: block;">
<input type="text" id="text-field-1" class="form-control" size="4" max="4" min="4">
<input type="text" id="text-field-2" class="form-control" size="3" max="3">
<button class="btn btn-info form-control" type="button" id="search">
<i class="fa fa-search"></i>
</button>
</div>
通过添加class =&#34; form-inline&#34;容器Div你强迫所有东西保持在同一行,但你必须添加display:block如果你想强制元素总是并排放置,无论你显示分辨率有多小。
答案 4 :(得分:0)
嗯,
如何将Icon放在输入字段的绝对位置上? 或者更好的解决方案是这样的:
Two divs: one fixed, other stretched
two divs side by side, one 100% width others width depended on content
如果这不会有助于制作小提琴。