第二节 理解CSS| 字节青训营笔记

73 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第1天!#

#什么是CSS?#

  • CSS全称:Cascading Style Sheets
  • 用于定义页面元素的样式
    • 设置字体和颜色
    • 设置位置和大小
    • 添加动画效果

CSS

CSS:页面美化和布局控制

1.概念:CSS(Cascading Style Sheets)层叠样式表。

         层叠:多个样式可以作用在同一个html的元素上,同时生效。

2.好处:功能比较强大,将内容的一个展示和样式控制分离(降低耦合度,让分工写作更容易,提高开发效率)。

CSS的使用

CSS与HTML的结合方式:

1.内联样式:在标签内使用style属性指定css代码(不推荐使用)

2.内部样式:*在head标签内,定义style标签,style标签的标签体内容就是css代码(比较常用)

3.外部样式:先定义css资源文件,然后在head标签内,定义link标签,引入外部的资源文件。

注意:1、2、3种方式,CSS作用范围越来越大。1方式不常用,后期常用2.3.

程序演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS和HTML结合</title>
    <!--
    2.内部样式:
        *在head标签内,定义style标签,style标签的标签体内容就是css代码(比较常用)
            -->
    <style>
        div{
            color:blue;
        }
    </style>
<!--定义好css文件并引入外部资源文件后,下方输出的hello css会变为绿颜色,反正就是成功了我也不知道为啥内部样式抢不过它-->
    <link rel="stylesheet" href="css/a-1.css/">
<!--也可以通过style标签,里面通过@import来导入css文件也可以-->
    <style>
        @import url(css/a-1.css);
    </style>
</head>
<body>
<!--
    1.内联样式:
        *在标签内使用style属性指定css代码(不推荐使用)
            -->
<div style="color:red;">hello css</div>

<!--这一句受到内部样式的div影响,会变成蓝颜色的-->
<div>hello css</div>
<!--因为link标签引入的外部资源,上面这个div包裹的内容会变为green-->

<!--
    3.外部样式:
        1.定义css资源文件
        2.在head标签内,定义link标签,引入外部的资源文件
            -->
</body>
</html>

CSS基本语法

格式:

选择器{

     属性名1:属性值1;

属性名2:属性值2;

…;

}

选择器:筛选具有相似特征的元素。

注意:每一对属性需要使用分号隔开,最后一对属性可以不加分号,加了也没事。

程序演示:

第一步:定义css文件

image.png

第二部代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>选择器</title>
<!--rel属性用于定义链接的文件和HTML文档之间的关系-->
<!--    StyleSheet,的意思就是样式调用-->
    <link rel="stylesheet" href="css\a-2.css">
</head>
<body>
<!--1.定义css文件-->
<div>div</div>
<p>p</p>

</body>
</html>

基础选择器

1.id选择器:选择具体的id属性值的元素。

2.元素选择器:选择具有相同的class属性值的元素。

3.类选择器:选择具有相同的class属性值的元素。

程序演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>基础选择器</title>
<!--2.定义css代码-->
    <style>
        /*#是语法的标识,div1表示选择id为div1的元素*/
        #div1{
            color: red;
        }
        /*元素选择器*/
        div{
            color: green;
        }
        /*类选择器*/
        .cla1{
            color: blue;
        }
    </style>
</head>
<body>
<!--
    1.id选择器:选择具体的id属性值的元素
        *语法:#id属性值{}
            建议:在一个html页面中id值唯一
            -->
<div id="div1">爱意随风去</div>

<!--
    2.元素选择器:选择具有相同标签名称的元素
        *语法:标签名称{}
            注意:id选择器优先级高于元素选择器
            -->
<div>风止意难平</div><!--经运行证明id选择器的优先级比元素选择器的优先级更高-->

<!--
    3.类选择器:选择具有相同的class属性值的元素
        语法:.class属性值{}
            注意:id选择器>类选择器>元素选择器
            -->
<p class="cla1">与其追风去</p>

<!--4.多个标签可以使用同一个class,看看元素选择器和类选择器哪个优先级高-->
<div class="cla1">不如等风来</div><!--很明显类选择器的优先级高于元素选择器-->
<div>----</div>
</body>
</html>

扩展选择器

1、*:表示选择所有元素。

语法:*{ }

2、并级选择器:

语法:选择器1,选择器2{ }

3、子选择器:筛选选择器1下的选择器2元素。

语法:选择器1 选择器2{ }

4、父选择器:筛选选择器2的父元素选择器1。

语法:选择器1>选择器2{ }

5、属性选择器:选择元素名称,属性名=属性值的元素。

语法:元素名称[属性名=”属性值”]

6、伪类选择器:选择一些元素具有的状态。

语法:元素:状态{ }

例如:< a >

     状态:

         link:初始化的状态。

         visited:被访问后的状态。

         active:正在被访问状态。

         hover:鼠标悬浮状态。

程序演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>扩展选择器</title>

    <style>
        /*1.子类选择器:挑选div标签下的p标签*/
        div p{
            color: red;
        }

    /*2.父类选择器:筛选p标签的div标签(选择p标签的父元素div)*/
        div>p{
            /*让div标签有边框,不是让p标签有边框*/
            border: 1px solid;
        }

        /*3.属性选择器:表示选择input标签,并且类型是文本输入框的input标签*/
        input[type='text']{
            /*加一个边框*/
            border: 5px solid;
        }

        /*4.通过伪类选择器控制a标签不同状态下的不同样式*/
        /*4.1未被访问的状态*/
        a:link{
            color:pink;
        }

        /*4.2鼠标悬停效果*/
        a:hover{
            color: green;
        }

        /*4.3正在访问*/
        a:active{
            color: yellow;
        }

        /*4.4被访问后的效果*/
        a:visited{
            color:red;
        }
    </style>
</head>
<body>
<div>
    <p>如果清晰是种罪</p>
</div>
<p>就让爱去蔓延</p>
<!--2.1因为这个div标签没有p标签,所以不会受到负类选择器的影响-->
<div>如果你还没有睡</div>

<input type="text"><br>
<input type="password">

<br>
<a href="https://www.baidu.com" target="_blank">百度一下你就知道</a>

</body>
</html>

CSS属性1

常用属性:

1.    字体、文本(font)

font-size:字体大小。

color:文本颜色。

text-align:对齐方式。

line-height:行的高度。

2.    背景

background:符合属性,设置对象的背景特性。

 

3.    边框、轮廓

border:设置边框,复合属性。

4.    尺寸

width:宽度。

height:高度。 程序演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>字体属性</title>

<style>
    /*1.定义一个元素选择器,选择p标签*/
    p{
        /*颜色*/
        color: red;
        /*字体大小*/
        font-size: 30px;
        /*让字体居中显示*/
        text-align: center;
        /*行高,由于字体大小并不会改变,没有设置边框所有我们看不到这个行高有多高*/
        line-height: 200px;
        /*边框,solid是实线的意思*/
        border: 10px solid black;
    }

    div{
        /*可以看到,div标签我们什么类容都还没写,却有边框*/
        border: 5px solid red;
        /*尺寸*/
        height: 200px;
        width: 200px;

        /*
        给div设置一个背景图片,图片会自动填充
            no-repeat:图片不重复填充.
            center:图片居中显示.
        */
        background: url("img/R-C.webp") no-repeat center;
    }

</style>
</head>
<body>
<p>新年快乐!</p>

<div>一闪一闪亮晶晶</div>
</body>
</html>

盒子模型:控制布局。

属性:

margin:外边距。

padding:内边距;默认情况下内边距会影响整个盒子的大小。

box-sizing: border-box:设置盒子的属性,让width和height就是最终盒子的大小。

float:浮动,可以选择左右浮动(left或right) 程序演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒子模型</title>

<style>
    div{
        border: 5px solid red;

    /*调整div使最下面三个div的方框大小一样*/
        width: 100px;
    }

    .div1{
        width: 100px;
        height: 100px;
        /*通过调整外边距使方框居中展示*/
        /*margin: 45px;*/
    }

    .div2{
        width: 200px;
        height: 200px;
        padding: 40px;
    /*
        设置盒子的属性,让width和height就是最终盒子的大小.
        否则内边距会影响整个盒子的大小.
    */
        box-sizing: border-box;
    }

    /*让div3浮动起来*/
    .div3{
        float: left;
    }

    /*让div4也左浮动一下*/
    .div4{
        float: left;
    }

    /*让div5与3和4在同一行但是在最右侧*/
    .div5{
        float: right;
    }
</style>
</head>
<body>

<div class="div2">
    <div class="div1"></div>
</div>
<div class="div3">111111111111</div>
<div class="div4">222222222222</div>
<div class="div5">333333333333</div>
</body>
</html>