我有两个<input type="text">
,我需要两个都居中,就好像它们是一个一样,让我解释一下:
有两个字段,一个用于姓名,一个用于姓氏,例如,如果我输入“JUAN DIAZ”,则此文本(将是两个input
)在黄色容器中视觉居中,它不准确,但它给出了外貌。
问题是当名字或姓氏的长度不同时,如下图所示:
有没有办法只使用 CSS 来将两个输入的文本居中,就好像它们是一个一样?你也可以选择JS。唯一的问题是必须始终有两 (2) 个input
居中。举个例子,它就像 Excel 的“合并和居中”功能。
这是问题代码:
input {
border: none;
background: transparent;
text-transform: uppercase;
font-weight: bold;
width: 150px;
}
.contenedor {
background-color: gray;
width: 350px;
padding: 4rem;
}
.centrar {
background-color: yellow;
padding: 1rem;
margin: 0 auto;
text-align: center
}
.nombre {
text-align: right;
}
.apellido {
text-align: left;
}
<div class="contenedor">
<div class="centrar">
<input class="nombre" type="text" /> <input class="apellido" type="text" />
</div>
<div>
谢谢您的意见。
您要查找的内容可以通过 css 变量 (
--value
) 并向输入添加侦听器来完成,这样当向其中添加文本时,它们的大小会根据文本的大小进行修改。我们知道两者的总大小
300px
因此在它们处于平衡状态时每个都有150px
,那么我们可以假设每个字符都会增加4px
输入的大小,从而将输入的文本的大小保存在我们可以进行计算以分配的变量中通过 css 变量的输入大小。代码如下:
通过这种方式,文本居中而不影响名字和姓氏之间的大小差异。
我希望你觉得它有用,问候。
解决方案可能如下:
nombre
和apellido
。el.offsetWidth
来获取文本的实际宽度然后要确定它应该具有的宽度,
input
我们必须使用公式:重要信息为了正确计算文本宽度,the
input
和 theelementos ocultos
必须具有相同的字体样式。例子:
我的解决方案是
input
在您的中仅创建一个,DOM
并通过拆分和切片获取姓名和姓氏来管理随着
split
您使用作为参数给出的条件将您想要的字符串分隔成一个数组,在这种情况下将是 ' ' (空格);并slice
根据全名的长度获得字符串的一部分,因为可以有一个到N个名称。事实上,这个解决方案的繁琐之处在于,处理可能的名称选项 =/告诉我们它是否是您需要的:)
我在这里向您展示我的示例,您可以输入代码
结果的照片
请记住,如果您使用引导程序,则必须包含 css 和 js 库