如何在Flutter中创建带圆角的多角(超过四角)Container组件
实现目标组件的代码示例
根据你提供的目标组件样式,我用HTML、CSS和JavaScript实现了一个匹配的版本,包含标签、输入框、下拉选项、添加按钮和删除按钮:
HTML 结构
<div class="component-container"> <div class="input-group"> <span class="label">标签</span> <input type="text" class="input-field" placeholder="输入内容"> <select class="select-dropdown"> <option value="option1">选项1</option> <option value="option2">选项2</option> <option value="option3">选项3</option> </select> <button class="btn add-btn">+</button> <button class="btn remove-btn">-</button> </div> </div>
CSS 样式
.component-container { padding: 1rem; font-family: Arial, sans-serif; } .input-group { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem; border: 1px solid #ccc; border-radius: 4px; width: fit-content; } .label { font-weight: 500; color: #333; } .input-field { padding: 0.4rem 0.6rem; border: 1px solid #ddd; border-radius: 4px; width: 120px; } .select-dropdown { padding: 0.4rem 0.6rem; border: 1px solid #ddd; border-radius: 4px; background-color: white; } .btn { width: 28px; height: 28px; border: none; border-radius: 4px; cursor: pointer; font-size: 1.2rem; display: flex; align-items: center; justify-content: center; } .add-btn { background-color: #4CAF50; color: white; } .remove-btn { background-color: #f44336; color: white; } .btn:hover { opacity: 0.9; }
JavaScript 逻辑(实现添加/移除输入组功能)
const addBtn = document.querySelector('.add-btn'); const container = document.querySelector('.component-container'); addBtn.addEventListener('click', () => { const newGroup = document.querySelector('.input-group').cloneNode(true); newGroup.querySelector('.input-field').value = ''; container.appendChild(newGroup); // 给新的删除按钮绑定移除事件 newGroup.querySelector('.remove-btn').addEventListener('click', function() { if (container.querySelectorAll('.input-group').length > 1) { this.parentElement.remove(); } }); }); // 初始删除按钮事件绑定 document.querySelector('.remove-btn').addEventListener('click', function() { if (container.querySelectorAll('.input-group').length > 1) { this.parentElement.remove(); } });
你可以根据实际需求调整样式细节、输入框宽度、选项内容等。
内容的提问来源于stack exchange,提问作者Ron Bis
相关产品推荐
相关产品推荐

