【问题标题】:How to set border color for each element inside div?如何为div内的每个元素设置边框颜色?
【发布时间】:2020-07-12 23:48:17
【问题描述】:

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

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 中,您可以看到具有两种不同颜色的元素。当我添加一个新元素时,这些颜色会发生变化。即,对于添加到 Div 中的每个元素,每个元素的边框颜色都会不断变化。

图片 2:

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

谁能帮我解决这个问题。

【问题讨论】:

    标签: javascript html jquery css


    【解决方案1】:

    试试这个:

            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>

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-01-21
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 2010-12-20
        • 1970-01-01
        • 2019-04-17
        • 2014-03-24
        • 2013-09-16
        相关资源
        最近更新 更多