zoukankan      html  css  js  c++  java
  • day44:CSS选择器优先级&JS基础

    这是一个删除不掉的代码区!!我也没办法

    目录

    1.CSS选择器优先级

    2.补充:margin是可以设置百分比的

    3.JS

      3.1 js代码的引入方式

      3.2 变量

      3.3 数据类型

      3.4 数组(类似于python中的列表)

      3.5 自定义对象类型(类似于python中的字典)

      3.6 if判断

      3.7 运算符

      3.8 for循环

      3.9 while循环

      3.10 函数

    4.作业:使用CSS实现小米商城的导航栏

    CSS选择器优先级

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            /* css继承效果 优先级为0 */
            /* 元素选择器 优先级为1 */
            div{
                color: red;
            }
            span{
                color: blue;
            }
            /* 类值选择器 优先级为10 */
            .c1{
                color: green;
            }
            .c2{
                color: purple;
            }
            /* id选择器 优先级为100 */
            #d1{
                color: aqua;
            }
            /* !important 优先级为最高 */
            #d1{
                color: antiquewhite!important;
            }
            /* 多级选择器,优先级累加,但是不进位 */
            /* 意思就是11个类值选择器比不过1个id选择器 */
            .c1 .c2{
                color: seagreen;
            }
        </style>
    </head>
    <body>
        <div class="c1">
            div1111
            <!-- 内联样式 优先级为1000 -->
            <span class="c2" id="d1" style="color: orange">span1111</span>
        </div>
    </body>
    </html>

    关于css选择器优先级的总结

    补充:margin是可以设置百分比的

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .cc{
                height: 100px;
                width: 600px;
                border: 1px solid red;
            }
            .c1{
                height: 50px;
                width: 100px;
                background-color: green;
                /* 给margin设置百分比 */
                margin-left: 10%;
            }
        </style>
    </head>
    <body>
        <div class="cc">
            <div class="c1"></div>
        </div>
    </body>
    </html>

    实现效果如下所示

    JS

    1.JS全称Javascript

    2.JS现在最常用的两个版本是ECMAjavascript5和ECMAjavascript6

    3.ECMAjavascript的三部分:

      a.ECMAjavascript的核心是js代码

      b.BOM(浏览器对象模型):js操作浏览器,帮助你做事情

      c.DOM(HTML文档对象模型):通过js代码控制html文档中的所有元素(标签,标签属性,文本内容,css样式等等)

    1.js代码的引入方式

    <!-- 方式1:script标签中写js代码 -->
        <script>
            js代码
        </script>
    <!-- 方式2:创建.js结尾的文件,写js代码,通过script标签的src属性来引入(建议放到body标签下面) -->
        <script src="xx.js"></script>

    2.变量

    var a = 10;  // 声明变量
    var b;   // 只声明没有赋值,默认值为undefined

    3.数据类型

    数值类型(number)

    var a = 11;
    var b = 11.11;
    typeof a;  // number
    typeof b;  // number
    // + - * / % 都行,没有取整

    字符串类型(string)

    var s = '我爱我的家';
    typeof s;  "string"
    // 索引取值
    s[0] // "我"
    s.charAt(1); // "爱"
    // 切片 s.substring(起始值,结束值); 都是索引值
    s.substring(2,4); // "我的"
    var a = '  hello  ';
    a.trim(); // 移除两端空格
    a.trimLeft(); // 移除左边的空格
    a.trimRight(); // 移除右边的空格

    布尔类型(boolean)

    // js中的bool类型的true和false都是小写
    true
    false

    underfine和null类型

    undefined // 变量声明了,但是没有赋值,此时这个变量是undefined类型
    null // 变量不用了,就可以给变量赋值为null,--- object类型

    4.数组(类似于python中的列表)

    头部/尾部 追加或移除元素

    var name = [11,22,33];
    
    // 数组常用方法:
    names[0] // 索引,索引也是从0开始的
    
    names.push(ele) // 尾部追加元素
    // 示例:names.push('xx'); --  [11, 22, 33, "xx"]
    
    var ele = names.obj.pop() // 尾部移除一个元素
    // 示例:names.pop(); -- [11, 22, 33]
    
    names.unshift(ele) // 头部插入元素
    // 示例:names.unshift('ssss'); --  ["ssss", 11, 22, 33]
    
    var ele = obj.shift() // 头部移除一个元素
    // 示例:names.shift(); --  [11, 22, 33]

    splice:删除和替换

    var name = [11,22,33]
    // names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个)) 
    names.splice(index,0,ele) // 在指定索引位置插入元素
    // 示例:names.splice(2,0,'ele'); --[11, 22, "ele", 33]
    
    names.splice(index,1,ele) // 指定索引位置替换元素
    // 示例:names.splice(1,1,'kkk'); -- [11, "kkk", "ele", 33]
    
    names.splice(index,1) // 指定位置删除元素
    // 示例:names.splice(1,2); -- [11, 33]

    其他

    names.slice(start,end) // 切片
    // 示例:names.slice(1,3); --  [22, 33]
        
    names.reverse() // 原数组反转
    // 示例:a.reverse(); -- [33, 22, 11]
    
    names.join(sep)// 将数组元素连接起来以构建一个字符串
    // 示例: var a = ['ni','hao','ma',18]
    //        a.join('+'); -- "ni+hao+ma+18"
    
    names.concat(val,..) // 连接数组
    //示例: var a = [11,22]; var b = ['aa','bb']
    // var c = a.concat(b); c -- [11, 22, "aa", "bb"]
    
    names.sort()// 对原数组进行排序
        // 需要自己定义规则:
            function compare(a,b){
               return a - b; // 当大于0时,两个数据换位置
            };
            // 使用: a.sort(compare); 升序排列

    5.自定义对象类型(类似于python中的字典)

    var a = {username:'xx',password:'123'}; // key可以不加引号
    typeof info; // "object"
    
    // 常用方法
    var val = info['name'] // 获取,通过键取值必须加引号,
    var val = info.name //info.name 也是可以的
    info['age'] = 20 // 修改
    info['gender'] = 'male' // 新增
    delete info['age'] // 删除

    在js中,创建一个string字符串对象的语法:

    // 创建一个string字符串对象
    var a = new String('ss')
    typeof a; 'object'

    6.if判断

     var a = 0;
        if(a > 1){
            console.log('1111');
        }else if(a<1){
            console.log('2222');
        }else {
            console.log('3333');
        }

    7.运算符

    比较运算符

    // js中的比较运算符有 > < == !=  >=  <=   ===  !==
    var a = '11';
    var b = 11;
    
    a == b; // 弱等于 只判断数值大小 并不判断数据类型
    true
    a === b; // 强等于 会判断数据类型是否一致
    false
    a != b; // 弱不等于
    false
    a !== b; // 强不等于
    true

    算术运算符

    // js中的算术运算符有 +  -  * / %   ++  --  
    // ++ 自增 1  
    // -- 自减 1
    
    var a = 3;
    // a++  先执行逻辑  在+1
    // ++a  先+1 在执行逻辑
    
    简单示例:
        if (++a === 4){ // 先加1,再执行逻辑,所以这个条件成立,打印xxx
            console.log('xxx');
        }
        else{
            console.log('ooo');
        };

    8.for循环

    // 1.循环数组
    // 方式1:
    for (var i in a){
        console.log(i,a[i]);
    }
    // 方式2
    for (var i=0;i<a.length;i++){
        console.log(i,a[i]);
    }
    
    // 2.循环自定义对象
    var d = {name:'chao', age:18};
    for (var i in d){
        console.log(i,d[i]);
    }
    // 不能用下面的属性取值的方法
    for (var i in d){
        console.log(i,d.i);
    }

    9.while循环

    var a = 0;
    
    while (a < 10){
        console.log(a); // 打印 0 1 2 3 4 5 6 7 8 9
        a++;
    }

    10.函数

    普通函数

    function f1(a,b){
        return a+b;
    }
    // 执行: f1(1,2); -- 3
    
    // 注意:不能返回多个值
    function f1(a,b){
        return a,b;
    };
    // 执行:f1(1,2); -- 2[return不能返回多个值]

    匿名函数

    // 匿名函数:function后面没有跟名字
    var a = function (a,b){
        console.log('xxx');
    }
    
    // 在value中定义一个函数,通过变量名.键(参数) 执行函数
    var d = {'xx':'oo','f':function (a,b){
        console.log('xxx');
    }};
    // 执行:d.f(1,2);

    自执行函数

    // 定义function,并且整个function都用括号包起来
    // 在括号外面加上()来执行function函数
    (function () {
        alert('自执行函数!')
    })()

    用CSS写一个小米商城的导航栏

    HTML部分

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" href="xiaomi.css">
    </head>
    <body>
        <div class="nav">
            <div class="nav-content clearfix">
                <div class="nav-left">
                    <a href="" class="nav-link">小米商城</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">MIUI</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">LoT</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">云服务</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">金融</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">有品</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">小爱开放平台</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">企业团购</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">资质证照</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">协议规则</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">智能生活</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">Select Location</a>
                </div>
                <div class="cart-part">
                    <a href="" class="nav-link cart">购物车 (0)</a>
                    <div class="cart-list hide"></div>
                </div>
                <div class="nav-right">
                    <a href="" class="nav-link">登录</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">注册</a> <span class="shugang">|</span>
                    <a href="" class="nav-link">消息通知</a>
                </div>
            </div>
        </div>
    </body>
    </html>

    CSS部分

    /* 清除左上的小空白 */
    body{
        margin: 0;
        padding: 0;
    }
    
    /* 长方形黑框 */
    .nav{
        height: 40px;
        background-color: #333333;
        line-height: 40px;
    }
    
    /* 防止父级标签塌陷 */
    .clearfix:after{
        content: '';
        display: block;
        clear: both;
    }
    /* 让整个内容向右偏移5% 并且内容占90% 所以右边也占5% 保持左右对称 */
    .nav-content{
        margin-left: 5%;
        width: 90%;
        position: relative;
    }
    
    /* 左部分内容和右部分内容浮动 离左右40px */
    .nav-content .nav-left{
        float: left;
        height: 40px;
    }
    .nav-content .nav-right{
        float: right;
        height: 40px;
    }
    /* 设置内容里面所有a标签的样式 */
    .nav-content a{
        color: #b0b0b0;
        text-decoration: none;
        font-size: 12px;
    }
    /* 设置所有竖杠的样式 */
    .nav-content .shugang{
        color: #424242;
    }
    
    
    /* 购物车 (0)的位置 */
    .cart-part{
        float: right;
    }
    /* 设置购物车小块块的样式 */
    .cart-part .cart{
        display: inline-block;
        height: 40px;
        width: 120px;
        background-color: #424242;
        text-align: center;
    }
    
    /* 触碰购物车会出现一个下拉框 */
    /* 原本display是none 当触碰购物车时会变为block状态*/
    /* 在block块级标签状态下可与设置高度宽度等参数 */
    .cart-part:hover .cart-list{
        display: block;
    }
    /* 触碰购物车下拉框的样式 */
    .cart-list{
        height: 100px;
        width: 320px;
        position: absolute;
        right: 0;
        top: 40px;
        background-color: red;
    }
    /* 隐藏 */
    .hide{
        display: none;
    }

    实现效果

  • 相关阅读:
    UNIX基础知识之系统调用与库函数的区别与联系
    C++编程对缓冲区的理解
    Cache和Buffer的区别
    Linux中errno使用
    printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf
    错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
    Telnet、SSH和VNC
    NFS服务的配置与应用
    Samba服务器配置参考链接
    实现多个标签页之间通信的几种方法(sharedworker)
  • 原文地址:https://www.cnblogs.com/libolun/p/13602514.html
Copyright © 2011-2022 走看看