繁体   English   中英

如何为div内的每个元素设置边框颜色?

[英]How to set border color for each element inside div?

我一直在研究标记图像的代码。 我能够插入标签,并且为每个插入的标签创建一个小框,标签名将显示在里面。 我想做的是,为每个创建的盒子有不同的颜色。

 var html = "<div class='inputtag'><i class='fa fa-eye' aria-hidden='true'></i><i class='fa fa-trash-alt' aria-hidden='true'></i><span>" + input + "</span><input type='hidden' name='tag_name[]' value='" + input + "'></div>"; $('.tags').append(html); var theColors = [] document.querySelectorAll(".inputtag").forEach((el, idx) => theColors.push("#" + ((1 << 24) * Math.random() | 0).toString(16)); el.style.borderColor = theColors[idx] )
 .inputtag>i { margin - right: 4 px; }.inputtag { border - radius: 4 px; border: 1 px solid skyblue; color: #000; padding: 2px 8px; width: max-content; text-align: center; cursor: pointer; margin: 4px 4px; float: left; }

在上面的 Javascript 代码中,我尝试为 div 内的元素获取不同的边框颜色,但在每个新条目后颜色会不断变化。 我附上了下面的图片以更好地解释它。

图 1:

在此处输入图像描述

在此图像 1 中,您可以看到具有两个不同 colors 的元素。 当我添加一个新元素时,这些 colors 会发生变化。 即,对于添加到 Div 中的每个元素,每个元素的边框颜色都会不断变化。

图 2:

在此处输入图像描述

图 2 显示了元素边框颜色的变化。 我想要的是为 Div 内的每个元素设置不同的固定 colors,因此它们在添加新元素时不会改变颜色。

有人可以帮我解决这个问题。

尝试这个:

 var render = document.querySelector('#tags'); var btnAdd = document.querySelector('#btn-add'); var tags = []; btnAdd.addEventListener('click', () => { var nameTag = document.querySelector('#name-tag'); var color = ((1 << 24) * Math.random() | 0).toString(16); render.innerHTML += ` <div class="tag" style="border-color: #${color};"> ${nameTag.value} </div> `; });
 .tag { border-radius: 4px; border: 2px solid skyblue; color: #000; padding: 2px 8px; margin: 4px 4px; float: left; }
 <input type="text" id="name-tag" placeholder="name tag..."> <button id="btn-add">Add</button> <hr> <div id="tags"> </div>

您可以为每个标签存储一个颜色代码,并在需要显示这些标签时检索它们。 因为如果刷新页面,这也会重置所有 colors。

或者,您可以使用一组颜色代码,以便始终将这些 colors 顺序分配给标签。

虽然我会遵循第一种方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM