这是我的代码:
input, div{
border:1px solid;
margin: 20px 30px 0px 30px;
}
<input />
<div>
something
</div>
我想要做的就是使input
的宽度与div
相同。
注意display: block;
和width: 100%;
都不会按预期工作。
答案 0 :(得分:2)
您可以在父元素上使用display: flex
,或者在这种情况下使用body
,如果您使用flex-direction: column
body {
display: flex;
flex-direction: column;
}
input, div{
border:1px solid;
margin: 20px 30px 0px 30px;
}
&#13;
<input type="text">
<div>
something
</div>
&#13;
或者您可以使用calc
和硬编码宽度 - 边距来输入元素。
input, div{
border:1px solid;
margin: 20px 30px 0px 30px;
}
input {
display: block;
width: calc(100% - 60px);
padding-left: 0;
padding-right: 0;
}
&#13;
<input type="text">
<div>
something
</div>
&#13;
或者您可以添加包装器并将margin
属性(甚至padding
)设置为它:
* {
box-sizing: border-box;
}
div {
border: 1px solid;
margin: 20px 30px 0px 30px;
}
.input_wrapper {
margin: 20px 30px 0px 30px;
}
input {
border: 1px solid;
width: 100%;
}
&#13;
<div class="input_wrapper">
<input type="text">
</div>
<div>
something
</div>
&#13;
答案 1 :(得分:0)
您可以尝试object-fit: fill;
请参阅此object-fit
答案 2 :(得分:0)
基本上,如果你完全100%完成它并为其添加边框,它将超过100%。你可以做的是添加边框插入如下:
<input />
<div>
something
</div>
input, div{
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
width: 100%;
height: 10px;
border: 1px solid #000;
margin: 20px 0px;
}