几种黑白相间的棋盘实现方法

方法一:用 DIV 实现

<style>
    .black-cell{
        width:50px;
        height:50px;
        background: #000;
        position: absolute;
        top:0;
        left:0;
    }
</style>

    <div id="qipan" style="width:400px;height:400px;border:1px solid #aaa;background:#fff; position: relative;"></div>

<script>    
    var frag = document.createDocumentFragment();    
    for (var line = 0; line < 8; line++) {
        for (var column = 0; column < 8; column++) {
            if ( (column+line) % 2 != 0) {
                var div =  document.createElement("div");
                div.setAttribute("class", "black-cell");
                div.style.top = (line*50) + "px";
                div.style.left = (column*50) + "px";
                frag.appendChild(div);
            } 
        }
    }
    document.getElementById("qipan").appendChild(frag);
</script>

方法二:利用原生表格实现

<table id="t1" cellspacing="0" cellpadding="0" border=1></table>

<script>
    var t1 = document.getElementById("t1");
    var str = ""
    for (var i =0; i<8; i++) {
        str += "<tr>";
        for(var j = 0; j<8; j++){
            if((i+j)%2 !== 0){
                str += "<td style='width:50px;height:50px;background:#000;'></td>";
            }else{
                str += "<td style='width:50px;height:50px;'></td>";
            }               
        }
        str += "</tr>";
    }
    t1.innerHTML = str;
</script>

方法三:利用 ES6 实现

<style>
    .row>span{
        display: inline-block;
        text-align: center;
        width:50px;
        height:50px;
    }
    .black{
        background: #000;
    }

    div .row{
        height:50px;
    }
</style>
<body>
    <div id="board" ></div>

    <script>                
        function row(value=''){
            const array = new Array(8);
            array.fill(value);
            return array;
        }

        function allcells(value=''){
            return Array.from({length:8},() =>row(value)); 
        }

        const table = allcells();
        const cells = table.map((rows, i)=>rows.map((cell, j)=>{
            if ((i+j) % 2 != 0){
                return $("<span>").addClass("black").text(cell);
            } else{
                return $("<span>").text(cell);
            }                   
        }));
        const rowsTodiv = cells.map(spans=>{
            return $("<div>").addClass("row")
                            .append(spans)});
        $("#board").append(rowsTodiv);
    </script>
</body>

最后截一张实现完成的图片:
这里写图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值