我想将文本字段和按钮放在同一行。 我用过display:inline;但它不起作用。我在哪里犯了错误?
.listBar {
position: absolute;
left: 40px;
top: 210px;
box-sizing: border-box;
}
#input {
width: 100%;
font-size: 16px;
border: none;
background-color: aliceblue;
padding: 14px;
float: left;
}
#add {
color: whitesmoke;
border: none;
background-color: inherit;
padding: 14px 20px;
font-size: 16px;
cursor: pointer;
float: left;
}
#add,
#input {
display: inline;
}

<div class='listBar'>
<h2 class='header' style='margin:5px'> List </h2>
<input type='text' id='input' placeholder="Title">
<button id='add'> Add </button>
</div>
&#13;
答案 0 :(得分:0)
你不需要花车这样做,你的输入宽度为100%,这就是为什么显示内联不起作用,而且h2也是默认阻止所以你需要将它的显示设置为内嵌或内联块
.listBar {
position: absolute;
left: 40px;
top: 210px;
box-sizing: border-box;
}
#input {
font-size: 16px;
border: none;
background-color: aliceblue;
padding: 14px;
}
#add {
color: black;
border: none;
background-color: lightgrey;
padding: 14px 20px;
font-size: 16px;
cursor: pointer;
}
#add, #input {
display: inline;
}
&#13;
<div class='listBar'>
<h2 class='header' style='margin:5px'> List </h2>
<input type='text' id='input' placeholder="Title">
<button id='add'> Add </button>
&#13;
答案 1 :(得分:0)
它是因为你的输入宽度为100%。这使得它占据了所有的位置,没有任何剩余的按钮。如果删除那里的宽度或将其设置为自动,它将起作用。另外,小心第二个浮子,一个应该是正确的,而不是留下。
.listBar{
position: absolute;
left: 40px;
top: 210px;
box-sizing: border-box;}
#input{
font-size: 16px;
border: none;
background-color: aliceblue;
padding: 14px;
float: left;}
#add{
color: whitesmoke;
border: none;
background-color: inherit;
padding: 14px 20px;
font-size: 16px;
cursor: pointer;
float: right;}
#add, #input{
display: inline;}
答案 2 :(得分:0)
这里的问题是input
需要width: 100%;
其父级。所以没有更多的空间放置按钮了。
这是一个带注释的工作片段:
(这就是我如何纠正问题,如果是我自己的话)
body { /* Added only for snippet */
background: #ddd;
}
.listBar {
position: absolute;
background: #bbb; /* Added only for snippet */
left: 40px;
top: 20px; /* Modified only for snippet */
box-sizing: border-box;
}
#input {
width: auto; /* Modified, you could also simply remove this line */
font-size: 16px;
border: none;
background-color: aliceblue;
padding: 14px;
float: left;
}
#add {
color: whitesmoke;
border: none;
background-color: inherit;
padding: 14px 20px;
font-size: 16px;
cursor: pointer;
float: right; /* Floating on the right */
}
&#13;
<div class='listBar'>
<h2 class='header' style='margin:5px'> List </h2>
<input type='text' id='input' placeholder="Title">
<button id='add'> Add </button>
</div>
&#13;
评论后的第二项提案:
(那不是我要做的,但这无论如何都很有趣!)
您可以使用transform
属性来移动元素:
body {
background-color: #ddd; /* Added only for snippet */
}
.listBar {
position: absolute;
background: #bbb; /* Added only for snippet */
left: 40px;
top: 20px; /* Modified only for snippet */
box-sizing: border-box;
}
#input {
width: 100%;
font-size: 16px;
border: none;
background-color: aliceblue;
padding: 14px;
float: left;
}
#add {
color: whitesmoke;
border: none;
background-color: inherit;
padding: 14px 20px;
font-size: 16px;
cursor: pointer;
float: right; /* Floating on the right */
transform: translate(100%, -50%); /* Added with funny values, just for demo. Waiting for your answer to my comment. :) */
}
&#13;
<div class='listBar'>
<h2 class='header' style='margin:5px'> List </h2>
<input type='text' id='input' placeholder="Title">
<button id='add'> Add </button>
</div>
&#13;
请注意,目前,由于padding
的{{1}},输入超出了其父级。
你可能想纠正它。
有关input
的文档:https://www.w3schools.com/css/css3_2dtransforms.asp
使用transform
百分比时,它占用元素大小的百分比
它非常方便。
希望它有所帮助。
答案 3 :(得分:0)
如果输入文本字段占用父宽度的100%是正确的,那么该按钮将没有空间。此外,不需要显示:内联。只需在两个元素类中添加 float:left 并增加主div类元素的宽度,就可以将文本字段和按钮放在同一行中。 / p>
a
答案 4 :(得分:-1)
在input
和button
周围放一个包装,然后使用display: flex;
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
这有帮助吗?
.listBar {
position: absolute;
left: 40px;
box-sizing: border-box;
}
.listBar__forms {
display: flex;
}
#input {
width: 100%;
font-size: 16px;
border: none;
background-color: aliceblue;
padding: 14px;
}
#add {
color: whitesmoke;
border: none;
background-color: inherit;
padding: 14px 20px;
font-size: 16px;
cursor: pointer;
}
<div class='listBar'>
<h2 class='header' style='margin:5px'> List </h2>
<div class="listBar__forms">
<input type='text' id='input' placeholder="Title">
<button id='add'> Add </button>
</div>
</div>