Css 提交按钮旁边的输入字段(未知宽度和空格)
我试图设置我的表单,使其在左侧有一个输入字段,在右侧有一个提交按钮。但是,我需要输入字段获取所有剩余空间减去1个em的空间 我已尝试使用此代码:Css 提交按钮旁边的输入字段(未知宽度和空格),css,Css,我试图设置我的表单,使其在左侧有一个输入字段,在右侧有一个提交按钮。但是,我需要输入字段获取所有剩余空间减去1个em的空间 我已尝试使用此代码: <aside class="widget-area"> <section class="widget-search"> <form class="search-form"> <label class="search-label">
<aside class="widget-area">
<section class="widget-search">
<form class="search-form">
<label class="search-label">
<span class="search-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Search..." />
</label>
<input type="submit" class="search-submit" />
</form>
</section>
</aside>
.search-form {
display: table;
table-layout: fixed;
width: 100%;
}
.search-label {
display: table-cell;
}
.search-input {
display: table-cell;
}
现在,按钮位于输入字段旁边,但它已从容器中取出…您可以在容器上使用Flexbox,以便您的输入能够占用任何剩余空间 有两个示例,其中按钮的宽度不同,但输入自动适应每种情况 相关CSS为:
.form-line {
display: flex;
}
.search-input {
flex: 1 0 auto;
}
其中flex的3个组件表示:“可以增长,不能收缩,flex基础
设置为自动”(与此处的起始宽度有些关联)
兼容性:IE9+备忘单:
注意:我在标签/输入中添加了
for/id
,这样所有屏幕阅读器都可以将它们关联起来,并将标签读出给用户您可以在容器上使用Flexbox,这样您的输入就可以占用任何剩余空间
有两个示例,其中按钮的宽度不同,但输入自动适应每种情况
相关CSS为:
.form-line {
display: flex;
}
.search-input {
flex: 1 0 auto;
}
其中flex的3个组件表示:“可以增长,不能收缩,flex基础
设置为自动”(与此处的起始宽度有些关联)
兼容性:IE9+备忘单:
注意:我在label/input上添加了
for/id
,这样所有屏幕阅读器都可以将它们关联起来,并将标签读给他们的用户为什么不这样做呢
。搜索表单{
显示:表格;
表布局:固定;
宽度:100%;
}
.搜索标签{
浮动:左;
宽度:200px;
背景:浅蓝色;
}
.搜索提交{
宽度:计算(100%-200px);
框大小:边框框;
}
你好
为什么不这样做呢
。搜索表单{
显示:表格;
表布局:固定;
宽度:100%;
}
.搜索标签{
浮动:左;
宽度:200px;
背景:浅蓝色;
}
.搜索提交{
宽度:计算(100%-200px);
框大小:边框框;
}
你好
您的HTML代码中没有搜索输入,输入没有类型。你能改进你的例子吗?考虑使用1CH空间代替1ReM来分离你的输入和按钮。REM是垂直相对单位,而ch是内联相对单位,因此在这种情况下它们更有意义。@ragdoll一旦将1(r)em定义为某个参考的高度,您就可以将其用于水平和/或垂直方向。它是在垂直引用之后定义的相对单位,不是特别的“垂直相对单位”。你的按钮在哪里?好的,我添加了输入类型以改进我的示例。你的HTML代码中没有搜索输入,输入没有类型。你能改进你的例子吗?考虑使用1CH空间代替1ReM来分离你的输入和按钮。REM是垂直相对单位,而ch是内联相对单位,因此在这种情况下它们更有意义。@ragdoll一旦将1(r)em定义为某个参考的高度,您就可以将其用于水平和/或垂直方向。这是一个垂直参考后定义的相对单位,不是特别的“垂直相对单位”。你的按钮在哪里?好的,我添加了输入类型以改进我的示例。如果标签在德语/芬兰语/法语翻译中短于“名称”,或者比原始英语标签长,怎么办?200px的宽度是一个你不需要的假设(如果我可以避免的话,我也不希望这样)是的,如果你想要它是动态的,你必须用jquery计算它,或者读入Flexbox如果标签短如“Name”,或者在德语/芬兰语/法语翻译中比原始的英语标签长呢?200px的宽度是一个假设,你不需要(如果我可以避免的话,我也不希望)是的,如果你想要它是动态的,你必须用jquery计算它,或者读入Flexbox你的例子正是我想做的,但是,我不能让它与字体sizeOk一起工作,所以在玩了一段时间代码之后,似乎通过将最小宽度:0和宽度:100%添加到我的搜索字段,它现在甚至可以使用字体大小。我还必须将shrink属性设置为1:)您的示例正是我想要做的,但是,我无法让它与字体大小OK一起工作,因此在玩了一段时间的代码之后,似乎通过在我的搜索字段中添加min-width:0和width:100%,它现在甚至可以与字体大小一起工作。我还必须将shrink属性设置为1:)