01.CSS引用方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css引用方式</title>
    <!--3.引入外部样式文件-->
    <!--Emmet语法写法:link:css-->
    <link rel="stylesheet" href="css/style.css" />
    <!--2.内部样式表-->
    <style type="text/css">
        @import "css/test.css";
        p{
            background-color: #eeeeee;
            font-size: 18px;
            font-style: italic;
        }
    </style>
</head>
<body>
    <!--1.行间样式(嵌入式样式)-->
    <div style="color:olive;width:100px;border:1px solid blue;">行间样式测试1</div>
    <div>行间样式测试2</div>

    <p>段落1</p>
    <p>段落2</p>

    <span>外部样式测试</span>
    <span>外部样式测试</span>
    <span>外部样式测试</span>
    <span>外部样式测试</span>

    <div class="box">导入外部样式</div>
    <div class="box">导入外部样式</div>
    <div class="box">导入外部样式</div>

    <em class="box">同学们好!</em>
</body>
</html>

02.CSS选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS选择器</title>
    <style>
        /* 1.*  li:first-child选取li首个元素-------------li:nth-child(2)选择第二个 */
/* * {
            color:red;
        }*/
        /* 2.标签选择器   */
        span{
            display: block;
            margin-right: 20px;
            border: 1px solid gray;
        }
        /* 3.类选择器   */
        .wrapper {
            color: aqua;
        }

        /* 4.id选择器*/
        #content {
            color: pink;
        }

        /* 5.派出选择器  */
        .box2 li {
            color: chartreuse;
        }
    </style>
</head>
<body>
    <p>这是P标签</p>
    <strong>这是strong标签</strong>

    <span>这是span标签</span>
    <div>这是div标签</div>

    <div class="wrapper">这是div标签</div>
    <p class="wrapper">这是div标签</p>

    <p id="content">这是内容</p>

    <ul class="box1">
        <li>li001</li>
        <li>li002</li>
        <li>li003</li>
    </ul>

    <ul class="box2">
        <li>li001</li>
        <li>li002</li>
        <li>li003
            <ul>
                <li>subli1</li>
                <li>subli2</li>
            </ul>
        </li>
    </ul>
</body>
</html>

03.选择器的分组和样式继承

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>选择器的分组及样式继承</title>
    <style type="text/css">
        /* 1. 选择器的分组*/
        h1, .box, p {
            color: red;
        }
        p {
            width: 100px;
            background-color: #999999;
            color: blue;
        }

        /* 2.样式继承*/
        .test {
            font-size: 28px;
        }
        /*.test span{
            font-weight: bold;
        }*/
        .test span{
            font-weight: bold;
            font-size: 12px;/*改写父元素传过来的样式*/
        }
    </style>
</head>
<body>
    <h1>h1</h1>
    <div class="box">box</div>
    <p>p</p>

    <div class="test">这是一段测试<span>内容</span>。</div>
</body>
</html>

04.样式权重

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>样式权重</title>
    <style>
        p {
            color: blue!important;
        }

        #content div.main_content h2{ /*权重:100+1+10+1=112*/
            color:red;
        }
        #content .main_content h2{/*权重:100+10+1=111*/
            color:blue;
        }
    </style>
</head>
<body>
    <p style="color:red;">这是内容1</p>
    <p>这是内容2</p>

    <div id="content">
        <div class="main_content">
            52
            <h2>这是一个h2标题</h2>
        </div>
    </div>
</body>
</html>

05.CSS字体

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS字体</title>
    <style>
        p{
            font-size: 18px;
            font-family: 微软雅黑;
            /*font-style: italic;*/
            line-height: 2em;
            /*text-align: right;*/
            /*text-indent: 30px;*/
            text-indent: 2em;
        }
        p span {
            font-weight: 200;
            /*color: red;*/
            /*color: rgb(255,0,0);*/
           /* color: #ff0000;*/
            /*color: #f00;*/
            color: #ff1299; /*color:#f129;不能这样简写*/
        }
        em {
            text-decoration: line-through;
        }

        div{
            /*text-transform: capitalize;*/
            text-transform: uppercase;
        }

        .news {
            /*font:italic small-caps bolder 18px/1.5 宋体;*/
            font: 18px 宋体;
        }
    </style>
</head>
<body>
    <p><span>央视网消息</span>:全国妇联、国家卫生健康委、中央军委政治工作部联合下发《关
        于评选表彰新冠肺炎疫情防控一线女医务人员(集体)全国三八红旗手(集体)的
        通知》。同时,<em>全国妇联</em>还下发《关于评选表彰新冠肺炎疫情防控工
        作中作出突出贡献的先进女性(集体)全国三八红旗手(集体)的通知》。</p>
    <div>How are you?</div>

    <p class="news">How are you?全国妇联、国家卫生健康委、中央军委政治工作部联合下发《关
        于评选表彰新冠肺炎疫情防控一线女医务人员(集体)全国三八红旗手(集体)的
        通知》。同时,<em>全国妇联</em>还下发《关于评选表彰新冠肺炎疫情防控工
        作中作出突出贡献的先进女性(集体)全国三八红旗手(集体)的通知》。</p>
</body>
</html>

06.CSS背景

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS背景</title>
    <style>
        body {
            /*background-color: #eee;
            background-color: transparent;*/
            /*background-image: url(./images/bg.jpg);
            background-repeat: no-repeat;
            !*background-position: 100px 50px;*!
            background-position: top;!*如果只带一个参数,默认y向为50%*!
            background-attachment: fixed;*/
            height: 2000px;
            background: #888888 url(images/bg.jpg) repeat-x fixed 0 30%;
        }
    </style>
</head>
<body>

</body>
</html>

07.伪类选择器》a:hover 必须在 CSS 定义中的 a:link 和 a:visited 之后,才能生效!a:active 必须在 CSS 定义中的 a:hover 之后才能生效!伪类名称对大小写不敏感。

/* 未访问的链接 */
a:link {
  color: #FF0000;
}

/* 已访问的链接 */
a:visited {
  color: #00FF00;
}

/* 鼠标悬停链接 */
a:hover {
  color: #FF00FF;
}

/* 已选择的链接 */
a:active {
  color: #0000FF;
}

 

08.CSS属性选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS属性选择器</title>
    <style>
        div.content[title]{
            font-weight: bold;
        }
        input[name=usr]{
            background-color: #eee;
        }
        /*div[class~=box1]{
            background-color: #5aff29;
        }*/
        /*div[class^=content2]{
            background-color: #5aff29;
            color: #fff;
        }*/
        div[class$=box2]{
            background-color: #5aff29;
            color: #fff;
        }
    </style>
</head>
<body>
    <div class="content1 box1 box2" title="内容">content1</div>
    <div class="content2 box2">content2</div>

    <form action="">
        <input type="text" name="account">
        <input type="text" name="usr">
    </form>
</body>
</html>

09.关系选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>关系选择器</title>
    <style>
        /*后代选择器*/
        h1 strong{
            color:#fff;
            background-color: #000;
        }
        /*儿子选择器*/
       /* h1>strong{
            color:#fff;
            background-color: #000;
        }*/

        /*兄弟选择器*/
        ul li+li+li{
            list-style-type: none;
            color: red;
        }
    </style>
</head>
<body>
    <h1><strong>关系1</strong><span><strong>关系2</strong></span></h1>

    <ul>
        <li>li1</li>
        <li>li2</li>
        <li>li3</li>
        <li>li4</li>
        <li>li5</li>
    </ul>
</body>
</html>

10.伪元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>伪元素</title>
    <style>
        p:first-letter{
            font: 60px 黑体;
            color: #2c3cff;
            text-indent: 2em;
        }
        p:first-line{
            text-decoration: underline;
        }

        p:before{
            content: '★';
        }

        p::after{
            content: '……';
        }
    </style>
</head>
<body>
    <p>伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过:before来在一个元素前增加一些文本,
        并为这些文本添加样式。虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。</p>
</body>
</html>

总结:

1.CSS:层叠样式表,用来美化网页的。做到结构(HTML)和表现(CSS)分离。
2.基本语法:
    选择器 {
        属性: 属性值;
    }
3.CSS引用方式:行间样式、内部样式、外部样式、导入外部样式。
    行间样式:直接在标签上书写样式。
    内部样式:在文件的内部书写样式。
        <style type="text/css">
            样式内容
        </style>
    外部样式:(1)先创建一个CSS文件;(2)再用link标签引入这个文件。
    导入外部样式:(1)先创建一个CSS文件;(2)在style标签中用import导入这个样式文件。

    以上四种CSS引用方式的区别:
        行间样式只作用于当前标签;而内部样式作用于当前文件;外部样式可以被多个HTML文件引用。
        在实际项目开发中,最好使用外部样式。
        外部样式分为link引入和import引入两种方式。这两种方式区别:
            1)link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。
            2)link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。
            3)link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
            4)link支持使用Javascript控制DOM去改变样式;而@import不支持。
4.CSS选择器分类:
    1)*:匹配html中所有元素(注意:*的性能差,因为它要匹配所有元素,所以在开发时,不建议使用)
    2)标签选择器:用来匹配对应的标签
    3)类选择器:用来选择class命名的标签
    4)ID选择器:用来选择用id命名的标签
    5)派出选择器:根据上下文来确定选择的标签
    6)伪类选择器
    7)伪元素选择器
5.选择器的分组
    让多个选择器(元素)具有相同的样式,一般用于设置公共样式。
6.选择器的继承
    子元素可以继承父元素的样式,反之不可以。
7.样式权重
    !important(10000)>内联样式(1000)>id选择器(100)>类、伪类和伪元素选择器(10)>标签选择器(1)

8.CSS字体
    1)font-size:字号(px/%)
    2)font-family:字体
    3)font-style:文字样式(normal/italic/oblique)
    4)font-weight:文字加粗(normal/bold/bolder/lighter/100-900)
    5)line-height:行高(px/数字/em等)
    6)color:文字的颜色(颜色的单词/rgb()->r:0-255,g:0-255,b-0-255/16进制(以#开头,后跟6位(#rrggbb)或3位(#rgb)16进制数)
    7)text-decoration:文字修饰(none/underline/overline/line-through)
    8)text-align:文本对齐方式(left/right/center)
    9)text-transform:字母大小写(capitalize/uppercase/lowercase/none)
    10)text-indent:文本缩进(px/em/%/pt等)

    Tip:
        font复合属性:
            font:font-style font-variant font-weight font-size/line-height font-family;
            注意:
                1)属性值的位置顺序
                2)除了font-size和font-family之外,其它任何一个属性值都可以省略
                3)font-variant:normal/small-caps(让大写字母变得小一些)
9.CSS背景
    1)background-color:背景色(transparent/color)
    2)background-image:背景图(none/url)
    3)background-repeat:背景图像铺排方式(repeat/no-repeat/repeat-x/repeat-y)
    4)background-position:设置对象的背景图像位置({x-number | top | center | bottom } {y-number | left | center | right })
    5)background-attachment:背景图像滚动位置(scroll/fixed)
    6)background:设置背景的复合写法
        background: color image repeat attachment position
10.CSS伪类选择器
    伪类:专门用来表示元素的一种特殊状态。
    常用伪类选择器:
        1)a标签的伪类:
            :link/:visited/:hover/:active
        2):focus 获得焦点
        3):first-child/:last-child/:nth-child(number)
11.属性选择器
    [属性名]:包含有指定属性名的元素(常用)
    [属性名=值]:属性名的值为指定值的元素(常用)
    [属性名~=值]:属性名的值包含指定值的元素
    [属性名^=值]:属性名的值以指定值的开头的元素
    [属性名$=值]:属性名的值以指定值的结尾的元素
12.关系选择器
    1)空格:后代选择器
    2)>:只选择儿子元素
    3)+:兄弟选择
13.CSS伪元素
    1)CSS伪元素与伪类区别:
        css引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分。

        伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。
        它只有处于dom树无法描述的状态下才能为元素添加样式,所以将其称为伪类。

        伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过:before来在一个元素前增加一些文本,
        并为这些文本添加样式。虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。

    2)伪元素&伪类的特点:
        伪元素和伪类都不会出现在源文档或者文档树中
        伪类允许出现在选择器的任何位置,而一个伪元素只能跟在选择器的最后一个简单选择器后面
        伪元素名和伪类名都是大小写不敏感的
        有些伪类是互斥的,而其它的可以同时用在一个元素上。(在规则冲突的情况下,常规层叠顺序决定结果)

    3):before/:after/:first-letter/:first-line : 前面可以是1个冒号也可以是双冒号
        ::selection/::placeholder/::backdrop : 前面只能是双冒号

 

li:first-child