欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

css基础1

程序员文章站 2022-06-29 08:06:25
今天是2019年6月15日周六,老师给我们讲了css的第一节课:css基础部分,写个随笔留个印记! 一、css的概念 css:cascading style sheet 中午翻译过来就是层叠样式表,它主要是用于定义HTML的内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等 优势: 1、实现了内 ......

今天是2019年6月15日周六,老师给我们讲了css的第一节课:css基础部分,写个随笔留个印记!

一、css的概念

css:cascading style sheet 中午翻译过来就是层叠样式表,它主要是用于定义html的内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等

优势: 1、实现了内容与表现的分离

    2、提高了代码的可维护性

使用场景:能用css取代html属性就要用到css,有些属性无法取代:如input属性的 type ,img属性的alt。

二、css的三种引入方式

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

语法:新增标签的style属性在style属性的值中写css

格式:css属性1:属性值1;css属性2:属性值2;

特点:01,没有实现内容如表现的分离,只针对当前标签有效。

   02,优先级别最高

使用场景:通过js动态给一些元素加样式

<body>
    <div style="width:100px;height:100px;background:red;">
    </div>          
</body>    

2、内部样式表

语法:在头部新增style标签,在style标签的内容中写css。

选择器:规定了页面上哪些元素可以使用定义好的css

格式:选择器 {

    css属性:属性值;

   }

特点:01,没有实现内容与表现的分离

      02,有一定的可重用性和可维护性

使用场景: 没有使用场景

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>内部样式表</title>
        <style>
            div {
                width: 200px;
                height: 200px;
                background: red;
            }
        </style>
    </head>
    <body>
        <div id="box">我是div</div>
    </body>
</html>

3、外部样式表

语法:新建外部以.css结尾的文件,将所有的css代码写在外部的文件中,在需要使用的html中通过link引入。

格式:<link rel="stylesheet" href="css路径"> 

注释:html注释  <!--html注释-->  css注释  /*css注释*/

html部分:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>外部样式表</title>
        <link rel="stylesheet" href="css/common.css">
        <link rel="stylesheet" href="css/style.css">
    </head>
    <body>
        <div class="box"></div>
    </body>
</html>

css部分:

.box {
    width: 299px;
    height: 200px;
    background: pink;
}

三、css样式表的特征

1、继承性:大多数css属性是可以被继承的,例如字体、文本相关样式可以被继承;宽度、高度、边框、背景等等不能继承。由于标签嵌套出现父子关系、祖先后代关系(包括父子关系)也可以被继承。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>继承性</title>
        <style>
            div {
                color: purple;
            }
        </style>
    </head>
    <body>
        <div>
            我是div文本内容
            <p>我是p文本内容</p>
        </div>
    </body>
</html>

2、层叠性:如果代码多处都找到同一个标签,设置了很多样式,在不冲突的情况下,这些样式会层叠为一个,共同作用到标签上。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>层叠性</title>
        <style>
            div {
                width: 400px;
                height: 400px;
                background: pink;
            }
        </style>
    </head>
    <body>
        <div style="width: 300px"></div>
    </body>
</html>

3、优先级别:

               01,浏览器缺省设置:user agent stylesheet (优先级别最低)

               02,内部样式表和外部样式表优先级别一样,采取就近原则,谁在下以谁为准。

               03,内联优先级别最高

               04,!important手动提高优先级别,写在需要提高优先级css属性的后面以空格分割,需谨慎使用。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>important</title>
        <style>
            div {
                width: 400px !important;
                height: 400px;
                background: orange;
            }
        </style>
                <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <div style="width: 800px"></div>
    </body>
</html>

四、css选择器

概念:规定了页面上哪些元素可以使用定义好的样式

1、通配符:通用选择器

语法:* {

      css代码

  }

功能: 匹配页面上所有的元素

注意:要谨慎使用,效率比较低。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>通配符</title>
        <style>
            * {
                color: orange;
            }
        </style>
    </head>
    <body>
        <div>我是div</div>
        <p>我是p段落</p>
        <span>我是span标签</span>
    </body>
</html>

2、标签选择器(元素选择器)

语法:将标签名作为选择器

使用场景:一般用于定义标签的默认样式,或者去除标签默认样式,使用场景很少。在html、css中如html,body,p,h1-h6,ul,li,ol这些元素都带有默认的外边距和内边距。

3、类选择器

语法:.class值 {

      css代码

}

属性:class属性的功能就是将标签分类,注意不是以标签名分类。

class属性的值命名规范:由字母数字下划线分隔符组成,尽量不要使用拼音,英文名应见名知意。注意:当这个类由多个单词组成,中间使用下划线或分隔符隔开。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>类选择器</title>
        <style>
            .zhy {
                width: 300px;
                height: 300px;
                background: pink;
            }
            .zy {
                width: 400px;
                height: 400px;
                background: blue;
            }
            .zjx {
                width: 500px;
                height: 500px;
                background: orange;
            }
        </style>
    </head>
    <body>
        <div class="zhy">我是zhy</div>
        <div class="zy">我是zy</div>
        <div class="zjx">我是zjx</div>
    </body>
</html>

4、分类选择器

语法:将标签选择器和类选择器结合起来使用,从而实现对于一些元素不同属性精确定义。

格式:标签选择器.class值 {

      css代码

}

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>分类选择器</title>
        <style>
            .box {
                width: 200px;
                height: 200px;
                background: orange;
            }
            p.zhy {
                color: red;
            }
        </style>
    </head>
    <body>
        <div class="box">div标签</div>
        <p class="zhy">p标签</p>
    </body>
</html>

 5、多类选择器

定义:class属性可以定义多个值,多个值之间以空格分割。

含义:一个标签具有class属性且值为多个。

使用场景:用于提升选择器的优先级

格式:.属性值1.属性值2.属性值3 {

      css样式

}

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>分类选择器</title>
        <style>
            .box {
                width: 200px;
                height: 200px;
                background: orange;
                margin-top: 10px;
            }
            .zy {
                color: black;
            }
            .zhy {
                color: red;
            }
            .zjx {
                color: purple;
            }
            .box.zjx.zxm {
                font-size: 25px;
            }
        </style>
    </head>
    <body>
        <div class="box zy">div1</div>
        <div class="box zhy">div2</div>
        <div class="box zjx zxm">div3</div>
    </body>
</html>

6、id选择器

定义:给一个标签设置一个id属性,通过选择id属性的值来选择这个标签。

注意:一个id属性只能有一个值,不能和其他标签的id属性重复。id属性是一个标签独一无二的身份证明。

语法:#id值 {

    css代码

}

使用场景:在静态页布局中用于最外层的盒子

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>id选择器</title>
        <style>
            #box {
                width: 200px;
                height: 200px;
                background: orange;
            }
        </style>
    </head>
    <body>
        <div id="box">我是div</div>
    </body>
</html>

7、群组选择器

功能:定义多个选择器的公共样式

语法: 选择器1,选择器2,选择器3...选择器 {

        css样式

}

8、子代选择器:由于标签的嵌套,标签之间会产生两种关系:父子关系和祖先后代(包含父子)的关系。

格式:选择器1>选择器2

注意:选择器1和选择器2之间的关系是父子的关系,最终选中的是选择器2。

9、后代选择器

格式:选择器1 选择器2 

注意:选择器1和选择器2之间的关系是祖先后代关系,最终选中的是选择器2。

备注:祖先后代是包含子代的。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>子后代选择器</title>
        <style>
            #box>div {
                color: red;
            }
            #box div {
                color: blue;
            }
            #box .zhy {
                color: orange;
            }
        </style>
    </head>
    <body>
        <div id="box">
            <div class="zhy">
                子代div标签
                <div>
                    后代div标签
                    <span>我是
                        <a href="#">a标签</a>
                    </span>
                </div>
            </div>
        </div>
    </body>
</html>

10、伪类选择器:正常情况下选择的是元素,伪类选择器选中的是选中的一种状态。

动态伪类:1、hover:匹配元素鼠标移入时的状态

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>hover</title>
        <style>
            #box { 
                width: 200px;
                height: 200px;
                background: orange;
            }
            #box:hover {
                width: 300px;
                height: 300px;
                background: purple;
            }
        </style>
    </head>
    <body>
        <div id="box" class="zhy"></div>
    </body>
</html>

2、focus:获取焦点时的状态,匹配的是表单控件。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>focus</title>
        <style>
            input:focus {
                width: 400px;
            }
        </style>
    </head>
    <body>
        <input type="text">
    </body>
</html>

 3、active:匹配元素激活时的状态,一般用于a标签。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>active</title>
        <style>
            a:active {
                color: green;
            }

            a:link {
                color: red;
            }

            a:visited {
                color: pink;
            }
    </style>
    </head>
    <body>
        <a href="#">我是超链接</a>
    </body>
</html>

链接伪类:1、link:访问前的状态

      2、visited:访问后的状态

未完,待续!