zoukankan      html  css  js  c++  java
  • HTML第二课——css【2】

    请关注公众号:自动化测试实战

    现在继续上一节课的内容,看下面代码:

    <!DOCTYPE html>
    <html>
    <head>    <meta charset="utf-8">    <title>Css</title>    <meta name="keywords" content="key1, key2">    <meta name="description" content="">    <!--    <style type="text/css">        /*            css的注释写法        */        div{            border: 1px solid red;            display: inline;        }    </style> -->    <link rel="stylesheet" type="text/css" href="css/index.css"></head><body>    <!-- 这是注释 -->    <!--通过css改变文字颜色:color属性 -->    <div>这是一个div标签</div>    <div>这是第二个div标签</div>
    </body>
    </html>

    index.css

    div{
       font-family: 'Microsoft Yahei';    
       font-size: 20px;    
       border: 1px solid red;    
       display: inline;
    }

            上面代码中有两个div标签,而在css样式表中只有一个样式文件,那么此时是不是两个div标签都使用同一个样式呢?大家看了以后就知道,答案是肯定的。那么我们现在想让两个div样式不一样,该怎么写呢?此时我们就需要对两个div有所区分,上面css文件中选择器叫做标签选择器,所以只要是div标签都会适用于对应的样式。现在要区别设置,就涉及到标签选择器了:

    • id选择器

            所有的可视化基本都有id属性,id英文全名为identity意为唯一标识,所以id值必须是唯一的。而且id命名规范为由数字、字母、下划线组成,且不能用数字开头。起名字要用驼峰命名法,比如:myDivmyDivSpan

    <!DOCTYPE html>
    <html>
    <head>    <meta charset="utf-8">    <title>Css</title>    <meta name="keywords" content="key1, key2">    <meta name="description" content="">    <!--    <style type="text/css">        /*            css的注释写法        */        div{            border: 1px solid red;            display: inline;        }    </style> -->    <link rel="stylesheet" type="text/css" href="css/index.css"></head><body>    <!-- 这是注释 -->    <!--通过css改变文字颜色:color属性 -->    <div id="myDiv1">这是一个div标签</div>    <div id="myDiv2">这是第二个div标签</div>
    </body>
    </html>

            上面id已经写好,我们现在来css文件中修改代码,如果你看过之前的xpath写法,那你就一定记得xpath中id用#来表示,css文件中也一样——.代表class#代表id

    /*
    这是css注释
    */

    #myDiv1{
       background-color: #000000;    
       color:#ffffff;    
       display: block;    
       border: solid purple;
    }

    #myDiv2{
       background-color: #ff0000;    
       color:#fff;    
       border: solid green;
    }

    页面显示:

    • class选择器

    class就不是唯一的了,这就是为什么在selenium中有find_elements_by_class_name()的原因了。如上所说,用.表示class

    /*
    这是css注释
    div{
        font-family: 'Microsoft Yahei';
        font-size: 20px;
        border: 1px solid red;
        display: inline;
    }
    */

    #myDiv1{
       background-color: #000000;    
       color:#ffffff;    
       display: block;    
       border: solid purple;
    }

    #myDiv2{
       background-color: #ff0000;    
       color:#fff;    
       border: solid green;
    }

    .myClass{
       background-color: pink;
    }

    页面显示:

    背景色有长有短的问题先不用管,下一篇会讲。

    你也可以在div标签下增加class属性,然后设置它的背景色,但如果divid标签设置了背景色,那么会优先选择你在id下设置的背景色:

    <div id="myDiv1" class="myClass">这是一个div标签</div>

    显示和上图一样。所以id选择器优先级要高于class选择器。

    • 混合选择器

    先说明一下,以后我们要用混合选择器,用混合选择器,用混合选择器。

    混合选择器就是标签选择器+类选择器

    下面代码中的div.myClass意为class是myClass的div标签

    /*
    这是css注释
    div{
        font-family: 'Microsoft Yahei';
        font-size: 20px;
        border: 1px solid red;
        display: inline;
    }
    */

    #myDiv1{
       background-color: #000000;    
       color:#ffffff;    
       display: block;    
       border: solid purple;
    }

    #myDiv2{
       background-color: #ff0000;    
       color:#fff;    
       border: solid green;
    }

    div.myClass{
       background-color: pink;
    }

    这样,css就只会修改class是myClass的div标签了。

    如果想把classmyClass的其他标签也用相同的样式,只需要用逗号隔开:

    div.myClass, p.myClass, span.myClass{
       background-color: pink;
    }

    用选择器的原则就是描述的越详细越好。

    选择器的优先级:

    id ->混合选择器->class选择器->标签选择器

    现在我们修改html

    <!DOCTYPE html>
    <html>
    <head>    <meta charset="utf-8">    <title>Css</title>    <meta name="keywords" content="key1, key2">    <meta name="description" content="">    <link rel="stylesheet" type="text/css" href="css/index.css"></head><body>    <!-- 这是注释 -->    <!--通过css改变文字颜色:color属性 -->    <div id="myDiv1" class="myClass">这是一个div标签</div>    <div id="myDiv2">这是第二个div标签</div>    <div class="myClass">这是第三个div标签</div>    <p class="myClass">这是p标签</p>    <span class="myClass">这是一个span标签</span>    <div id="div">        <span class="span">            <p>这是一个p标签</p>        </span>    </div>
    </body>
    </html>

    现在我们要修改p标签的文字颜色为红色:

    /*
    这是css注释
    div{
        font-family: 'Microsoft Yahei';
        font-size: 20px;
        border: 1px solid red;
        display: inline;
    }
    */

    #myDiv1{
       background-color: #000000;    
       color:#ffffff;    
       display: block;    
       border: solid purple;
    }

    #myDiv2{
       background-color: #ff0000;    
       color:#fff;    
       border: solid green;
    }

    div.myClass, p.myClass, span.myClass{
       background-color: pink;
    }

    #div span.span p{
       color:red;
    }

    之前我们说过,标签是分层的,这里的空格即表示分层,所以上面代码中最后面的样式意为id是div的标签下一层class为span的span标签下一层的p标签

    我们再做一个练习:

    .module-body .brand-mask .enter span

    大家看一下上面css是什么意思?

        答案:id是module-body的下一层id是brand-mask的下一层id是enter的span标签。

  • 相关阅读:
    Chrome developer tool:本人钟爱的 console、Network 功能简谈
    Node.js:实现知乎(www.zhihu.com)模拟登陆,获取用户关注主题
    简谈 JavaScript、Java 中链式方法调用大致实现原理
    jQuery 源码解析二:jQuery.fn.extend=jQuery.extend 方法探究
    jQuery UI 多选下拉框插件:jquery-ui-multiselect
    为什么 JavaScript 中基本数据类型拥有 toString 之类方法?
    谈谈 JavaScript 中的 this 指向问题
    重写和重载的区别
    JAVA的静态方法,静态变量,静态类。
    重载
  • 原文地址:https://www.cnblogs.com/captainmeng/p/8983984.html
Copyright © 2011-2022 走看看