HTML5系列文章【2】 CSS3概述、语法、各种选择器

最近花了一段时间学习了HTML5相关知识,不得不说,HTML的标签及属性等等实在是太多了,如果不经常练习的话,很难做到信手拈来。我们知道HTML负责显示内容,而CSS则负责样式的定义,上篇博文介绍了HTML的一些基本标签及属性,所以今天主要介绍的是HTML5的另一个非常重要的知识点,也就是今天的主角CSS

1、CSS概述及作用

为html元素去定义样式,能够实现内容 与 表现相分离,提高程序的可重用性和可维护性

2、CSS样式表的使用方式

(1)内联样式(行内样式)

特点

将样式定义在HTML元素中,只能控制某一个元素的显示效果

语法

<标记 style="样式属性1:值1;样式属性2:值2"></标记> 

常用属性

color:文本颜色
background-color:背景颜色
font-size:字体大小,取值 以px为单位,单位必须要写上
例如:style=”font-size:20px”

(2)内部样式表

将所有的样式内容,放在<head></head>中的<style></style>元素内。
<style></style>中添加若干"样式规则"

样式规则语法

选择器{
    样式属性:值;
    样式属性:值;
    .....
    }

选择器

通过标记的名称来表示选择器

这样说估计有些童鞋不太明白,我们就以一个小案例解释下,我们接下来要实现的需求是这样的:我们给div或者p标签设置一些样式,我们就可以这样写:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS</title>
    <style>
        div{
            color: red;
        }

        p{
            color: blue;
        }
    </style>
</head>
<body>

    <div>这是一个div</div>
    <p>这是一个段落标签</p>

</body>
</html>

据说无图无真相。。那就来张效果图

这里写图片描述

特点

1、能够实现 内容与表现相分离
2、提升了样式的可重用性和可维护性
3、只能在一个页面中做通用样式定义

(3)外部样式表
将样式规则 保存在独立的样式文件中,最后再由页面对样式文件进行引用

特点

1、实现 内容与表现相分离
2、将可重用性 和 可维护性 体现的最完美(所有的页面都能用)
3、可以在整个网站乃至于互联网中做通用的样式定义

操作步骤

1、创建一个 样式表文件,纯文本文件,以 .css 结尾
   该文件中,只能包含样式规则

   样式规则语法:

        选择器{
            样式属性:值;
            样式属性:值;
            .....
        }
2、在页面中,对样式表文件进行引用
    在 <head></head>中增加以下代码
    <link rel="stylesheet" type="text/css" href="链接的css文件地址" />

下面我们就来个案例demo来具体解释下外部样式表的使用。
首先我们创建个index.html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS</title>

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

</head>
<body>

    <div>这是一个div标签</div>
    <p>这是一个p标签</p>

</body>
</html>

接下来我们新建一个css.css文件,并在此外部样式表中设置div标签中的内容颜色为红色,p标签中的内容颜色为蓝色。下面给出 .css中的代码

div{
    color: red;
}

p{
    color: #00f;
}

我们的index.html中通过 link 引用了外部样式表,代码看起来是不是清爽多了,哪天如果你想改变所有div标签中的文本颜色,再也不用一个个的修改了。只需要在外部样式表中更改就行了。最终效果如下图
这里写图片描述

3、CSS语法规范

(1)基本语法

样式声明: 属性:值
样式规则: 选择器 和 样式声明

(2)CSS样式表特征

① 继承性

大部分的CSS样式属性,是可以被继承的
子级不用单独定义样式,可以直接继承父级的东西

② 层叠性

为一个元素定义多个样式的时候
样式不冲突时,多个样式表中的样式可以层叠(合并)成一个样式表

③ 优先级

样式冲突时,按照不同样式规则的优先级来应用样式。
优先级:
1、浏览器默认设置(User Agent Style),级别最低
2、内部样式表 或 外部样式表 他们的级别处于中间位置。
注意:就近原则(谁后定义的就用谁,离谁近就用谁)
3、内联样式(行内样式)。 级别最高

④ !important规则

可以通过 !important 显示调整样式优先级,!important优先级最高
语法规范:
样式属性:属性值 !important;
注意:IE低版本中是不支持!important属性的。所以需谨慎使用

注意

调试中样式上画横线表示的含义:1、该样式被覆盖了 2、属性名称或者值写错导致的
Unknown property name:样式属性名称写错了
Invalid property value:样式属性值写错了

4、CSS基础选择器

(1)选择器的作用

规范了页面中的哪些元素能够使用定义好的样式。
例如:
div{
color:red;
}

(2)选择器(这块是重点)

① 通用选择器

作用:匹配页面中所有的元素
语法:*
例如:
*{
color:red;
}
* 表示匹配,在页面上会匹配多次(为每一个元素都要匹配)
与body{}标签的区别
body{
color:red;
}
body{} 在页面上只匹配一次,其余都是继承,效率更高。所以能不使用 * 号,就尽量不使用 * 号

② 元素选择器

又叫标签选择器、标签样式
作用:定义 / 修改特定 标记 的默认样式
语法:标记名称作为选择器
例如:
div{

}
p{

}

③ 类选择器

作用:定义公共样式,可以由其他标记 灵活 引用
语法: .类的名字
使用:通过标签的class属性对 类的名字 进行引用(只是对类的名字进行引用,跟 . 无关,点只是个标识)
注意:
1、类的名字 不能以数字开头(例如:不能以 .123{} )
2、如果一个标记想同时引用多个类的话,中间用 空格 来区分

关于类选择器,我们举个例子加以说明

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS</title>
    <style>

        .d1{
            color: red;
        }

        .p1{
            font-size: 30px;
        } 

    </style>

</head>
<body>

    <div class="d1">这是一个div标签</div>
    <p class="p1">这是一个p标签</p>

    <!-- 一个标记想同时引用多个类的话,中间用 空格 来区分 -->
    <p class="d1 p1">一个标记想同时引用多个类的话,中间用 空格 来区分</p>

</body>
</html>

无图无真相,那就来张效果图
这里写图片描述

④ 类选择器 - 分类选择器

作用:将类选择器 和 元素选择器 结合到一起,从而实现对某一种元素中不同样式的细分控制,其目的就是缩小范围
语法: 元素选择器.类选择器{}
div.d1{

}

⑤ id选择器

作用:匹配页面中指定id值的元素的样式
语法:
    #id的值{
            ...
    }
例子:
    #mea{
        color:red;
    }

    <div id="mea">
        ....
    </div>

⑥ 群组选择器

以 , 逗号隔开的选择器列表
作用:定义一组选择器的公共样式
语法:
    选择器1,选择器2,选择器3,.....{
        ......
    }
例子:
    div,p,span,#mea,.hehe{
        color:red;
    }

⑦ 后代选择器

通过标签的父子级关系,来声明定义样式
语法:
    选择器1(即:父级) 选择器2{}
例子:
    /*所有 div 元素里,所有的p元素*/
    div p{

    }
    /*id为mea的元素里所有的p元素*/
    #mea p{

    }
注意:不强调层级关系

⑧ 子代选择器

要求选择器之间只能存在 父子关系
语法:
    选择器1>选择器2

注意:子代选择器,只向下找一级,多了不管

例子:
    /*匹配id为mea元素的 下一级的 所有div元素*/
    #mea>div{
        ....
    }

    /*匹配 id为mea的元素中 下一级 class为hehe的元素中 下一级的 div元素*/
    #mea>.hehe>div{
        ....
    }

⑨ 伪类选择器

1、作用:匹配元素不同的状态

2、伪类选择器 分类
    1、链接伪类
            :link  匹配尚未访问的超链接(类似默认状态)
            :visited  匹配访问过的超链接(类似按下松开后的效果)
    2、动态伪类
            :hover  匹配鼠标悬停在html元素上的状态
            :active  匹配元素被点击时的状态
            :focus  匹配元素在获取焦点时的状态(在text、password中使用居多)
3、语法:
        :伪类选择器{
            ....
        }
4、例子:
      #div a:hover{
          .....
     }      
注意:
    对于超链接的伪类设置,一般情况下只设置两种选择器即可
        1、该标记的默认样式
        2、鼠标移入到该标记的样式       

对于伪类选择器,我们就以一个简单的例子解释下,需求是这样的,有个超链接,当鼠标放上去时,改变超链接的文本颜色以及文本大小

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS</title>
    <style>

        .d1{
            color: red;
        }

        .p1{
            font-size: 30px;
        } 

        #div a:hover{
            color: red;
            font-size: 30px;
        }

    </style>

</head>
<body>

    <div class="d1">这是一个div标签</div>
    <p class="p1">这是一个p标签</p>

    <!-- 一个标记想同时引用多个类的话,中间用 空格 来区分 -->
    <p class="d1 p1">一个标记想同时引用多个类的话,中间用 空格 来区分</p>

    <div id="div">
        <a href="#">这是一个超链接标签</a>
    </div>

</body>
</html>

效果图,需要两种图对比说明,一张是默认,另一张是当鼠标放上去时(小手形状的鼠标截图时截不了)
这里写图片描述

这里写图片描述

选择器优先级

                                  选择器类型                     权值
                     ——————————————————————————————————————————————————————————————————————
                                    元素选择器                  0,0,0,1     可以看作   1
                                    类选择器                    0,0,1,0     可以看做   10
                                    伪类选择器                  0,0,1,0     可以看做   10
                                    ID选择器                    0,1,0,0     可以看做   100
                                    内联样式                    1,0,0,0     可以看做   1000

值越大的则优先级越高,当权值相同时,则离得最近的优先级高。这里可以看出,内联样式的优先级最高

如果选择器冲突的时候,最终以 权值相加 大的为主

写博客真的是非常累,因为写博客不光是自己能看懂就行,博客就是分享出去让需要的童鞋也能看懂。所以排版以及语言组织都要简明、清晰。并且关于一些难理解的知识点,这里我都给出了示例代码以及效果图,都是亲测过的。

最后,由于篇幅问题,今天就先介绍到这里,关于CSS的内容还是比较多的,后续会继续完善此系列。这也是我在学习时做的一些总结,如果有总结的不到位的地方,欢迎指出。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值