JavaScript基础:操作样式(通过获取和设置style属性、className属性)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript基础:操作样式(通过获取和设置style属性、className属性)</title>
    <!--
        一、操作style属性
            1、style属性可以设置或返回样式。
            2、style设置CSS特征值时,需要把特征的  短横线命名法  改成  驼峰命名法  后使用。
            3、在JavaScript中,float是保留字,如果需要使用float特征,需要变更为cssFloat后使用。
                如: elementObject.style.cssFloat = "left";

        二、操作className属性
            1、className属性可以设置或返回元素的className值。
            如:var btnCssName = elementObject.className;    // 获取className值
                elementObject.className = "pinkCss";        // 设置className值

    -->
    <style>
        .greenyellowButton{
            width: 150px;
            height: 50px;
            color:royalblue;
            font-size: 20px;
            margin: 10px;
            background-color: greenyellow;
            border: 2px solid orange;
        }
        .pHotpink{
            color: hotpink;
            background-color: paleturquoise;
            font-size: 50px;
        }
        span{
            width: 50px;
            height: 50px;
            display: inline-block;
            text-align: center;
            padding-top: 5px;
            margin-right: 10px;
            border: 2px solid black;
        }
    </style>
</head>
<body>
    <p id="p1">七龙珠里的孙悟空拥有筋斗云!</p>
    <br>
    <p id="p2">西游记里的孙悟空拥有如意金箍棒!</p>
    <br>
    <div>
        <span>赤</span>
        <span>橙</span>
        <span>黄</span>
        <span>绿</span>
        <span>青</span>
        <span>蓝</span>
        <span>紫</span>
    </div>
    <br>
    <input type="button" value="筋斗云" class="greenyellowButton" onclick="changeStyle()">
    <input type="button" value="如意金箍棒" class="greenyellowButton" onclick="changeClassName()">
    <input type="button" value="七彩祥云" class="greenyellowButton" onclick="changeSpanStyle()">
</body>
<script>
    function changeStyle(){

        // 设置段落1的style样式
        var pElementObj1 = document.getElementById("p1");
        pElementObj1.style.color = "darkviolet";
        pElementObj1.style.fontFamily = "草书";
        pElementObj1.style.fontSize = "40px";
        pElementObj1.style.backgroundColor = "bisque";

        // 注意:在JavaScript中,float是保留字,如果需要使用float特征,需要变更为cssFloat后使用
        // pElementObj1.style.cssFloat = "left";

        // 获取段落1的style样式
        var pTagColor1 = pElementObj1.style.color ;
        var pTagFontFamily = pElementObj1.style.fontFamily;
        var pTagFontSize = pElementObj1.style.fontSize;
        var pTagBackgroundColor = pElementObj1.style.backgroundColor;

        console.log("段落1的字体颜色是:" + pTagColor1);
        console.log("段落1的字体类型是:" + pTagFontFamily);
        console.log("段落1的字体大小是:" + pTagFontSize);
        console.log("段落1的背景颜色是:" + pTagBackgroundColor);

    }

    function changeClassName(){

        // 设置段落2的class样式
        var pElementObj2 = document.getElementById("p2");
        pElementObj2.className = "pHotpink";
        
        // 获取段落2的class样式
        var pTagClassName = pElementObj2.className ;

        console.log("段落2的class name是:" + pTagClassName);

    }

    function changeSpanStyle(){

        // 通过tag name获取所有span标签元素
        // 
        // 方式一:
        // var spanNodeList = document.getElementsByTagName("span");

        // 方式二:
        var spanNodeList = document.querySelectorAll("span");

        for (let i = 0; i < spanNodeList.length; i++) {

            const spanNode = spanNodeList[i];

            // 给每个span标签设置不同的背景颜色
            // 
            // 方式一:
            // 通过if...else...语句进行判断

            if(i == 0){
                spanNode.style.backgroundColor = "red";
            }
            else if(i == 1){
                spanNode.style.backgroundColor = "orange";
            }
            else if(i == 2){
                spanNode.style.backgroundColor = "yellow";
            }
            else if(i == 3){
                spanNode.style.backgroundColor = "green";
            }
            else if(i == 4){
                spanNode.style.backgroundColor = "cyan";
            }
            else if(i == 5){
                spanNode.style.backgroundColor = "blue";
            }
            else if(i == 6){
                spanNode.style.backgroundColor = "purple";
            }
            else{
                spanNode.style.backgroundColor = "hotpink";
            }

            // 方式二:
            // 通过switch...case...语句进行判断
            // switch (i) {
            //     case 0:
            //         spanNode.style.backgroundColor = "red";
            //         break;
            //     case 1:
            //         spanNode.style.backgroundColor = "orange";
            //         break;
            //     case 2:
            //         spanNode.style.backgroundColor = "yellow";
            //         break;
            //     case 3:
            //         spanNode.style.backgroundColor = "green";
            //         break;
            //     case 4:
            //         spanNode.style.backgroundColor = "cyan";
            //         break;
            //     case 5:
            //         spanNode.style.backgroundColor = "blue";
            //         break;
            //     case 6:
            //         spanNode.style.backgroundColor = "purple";    
            //         break;
            //     default:
            //         spanNode.style.backgroundColor = "hotpink";
            //         break;
            // }
            
        }
    }
    
</script>
</html>

页面初始效果:

点击按钮后的页面效果以及控制台显示以下信息:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值