• CSS相关


    互联网前端分为三层

    • HTML:超文本标记语言。从语义的角度描述页面结构
    • CSS:层叠样式表。从审美的角度负责页面样式
    • JS:JavaScript 。从交互的角度描述页面行为

    CSS:Cascading Style Sheet,层叠样式表。CSS的作用就是给HTML页面标签添加各种样式,定义网页的显示效果。简单一句话:CSS将网页内容和显示样式进行分离,提高了显示功能。

    css的引入方式

    行内样式

    <div>
        <p style="color: green">我是一个段落</p>
    </div>

    内接样式

    <style type="text/css">
        /*写我们的css代码*/
            
        span{
        color: yellow;
        }
    
    </style>

    外接样式

    链接式

    <link rel="stylesheet" href="./index.css">

    导入式

    <style type="text/css">
            @import url('./index.css');
    </style> 

    css的选择器

    基本选择器

    标签选择器

    可以选中所有的标签元素,比如div,ul,li ,p等等,不管标签藏的多深,都能选中,选中的是所有的,而不是某一个,所以说 "共性" 而不是 ”特性“

    body{
        color:gray;
        font-size: 12px;
    }
    /*标签选择器*/
        p{
        color: red;
        font-size: 20px;
    }
        span{
        color: yellow;
    }

    id选择器

    #选中id

    • 同一个页面中id不能重复。
    • 任何的标签都可以设置id 
    • id命名规范 要以字母 可以有数字 下划线 - 大小写严格区分 aa和AA是两个不一样的属性值
    #box{
        background:green;
    }
                
    #s1{
        color: red;
    }
    
    #s2{
        font-size: 30px;
    }

    类选择器

    任何的标签都可以加类,但是类是可以重复,属于归类的概念。同一个标签中可以携带多个类,用空格隔开

    一定要有”公共类“的概念

    .lv{
         color: green;
     
     }
     .big{
         font-size: 40px;
     }
     .line{
        text-decoration: underline;
    
      }
    <!-- 公共类    共有的属性 -->
         <div>
             <p class="lv big">段落1</p>
             <p class="lv line">段落2</p>
             <p class="line big">段落3</p>
         </div>

    高级选择器

    后代选择器

    使用空格表示后代选择器。顾名思义,父元素的后代(包括儿子,孙子,重孙子)

    .container p{
        color: red;        
    }
    .container .item p{
        color: yellow;
    }

    子代选择器

    使用>表示子代选择器。比如div>p,仅仅表示的是当前div元素选中的子代(不包含孙子....)元素p

    .container>p{
        color: yellowgreen;
     }

    并集选择器

    多个选择器之间使用逗号隔开。表示选中的页面中的多个标签。一些共性的元素,可以使用并集选择器集选择器

    /*并集选择器*/
    h3,a{
        color: #008000;
        text-decoration: none;
                    
    }

    比如豆瓣的首页使用并集选择器

    body, div, dl, dt, dd, ul, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, blockquote {
        margin: 0;
        padding: 0;
    }

    交集选择器

    使用.表示交集选择器。第一个标签必须是标签选择器,第二个标签必须是类选择器 语法:div.active

    比如有一个<h4 class='active'></h4>这样的标签。

    那么

    h4{
        width: 100px;
        font-size: 14px;
    }
    .active{
        color: red;
        text-decoration: underline;
    }
    /* 交集选择器 */
    h4.active{
        background: #00BFFF;
    }

    它表示两者选中之后元素共有的特性

    属性选择器

    根据标签中的属性,选中当前的标签

    语法:

    /*根据属性查找*/
                /*[for]{
                    color: red;
                }*/
                
                /*找到for属性的等于username的元素 字体颜色设为红色*/
                /*[for='username']{
                    color: yellow;
                }*/
                
                /*以....开头  ^*/ 
                /*[for^='user']{
                    color: #008000;
                }*/
                
                /*以....结尾   $*/
                /*[for$='vvip']{
                    color: red;
                }*/
                
                /*包含某元素的标签*/
                /*[for*="vip"]{
                    color: #00BFFF;
                }*/
                
                /**/
                
                /*指定单词的属性*/
                label[for~='user1']{
                    color: red;
                }
                
                input[type='text']{
                    background: red;
                }
    

    伪类选择器

    一般用在超链接a标签中

    /*没有被访问的a标签的样式*/
            .box ul li.item1 a:link{
                
                color: #666;
            }
            /*访问过后的a标签的样式*/
            .box ul li.item2 a:visited{
                
                color: yellow;
            }
            /*鼠标悬停时a标签的样式*/
            .box ul li.item3 a:hover{
                
                color: green;
            }
            /*鼠标摁住的时候a标签的样式*/
            .box ul li.item4 a:active{
                
                color: yellowgreen;
            }

    伪元素选择器

    /*设置第一个首字母的样式*/
            p:first-letter{
                color: red;
                font-size: 30px;
    
            }
            
    /* 在....之前 添加内容   这个属性使用不是很频繁 了解  使用此伪元素选择器一定要结合content属性*/
            p:before{
                content:'alex';
            }
            
            
    /*在....之后 添加内容,使用非常频繁 通常与咱们后面要讲到布局 有很大的关联(清除浮动)*/
            p:after{
                content:'&';
                color: red;
                font-size: 40px;
            }  

    使用a标签的伪类选择器,我们一定要遵循"爱恨准则"  LoVe HAte

    css的两大特性

    继承性

    面向对象语言都会存在继承的概念,在面向对象语言中,继承的特点:继承了父类的属性和方法。那么我们现在主要研究css,css就是在设置属性的。不会牵扯到方法的层面。

    继承:给父级设置一些属性,子级继承了父级的该属性,这就是我们的css中的继承。

    记住:有一些属性是可以继承下来 : color 、 font-*、 text-*、line-* 。主要是文本级的标签元素

    但是像一些盒子元素属性,定位的元素(浮动,绝对定位,固定定位)不能继承

    层叠性

    权重的标签覆盖掉了权重小的标签,说白了 ,就是被干掉了
    权重: 谁的权重大,浏览器就会显示谁的属性

    谁的权重大? 非常简单就是小学的数数。

    数:id的数量 class的数量 标签的数量,顺序不能乱

    /*1  0  0 */显示红色
    #box{
    
    
        color: red; 
    }
    /*0  1  0*/
    .container{
        color: yellow;
    }
    /*0  0  1*/
    p{
        color: purple;
    }
    /*依次按顺序数,若同位的大,后面的就不用比较了,这个是第一个权重大 */

    权重一样时,以后来设置的属性为准,前提必须权重一样 ,‘后来者居上 ’

    #box2 .wrap3 p{
                color: yellow;
            }
            
            #box1 .wrap2 p{
                color: red;
            }
    
    /* 以后来的属性为准,所以是红色的*/

    若第一条css设置的属性值,是通过继承性设置成的颜色,那么继承来的属性,它的权重为0。它没有资格跟我们下面选中的标签对比

    #box1 #box2 .wrap3{
        color: red;
    }
            
    #box2 .wrap3 p{
        color: green;
    }
    
    /* 继承的红色,权重为0,所以按下面的,它是绿色*/

    权重都是0,那么就是"就近原则" : 谁描述的近,就显示谁的属性。所谓描述的近,就是选中到最内层的距离越近

    总结:

    1. 先看标签元素有没有被选中,如果选中了,就数数 (id,class,标签的数量) 谁的权重大 就显示谁的属性。权重一样大,后来者居上
    2. 如果没有被选中标签元素,权重为0。
    3. 如果属性都是被继承下来的 权重都是0 。权重都是0:"就近原则" : 谁描述的近,就显示谁的属性

    层叠性权重的相同处理

    1. 当权重相同时,以后来设置的属性为准,前提一定要权重相同

    #box2 .wrap3 p{
        color: yellow;
    }
            
    #box1 .wrap2 p{
        color: red;
    }
    /*此时显示的是红色的*/

    2.  第一个选择器没有选中内层标签,那么它是通过继承来设置的属性,那么它的权重为0。第二个选择器选中了内层标签,有权重

    所以 继承来的元素 权重为0。跟选中的元素没有可比性

    #box1 #box2 .wrap3{
        color: red;
    }
    #box2 .wrap3 p{
        color: green;
    }
    /*此时显示的是绿色的*/

    3. 如果都是继承来的属性,谁描述的近,显示谁的属性。'就近原则'

    #box1 #box2 .wrap3{
        color: red;
    }
     .wrap1 #box2{
        color: green;
    }
    
    /*此时显示的是红色*/

    !important 的使用

    • !important:设置权重为无限大 
    • !important 不影响继承来的权重,只影响选中的元素。不要随便使用!important,因为使用它会影响页面的布局
  • 相关阅读:
    HTTP请求 GET POST 网络编程实现(转)
    较老版本 AFNetworking 使用心得
    优秀java开源项目与解决方案推荐与概论
    URL的格式scheme
    用MATLAB实现字符串分割
    matlab search path
    matlab中的字符串数组与函数调用
    全新重装win8.1系统后 配置开发及办公环境步骤
    html图片上下翻滚展示代码
    html目录树的操作
  • 原文地址:https://www.cnblogs.com/--kai/p/9670535.html
Copyright © 2020-2023  润新知