gpt4 book ai didi

javascript - 如何对齐 html 表单输入和内容间距

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:26 25 4
gpt4 key购买 nike

如何对齐表单输入、标签、文本区域和从 php 接收的数据之间的间距。其中可能有多行数据要显示。如果在中间添加一些东西,如何实现下一个元素的自动排列。?

这是代码:(如何进行自动排列?有没有比下面的代码更好的实现方法?)

li{text-decoration:none; list-style-type:none; } 
.left{ position:relative; left:100px;}
.right{ position:relative; left:200px;}
textarea{ position:relative; width:200px; height:70px; }
<html>
<body>
<br><br>

<form>
<ul>
<label class="left">Status:</label><li class="right"><textarea name="status"></textarea></li><br><br>
<label class="left">First name:</label><li class="right"><input type="text" name="firstname"></li><br><br>
<label class="left">Last name:</label><li class="right"><input type="text" name="lastname"></li><br><br>
<label class="left">Address:</label><li class="right"><textarea name="address"></textarea></li><br><br>
<label class="left">Address 2:</label><li class="right"><textarea name="address2"></textarea></li>
</ul>
</form>
</body>
</html>

最佳答案

你可以只使用 CSS flexbox 来解决。

display: flex 用于每个 li,一些 flex-basis 用于每个 label(在本例中 25% 并使用 flex: 1 为每个 input(例如 textarea 等)添加一个类。

document.querySelector('#add').addEventListener('click', function() {
var elem = document.createElement('li');
elem.innerHTML = '<label>Lorem Ipsum</label><input type="text" class="field" />';
document.querySelector('#list').appendChild(elem);
})
ul {
list-style: none;
padding: 0;
}

li {
display: flex;
margin-bottom: .5em;
}

label {
flex: 0 0 25%;
text-align: right;
padding-right: 1em;
align-self: center;
}

.field {
flex: 1;
}
<ul id=list>
<li>
<label for=status>Status:</label>
<textarea class="field" id=status name="status"></textarea>
</li>
<li>
<label for=firstname>First name:</label>
<input class="field" id=firstname type="text" name="firstname">
</li>
<li>
<label for=lastname>Last name:</label>
<input class="field" id=lastname type="text" name="lastname">
</li>
<li>
<label for=address>Address:</label>
<textarea class="field" id="address" name="address"></textarea>
</li>
<li>
<label for=address2>Address 2:</label>
<textarea class="field" id="address2" name="address2"></textarea>
</li>
</ul>

<button id=add>Add</button>

还添加了一个 for="..." 属性,以便在单击 label 时具有正确的行为(将 focus相关的输入)。

关于javascript - 如何对齐 html 表单输入和内容间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36522803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com