CSS引入方式 + CSS选择器

CSS的引入方式

一、CSS的简单介绍

1、现在的互联网前端分三层:

  HTML:超文本标记语言。从语义的角度描述页面结构。

  CSS:层叠样式表。从审美的角度负责页面样式。

  JS:JavaScript 。从交互的角度描述页面行为

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

2、HTML的缺陷

  (1)不能够适应多种设备

  (2)要求浏览器必须智能化足够庞大

  (3)数据和显示没有分开

  (4)功能不够强大

3、CSS的优点

  (1)使数据和显示分开;

  (2)降低网络流量;

  (3)使整个网站视觉效果一致;

  (4) 使开发效率提高了(耦合性降低,一个人负责写html,一个人负责写css);

  比如说,有一个样式需要在一百个页面上显示,如果是html来实现,那要写一百遍,现在有了css,只要写一遍。现在,html只提供数据和一些控件,完全交给css提供各种各样的样式。

 

二、CSS的引入方式

1、行内样式

<body>
    <!-- 行内样式 的优先级是最高最高的 -->
    <p style="color: red; font-size: 30px;">wusir</p>
    <span style="color: purple;">alex</span>
</body>

2、内接样式

<head>  
  <style type="text/css">
        /*内接样式*/

        /*选择器*/
        span{
            color: green;
            font-size: 30px;
        }
    </style>
</head>

3、外接样式

<head>
    <!-- 外接样式 -->
    <link rel="stylesheet" href="./index.css">
</head>

优先级:

  行内样式优先级最高, 内接样式和外接样式,谁在前面谁的优先级高.

  !import   >   行内    

注意: 

  修改style时, css尽量用类名, js 尽量用 id

CSS选择器

  作用:为选中的标签设置属性

一、基本选择器

1、标签选择器

  选择的是"共性",不管标签嵌套多少层

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

  示例:标签名:{ color:blue;}

 

2、id选择器

  选择是的"特性",id是唯一的,未来与js有很大的关联

   同一个页面中id不能重复,任何的标签都可以设置id,id命名规范,大小写严格区分,aa和AA是两个不一样的属性值。

  示例:#id名{color:blue}

 

3、类选择器

  选择是"共性", 可以设置多个。一个标签也可以设置多个

  所谓类:就是class . class与id非常相似 任何的标签都可以加类,但是类是可以重复,属于归类的概念。

  注意事项:

    (1)类,要有公共类的概念,让更多的标签同时使用

    (2)尽量用class, 除非一些特殊的情况用id, class一般用于CSS,id一般用于js

    (3)一个标签可以设置多个类,中间用空格隔开

  示例:.类名{color:blue;}

 

4、通配符选择器

  选中所有的

  示例:*{color:blue;}

 

二、高级选择器

1、后代选择器     

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

 <style type="text/css">
        .father ul li p{
            color:green;
        }
        div ul li p{
            color:red;
        }
    </style>

2、子代选择器

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

        .father>p{
            color: red;
        }
        .father>ul>li{
            width: 100px;
        }

3、组合选择器

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

body,div,p,a,span{
            padding: 0;
            margin: 0;
        }

   比如像百度首页使用并集选择器。

 body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td {
      margin: 0;
      padding: 0
   }
/*使用此并集选择器选中页面中所有的标签,页面布局的时候会使用*/

4、交集选择器

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

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

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

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

 

三、属性选择器

  属性选择器,字面意思就是根据标签中的属性,选中当前的标签。

  该方法较少用到,   div[class="xxx"]

    <style type="text/css">
            /*根据属性查找*/
            [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;
            }

    </style>

 

四、伪类选择器

伪类选择器一般会用在 超链接 a 标签 中,使用a标签的伪类选择器,我们一定要遵循"爱恨准则"  LoVHAte

  a: link{}         没有被访问过

  a: visited{}     被访问过

  a: hover{}      鼠标悬停时

  a: active{}      点击时

<style type="text/css">
    /*没有被访问的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;
    }
</style>

  伪类标签只能用于超链接,但是  hover  鼠标悬停 可以作用于其他的标签的, 如下:

  hover时,只能设置自己或者子类的变化

<style type="text/css">
        /*鼠标悬停在span标签上时*/
        span:hover{
        color: red;
        font-size: 24px;
        text-decoration: underline;
        }
        /*鼠标悬停在父标签上, 字标签发生变化*/
        .father:hover .child{
            color: red;
            display: block;
        }
</style>

 

  知识补充:

    CSS3中的选择器 --- nth-child()

<style type="text/css">
        /*选中第一个元素*/
        div ul li:first-child{
            font-size: 20px;
            color: red;
        }
        /*选中最后一个元素*/
        div ul li:last-child{
            font-size: 20px;
            color: yellow;
        }

        /*选中当前指定的元素  数值从1开始*/
        div ul li:nth-child(3){
            font-size: 30px;
            color: purple;
        }

        /*n表示选中所有,这里面必须是n, 从0开始的  0的时候表示没有选中*/
        div ul li:nth-child(n){
            font-size: 40px;
            color: red;
        }

        /*偶数*/
        div ul li:nth-child(2n){
            font-size: 50px;
            color: gold;
        }
        /*奇数*/
        div ul li:nth-child(2n-1){
            font-size: 50px;
            color: yellow;
        }
        /*隔几换色  隔行换色
             隔4换色 就是5n+1,隔3换色就是4n+1
            */

        div ul li:nth-child(5n+1){
            font-size: 50px;
            color: red;
        }
</style>

 

五、伪元素选择器

  伪元素要与 content 连用   与后面布局中常用. 

p:before 在...的前面添加内容 一定要结合content
p:after 在...的后面添加内容 与后面的布局有很大关系
<style type="text/css">
        <!---->
        /*设置第一个首字母的样式*/
        p:first-letter{
            color: red;
            font-size: 26px;
        }
        
        
        /*用伪元素 属性一定c结合ontent   伪元素选择器与后面的布局有很大关系*/

/*在p标签之前添加内容 这个属性使用的不是很频繁 了解 使用此伪元素一定要结合Content属性*/
p:before{ content: '$' } /*在p标签之后添加内容 使用非常频繁 通常与布局有很大的关系 (可用于清除浮动)*/ p:after{ content: '.';
       color:blue;
} </style>
posted @ 2018-09-17 11:51  葡萄想柠檬  Views(127)  Comments(0)    收藏  举报
目录代码