Html CSS中的宽度无法正常工作
所以我的提交按钮有一个很奇怪的问题。我在提交按钮上使用了Html CSS中的宽度无法正常工作,html,css,forms,Html,Css,Forms,所以我的提交按钮有一个很奇怪的问题。我在提交按钮上使用了width:100%,它是一个“包装”,所以基本上应该是全宽度,但最终我似乎无法让它工作。这是我所说内容的屏幕截图 正如您所看到的,输入字段在宽度为100%的情况下都正常工作,但提交不起作用。这是相应问题的代码 HTML部分 <div class="wrap"> <form> <div> <input type="text" placeholder=
width:100%
,它是一个“包装”,所以基本上应该是全宽度,但最终我似乎无法让它工作。这是我所说内容的屏幕截图
正如您所看到的,输入字段在宽度为100%的情况下都正常工作,但提交不起作用。这是相应问题的代码
HTML部分
<div class="wrap">
<form>
<div>
<input type="text" placeholder="Name">
</div>
<div>
<input type="text" placeholder="Email">
</div>
<div>
<input type="password" placeholder="Password">
</div>
<div>
<input type="submit">
</div>
</form>
</div>
我可以用width:109%
,但我更喜欢使用100
,以及这不起作用的原因或解释,有什么想法吗
另外,.一个快速修复方法是在表单中的所有输入元素上使用
框大小:border box
,然后声明一个统一的宽度:这将确保将宽度计算为最终的边框框宽度(包括边框宽度和填充)
然后,您可以安全地为每个单独的输入元素自定义填充(如果您愿意的话),而不必担心它们如何影响元素的最终宽度
下面是一个基于您提供的标记构造的概念验证fiddle;) 一个快速解决方法是在表单中的所有输入元素上使用
框大小:边框框
,然后声明一个统一的宽度:这将确保将宽度计算为最终边框框宽度(包括边框宽度和填充)
然后,您可以安全地为每个单独的输入元素自定义填充(如果您愿意的话),而不必担心它们如何影响元素的最终宽度
下面是一个基于您提供的标记构造的概念验证fiddle;) 您需要将
框大小:边框框
添加到输入类中。输入框中的右/左填充使它们比定义的宽度更宽。您需要将框大小:边框框
添加到输入类中。输入框中的右/左填充使它们比定义的宽度宽。输入{padding:0 14px;}
使输入100%+28px宽输入{padding:0 14px;}
使输入100%+28px宽这是填充:0 14px代码>正在破坏布局(如图所示)
可接受的解决方案使用框大小调整
属性,但某些较旧的浏览器可能不支持该属性,并且可能会导致其他副作用
我建议用文本缩进:14px替换它代码>它是填充:0 14px代码>正在破坏布局(如图所示)
可接受的解决方案使用框大小调整
属性,但某些较旧的浏览器可能不支持该属性,并且可能会导致其他副作用
我建议用文本缩进:14px替换它代码>请发布完整的相关CSS(也适用于输入框)您确定是按钮
?可能按钮
是正确的,输入
是错误的(即,输入
的填充实际上溢出了宽度:320px
。编辑:我想在你发布完整CSS后说,输入
是错误的。14px
填充可能导致输入
超出容器边界……这不是因为换行符?在所有浏览器中都是一样的,例如,它是输入。你可以判断何时向换行符添加边框:请发布完整的相关CSS(也用于输入框)你确定是按钮
?可能是按钮
正确,而输入
错误(即,输入
的填充实际上溢出了宽度:320px
。编辑:我想在你发布完整CSS后说,输入
是错误的。14px
填充可能导致输入
超出容器边界……这不是因为换行符?在所有浏览器中都是一样的,例如,它是输入。你可以告诉你什么时候在换行符中添加边框:就像一个符咒。谢谢。我会接受的,当我可以的时候。还有+1fiddle@Colourity谢谢:)还添加了一个JSFIDLE来演示box size:border box
是如何解决这个问题的。效果很好。谢谢。我会在可以的时候接受的。另外,对于fiddle@Colourity谢谢:)还添加了一个JSFIDLE来演示框大小:border box
如何解决这个问题。呵呵。就要发布了。:)一把小提琴来制作@ejay的案例。当然会把它标记为答案,只是你发布了第二个答案。实际上,你不必这样做。你可以省略包装上的填充和输入上的宽度(它们已经是display:block)。最好删除一些CSS,以便添加额外的CSS来中和错误效果。我会采取另一种方式,即删除有效样式(填充)以避免其不可预见的效果(增加宽度),而不是修复效果(使用框大小).删除填充将删除文本框中文本前后的空白。我认为,在通过文本缩进实现空白之前,但正确的空格又如何呢?呵呵。正准备发布。:)制作@ejay案例的小提琴。我会把它标记为一个答案,只是你发布了第二条。实际上,你不必这么做。您可以省略包裹上的填充和输入上的宽度(它们已经是display:block)。最好删除一些CSS,以便添加额外的CSS来中和错误效果。我会采取另一种方式,即删除有效的样式(填充)以避免其不可预见的效果(增加宽度),而不是修复效果(使用框大小)。删除填充将删除文本框中文本前后的空白。在空白可以实现之前,我认为,通过文本缩进,但正确的空间呢?
input {
box-sizing: border-box;
width: 100%;
}