• CSS的介绍以及引入方式/CSS选择器/分组与嵌套/选择器优先级


    CSS的介绍

    CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素

    当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)


    CSS的注释

    /*这是注释*/
    /*
    这是注释
    多行注释
    */

    注释是代码之母


    CSS的三种引入方式

    代码总结:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>三种方式</title>
        <!--<link rel="stylesheet" href="mycss.css">-->
        <!--<style>-->
        <!--    p {-->
        <!--        color: red;-->
        <!--    }-->
        <!--</style>-->
    </head>
    <body>
    <p style="color: black;">你们一定努力啊!</p>
    </body>
    </html>

    行内样式:

    行内式是在标记的style属性中设定CSS样式,不推荐大规模使用

    <p style="color: red">Hello world.</p>

    内部样式:

    嵌入式是将CSS样式集中写在网页的<head> </head>标签对的<style> </style>标签对中

    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            p{
                background-color: #2b99ff;
            }
        </style>
    </head>

    外部样式:

    外部样式就是将css写在一个单独的文件中,然后在页面进行引入即可,推荐使用此方式

    <link href="mystyle.css" rel="stylesheet" type="text/css"/>

    CSS选择器

    基本选择器

    代码总结:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            /*标签选择器:标签名*/
            /*p {*/
            /*    color: red;*/
            /*}*//*类选择器:点+类名*/
            /*.c1 {*/
            /*    color: yellow;*/
            /*}*//*id选择器:#+id值*/
        /*#d1 {*/
        /*    color: green;*/
        /*}*//*通用/全局选择器 */
        /* * {*/
        /*    color: blue;*/
        /* }*/
        </style>
    </head>
    <body>
    <div id="d1">老板好
    <p  class="c1">天下唯我独尊~</p>
    </div>
    <div>老板好</div>
    ​
    <p id="d2">天下唯我独尊~</p>
    <span>尊 尊 尊</span>
    <span  class="c1">尊 尊 尊</span>
    </body>
    </html>

    元素选择器:

    p {color: "red";}

    ID选择器:

    #i1 {
      background-color: red;
    }

    类选择器:

    .c1 {
      font-size: 14px;
    }
    p.c1 {
      color: red;
    }

    注意:

    • 样式类名不要用数字开头(有的浏览器不认)
    • 标签中的class属性如果有多个,要用空格分隔。

    通用选择器:

    * {
      color: white;
    }

    组合选择器

    代码总结:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
        /*    后代选择器*/
        /*    div span {*/
        /*        color: red;*/
        /*    }*//*    儿子选择器*/
        /*    div>span {*/
        /*        color: aqua;*/
        /*    }*//*    毗邻选择器:紧挨着的下面的一个*/
        /*    div+span {*/
        /*        color: orange;*/
        /*    }*//*    弟弟选择器:同级别的下面所有的标签*/
        /*   div~span {
                color: brown;
        /*    }*/
        </style>
    </head>
    <body>
    <span>div上面第一个span</span>
    <span>div上面第二个span</span>
    <div>div
        <span>div里面的第一个span</span>
        <p>div里面的第一个p
            <span>div里面的第一个p里面的span</span>
        </p>
        <span>div里面最后一个span</span>
    </div>
    <span>div下面的第一个span</span>
    <span>div下面的第二个span</span>
    <span>div下面的第三个span</span>
    </body>
    </html>

    后代选择器:

    /*li内部的a标签设置字体颜色*/
    li a {
      color: green;
    }

    儿子选择器:

    /*选择所有父级是 <div> 元素的 <p> 元素*/
    div>p {
      font-family: "Arial Black", arial-black, cursive;
    }

    毗邻选择器:

    /*选择所有紧接着<div>元素之后的<p>元素*/
    div+p {
      margin: 5px;
    }

    弟弟选择器:

    /*i1后面所有的兄弟p标签*/
    #i1~p {
      border: 2px solid royalblue;
    }

    属性选择器

    代码总结:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            /*
            1.具有某个属性名
            2.具有某个属性名及属性值
            3.具有某个属性名及属性值某个标签
            *//*找只要有hobby这个属性名的所有标签*/
            /*[hobby] {*/
            /*    */
            /*    color: orange;*/
            /*}*//*[hobby="jdb"] {*/
            /*    */
            /*}*/
            /*找input 具有属性名是hobby并且值是jdb的input标签*/
            input[hobby="jdb"] {
                background-color: greenyellow;
            }
        </style>
    </head>
    <body>
    <input type="text" name="username" hobby="jdb">
    <input type="text">
    <span hobby="jdb">span</span>
    </body>
    </html>

    常用的属性选择器:

    /*用于选取带有指定属性的元素。*/
    p[title] {
      color: red;
    }
    /*用于选取带有指定属性和值的元素。*/
    p[title="213"] {
      color: green;
    }

    不常用的属性选择器:

    /*找到所有title属性以hello开头的元素*/
    [title^="hello"] {
      color: red;
    }/*找到所有title属性以hello结尾的元素*/
    [title$="hello"] {
      color: yellow;
    }/*找到所有title属性中包含(字符串包含)hello的元素*/
    [title*="hello"] {
      color: red;
    }/*找到所有title属性(有多个值或值以空格分割)中有一个值为hello的元素:*/
    [title~="hello"] {
      color: green;
    }

    分组与嵌套

    代码总结:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
    /*    p {*/
    /*        color: greenyellow;*/
    /*    }*//*    div {*/
    /*        color: greenyellow;*/
    /*    }*//*    span {*/
    /*        color: greenyellow;*/
    /*    }*//*    分组*/
    /*    div,span, p {*/
    /*        color: pink;*/
    /*    }*//*    嵌套 多个不同的选择器 可以组合使用*/
            #d1,.c1,span {
                color: orange;
            }
        </style>
    </head>
    <body>
    <p id="d1">p</p>
    <div class="c1">div</div>
    <span>span</span>
    </body>
    </html>

    分组:

    当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式

    div, p {
      color: red;
    }

    上面的代码为div标签和p标签统一设置字体为红色

    通常,我们会分两行来写,更清晰:

    div,
    p {
      color: red;
    }

    嵌套:

    多种选择器可以混合起来使用,比如: .c1类内部所有p标签设置字体颜色为红色

    .c1 p {
      color: red;
    }

    伪类选择器

    代码总结:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            /*未访问的链接或连接态*/
            a:link {
                color: pink;
            }
            /*鼠标悬浮态*/
            a:hover {
                color: red;
            }
            /*鼠标点击态*/
            a:active {
                color: purple;
            }
            /*访问过后的状态*/
            a:visited {
                color: dimgrey;
            }
        /*    input框被点击的状态 称之为获取焦点*/
            input:focus {
                background-color: orange;
            }
            input:hover {
                background-color: red;
            }
    ​
        </style>
    </head>
    <body>
    <a href="https://www.chouti.com">click me!</a>
    <input type="text">
    </body>
    </html>

    伪元素选择器

    代码总结:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            /*p:first-letter {*/
            /*    font-size: 48px;*/
            /*    color: gold;*/
            /*}*/
    ​
            p:before {
                content: '$';
                color: gold;
            }
            /*after在解决浮动的问题上 很有用*/
            p:after {
                content: "?";
                color: red;
            }
        </style>
    </head>
    <body>
    <p>太黄爆了!</p>
    <p>太黄爆了!</p>
    <p>太黄爆了!</p>
    <p>太黄爆了!</p>
    </body>
    </html>

    first-letter:常用的给首字母设置特殊样式

    p:first-letter {
      font-size: 48px;
      color: red;
    }

    before:

    /*在每个<p>元素之前插入内容*/
    p:before {
      content:"*";
      color:red;
    }

    after:

    /*在每个<p>元素之后插入内容*/
    p:after {
      content:"[?]";
      color:blue;
    }

    注意:before和after多用于清除浮动!!!


    选择器优先级

    代码总结:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" href="mycss.css">
        <style>
            /*
                1.选择器相同的情况下:就近原则
                2.选择器不同的情况下:
    ​
    ​
                行内  > id选择器 > 类选择器  > 标签选择器
            */
            #d1 {
                color: red;
            }
            /*.c1 {*/
            /*    color: orange;*/
            /*}*/
            /*p {*/
            /*    color: greenyellow;*/
            /*}*/
    ​
        </style>
    </head>
    <body>
    <p id="d1" class="c1" style="color: green">快要下课了,我想吃饭了!</p>
    </body>
    </html>

    CSS继承:

    继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的,继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代

    例如一个body定义了的字体颜色值也会应用到段落的文本中

    body {
      color: red;
    }

    此时页面上所有标签都会继承body的字体颜色,然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0

    我们只要给对应的标签设置字体颜色就可覆盖掉它继承的样式

    p {
      color: green;
    }

    此外,继承是CSS重要的一部分,我们甚至不用去考虑它为什么能够这样,但CSS继承也是有限制的,有一些属性不能被继承,如:border, margin, padding, background等

    我们上面学了很多的选择器,也就是说在一个HTML页面中有很多种方式找到一个元素并且为其设置样式,而且浏览器是根据不同选择器的权重来决定的,具体的选择器权重计算方式如下图:

    除此之外还可以通过添加 !important方式来强制让样式生效,但并不推荐使用,因为如果过多的使用!important会使样式文件混乱不易维护,而且不到万不得已时不可以使用!important

  • 相关阅读:
    jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
    jQuery选择器大全
    Jquery插件 easyUI属性汇总
    JQuery EasyUI 对话框的使用方法
    jQuery Alert Dialogs (Alert, Confirm, & Prompt代替方案)
    JavaScript 开发者经常忽略或误用的七个基础知识点
    如何学习Javascript
    父子页面之间跨域通信的方法
    .NET中常见的内存泄露问题——GC、委托事件和弱引用
    启动外部exe程序
  • 原文地址:https://www.cnblogs.com/zhukaijian/p/11461446.html
Copyright © 2020-2023  润新知