我有小提琴:https://jsfiddle.net/ufLpqdtj/
我的问题是试图让我的搜索框和按钮始终在页面上全宽,而不管它运行的是什么设备。
在Javascript中,我总是可以使文本框的宽度减去100%减去按钮的像素宽度(按钮总是大小相同),但我觉得好像我遗漏了一些东西,并且它可以在CSS中原生地完成。
有任何想法或建议吗?
#commonSearchContainer {
display: block;
clear: both;
width: 100%;
position: relative;
}
#commonSearchTerm {
width: 100%;
margin: 25px 0px 0px 0px;
padding: 5px;
border: 1px solid #999999;
height: 35px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.common-search-term-wrapper {
width: 90%;
display: inline-block;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.common-search-button {
background-color: #E9700D;
border: 1px solid #ccc;
display: inline-block;
margin: 25px 0px 0px 10px;
width: 80px;
color: #fff;
padding: 7px;
font-style: italic;
cursor: pointer;
}
<div id="searchSection" class="common-search-section">
<div class="common-search-term-wrapper">
<input id="commonSearchTerm" type="text" autocomplete="off" class="common-search-term">
</div>
<div id="commonSearchSubmit" class="common-search-button">
Search
<div style="clear: both;"></div>
</div>
</div>
答案 0 :(得分:1)
我通常为这种布局做的是在元素周围创建一个父容器(就像你一样)并给它position: relative
和width: 100%
。
然后我在内部元素上使用position: absolute
和display: inline-block
。设置固定大小元素的宽度,并使用left
或right
定位所有元素。
在您的情况下,它会是这样的:https://jsfiddle.net/ufLpqdtj/1/
答案 1 :(得分:1)
好吧,你不应该把div用作按钮。有html元素。
如果正确理解了你想要达到的目标......
form {
width: 100%;
display: inline-flex;
justify-content: center;
}
#commonSearchTerm {
width: 80%;
}
#searchButton {
width: 80px;
border-radius: 0;
background-color: red;
border: none;
padding: 2px;
color: white;
}
<form >
<input id="commonSearchTerm" type="text" autocomplete="off" class="common-search-term">
<input id="searchButton" type="submit">
</form>
这是使用flexbox,在创建响应式内容时更灵活。