zoukankan      html  css  js  c++  java
  • 前端之CSS初识

    前端之CSS初识

    之前我们介绍了HTML,今天我们就开始介绍CSS,我们都知道,CSS的作用就是定义如何显示HTML元素.实际情况是,当浏览器读到一个样式表(也即是CSS)时,浏览器就会按照这个样式表来对文档(也就是HTML)进行格式化(或者说渲染)

    每个CSS样式都是由两个组成部分:选择器和声明.

     
     
     
     
     
     
     
     
    1
    h1   {color:blue;font-size:14px}
    2
    选择器   声明  属性   值   声明       值
     
     

    选择器

    标签选择器

     
     
     
    x
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            div{
    6
                color: #40A070;
    7
            }
    8
        </style>
    9
    </head>
    10
    <body>
    11
    <!--标签选择器,只要是这个标签,都会被选中,无论层级关系-->
    12
    <div>父亲
    13
        <div>儿子</div>
    14
    </div>
    15
    <div>nihao</div>
    16
    17
    <!--标签的嵌套-->
    18
    <div>父亲
    19
        <div>儿子</div>
    20
    </div>
    21
    <!--关于标签嵌套,通常块级元素可以包含内联元素或者某些块级元素,但是内联元素不能包含块级元素,它只能包含其他内联元素-->
    22
    <!--p标签不能包含块级标签,p标签也不能包含p标签,所以下面这种p标签的用法,在实际网页展示的时候网页会自动把里面的内容拿出来-->
    23
    <p>1111
    24
        <p>2222</p>3333
    25
    </p>
    26
    </body>
     
     

    id选择器

     
     
     
    xxxxxxxxxx
    14
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
        /*选择id的话用 # + a 来选择id*/
    6
            #a{
    7
                color: red;
    8
            }
    9
        </style>
    10
    </head>
    11
    <body>
    12
    13
    <div id="a">nihao</div>
    14
    </body>
     
     

    类选择器

     
     
     
    xxxxxxxxxx
    19
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
        /*选择类的话用 . + a 来选择类*/
    6
            .p {
    7
                color: red;
    8
            }
    9
    10
            .a {
    11
                font-size: 40px;
    12
            }
    13
        </style>
    14
    </head>
    15
    <body>
    16
    17
    <div class="p a">nihao</div>
    18
    <div class="a">lalalla</div>
    19
    </body>
     
     

    通用选择器

     
     
     
    xxxxxxxxxx
    17
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
        /*星号就是选择全部,即body里面的所有标签里的内容都会应用这个格式*/
    6
            *{
    7
                color: red;
    8
            }
    9
        </style>
    10
    </head>
    11
    <body>
    12
    13
    <div>111</div>
    14
    <span>222</span>
    15
    <p>333</p>
    16
    17
    </body>
     
     

    后代选择器(重要)

     
     
     
    xxxxxxxxxx
    27
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            /*后代选择器,主要是通过空格来实现后代的选择,通常需要用到id或者class*/
    6
             div .a {
    7
                color: red;
    8
            }
    9
            .c .a{
    10
                color: red;
    11
            }
    12
            div div{
    13
                color: #40A070;
    14
            }
    15
        </style>
    16
    </head>
    17
    <body>
    18
    19
    <!--后代选择器-->
    20
    <div id="b" class="c">000
    21
        <div>111</div>
    22
        <div class="a">222
    23
            <div>333</div>
    24
        </div>
    25
    </div>
    26
    27
    </body>
     
     

    儿子选择器

     
     
     
    xxxxxxxxxx
    22
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            /*儿子选择器,实现方式是通过>,可以实现从最上级往下寻找,要注意一点的是,color这个属性是会自动继承的,最好不要用来实验*/
    6
            .a>div{
    7
                background-color: #3962ff;
    8
                height: 20px;
    9
                width: 100px;
    10
            }
    11
        </style>
    12
    </head>
    13
    <body>
    14
    15
    <!--儿子选择器-->
    16
    <div class="a">1
    17
        <div class="b">2
    18
            <div class="c">3</div>
    19
        </div>
    20
    </div>
    21
    22
    </body>
     
     

    毗邻选择器

     
     
     
    xxxxxxxxxx
    17
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            /*毗邻选择器,实现方式是通过+,注意,只有加号,并没有减号,而且只支持向下相邻选择,不能向上选择*/
    6
            div + p {
    7
                color: #40A070;
    8
            }
    9
        </style>
    10
    </head>
    11
    <body>
    12
    <!--毗邻选择器-->
    13
    <p>444</p>
    14
    <div>111</div>
    15
    <p>222</p>
    16
    <p>333</p>
    17
    </body>
     
     

    兄弟选择器

     
     
     
    xxxxxxxxxx
    23
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            /*兄弟选择器,实现方式是通过~,也就是可以通过兄弟选择器找到同一级别的所有标签,所以叫兄弟选择器*/
    6
            span~.a{
    7
                color: red;
    8
            }
    9
        </style>
    10
    </head>
    11
    <body>
    12
    13
    <!--兄弟选择器-->
    14
    <div>
    15
        <span>span</span>
    16
        <h1 class="a">h1</h1>
    17
        <h2 class="a">h2</h2>
    18
        <p>p</p>
    19
        <h4 class="a">h4</h4>
    20
    </div>
    21
    <p class="a">p1</p>
    22
    23
    </body>
     
     

    属性选择器

     
     
     
    xxxxxxxxxx
    21
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            /*属性选择器,通过中括号里面写入要选择的属性,类似于字典的key值,依次来选择数据*/
    6
            div[name]{
    7
                color: red;
    8
            }
    9
            div[name="123"]{
    10
                color: red;
    11
            }
    12
        </style>
    13
    </head>
    14
    <body>
    15
        
    16
    <!--属性选择器-->
    17
    <div name = "123">div</div>
    18
    <div name = "456">我是div</div>
    19
    <div>没有属性的div</div>
    20
    21
    </body>
     
     

    组合选择器(重要)

     
     
     
    xxxxxxxxxx
    27
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            /*组合选择器,用逗号来同时赋予格式,经常用于和其他选择器联用,日后常用,需牢记*/
    6
            div, p {
    7
                color: red
    8
            }
    9
            div .b .a, p {
    10
                color: red
    11
            }
    12
        </style>
    13
    </head>
    14
    <body>
    15
    16
    <!--组合选择器-->
    17
    <div>div
    18
        <div class="b">345
    19
            <div class="a">123</div>
    20
        </div>
    21
        <div class="a">
    22
            678
    23
        </div>
    24
    </div>
    25
    <p>p</p>
    26
    27
    </body>
     
     

    CSS属性相关

    文字属性

     
     
     
    xxxxxxxxxx
    1
    66
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            /*text-align文字对齐的方式
    6
            left 左对齐
    7
            right 右对齐
    8
            center 居中对齐
    9
            justify 两端对齐
    10
            */
    11
            /*div {*/
    12
            /*     100px;*/
    13
            /*    background-color: yellow;*/
    14
            /*    text-align: center;*/
    15
            /*}*/
    16
    17
            /*文字的装饰,特殊效果 text-decoration
    18
            none 默认
    19
            underline 文本下划线
    20
            overline 文本上划线
    21
            line-through 穿过文本的线
    22
            */
    23
            div {
    24
                width: 100px;
    25
                background-color: pink;
    26
                /*text-decoration: underline;*/
    27
                /*text-decoration: overline;*/
    28
                text-decoration: line-through;
    29
            }
    30
    31
            /*可以手动清除a标签的下划线*/
    32
            a {
    33
                text-decoration: none;
    34
            }
    35
    36
            /*把无序列表前面的点符号去掉*/
    37
            li {
    38
                list-style: none;
    39
            }
    40
    41
            /*缩进,p和div可以,span不可以缩进,因为span是行级标签,所以很多格式都不能适用,但span的字符间距(letter-spacing 像素) 可以调整*/
    42
            /*p, span, div {*/
    43
            /*    !*缩进*!*/
    44
            /*    text-indent: 32px;*/
    45
            /*    !*字间距*!*/
    46
            /*    letter-spacing: 10px;*/
    47
            /*}*/
    48
    49
            /*控制行高,仅针对块级标签,行级无效*/
    50
            div {
    51
                width: 400px;
    52
                height: 200px;
    53
                background-color: yellow;
    54
                text-align: center;
    55
                line-height: 200px;
    56
            }
    57
    58
    59
        </style>
    60
    </head>
    61
    <body>
    62
    63
    <div>你好呀</div>
    64
    <a href="">alalala</a>
    65
    66
    <ul>
    67
        <li>123</li>
    68
        <li>456</li>
    69
        <li>789</li>
    70
    </ul>
    71
    72
    <p>hello world</p>
    73
    <span>hello world</span>
    74
    <div>hello world</div>
    75
    76
    </body>
     
     

    背景属性

     
     
     
    xxxxxxxxxx
    1
    34
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            /*背景图片,全填充
    6
            background-color 设置背景的颜色
    7
            background-image 设置背景为图片
    8
            background-repeat 背景图片的重复方式
    9
            repeat 铺满整个网页
    10
            repeat-x 水平方向平铺
    11
            repeat-y 垂直方向平铺
    12
            no-repeat 不平铺
    13
            */
    14
            /*div {*/
    15
            /*    height: 100px;*/
    16
            /*    background-color: green;*/
    17
            /*    background-image: url("");*/
    18
            /*    */
    19
            /*    !*不要平铺*!*/
    20
            /*    !*这样设置背景的话不会影响文字的显示*!*/
    21
            /*    background-repeat: no-repeat;*/
    22
            /*    */
    23
            /*    !*水平,垂直方向平铺*!*/
    24
            /*    !*background-repeat: repeat-x;*!*/
    25
            /*    !*background-repeat: repeat-y;*!*/
    26
            /*}*/
    27
    28
            div {
    29
                height: 100px;
    30
                width: 100px;
    31
                background-image: url("");
    32
                /*两个参数,第一个是左位置,第二个是右位置,通常用来取网页上移动的小图标*/
    33
                background-position: 200px, 200px;
    34
            }
    35
    36
        </style>
    37
    </head>
    38
    <body>
    39
    40
    <div>lalala</div>
    41
    42
    </body>
     
     

    边框属性

     
     
     
    x
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            div {
    6
                /*控制边框的属性
    7
                border: 颜色 线条实虚 线条粗细
    8
                border-top
    9
                border-left
    10
                border-bottom
    11
                border-right
    12
                border-radius 将其设置为50%可以得到一个圆形
    13
                */
    14
                height: 100px;
    15
                width: 100px;
    16
                /*颜色 虚线/实线 线条粗细*/
    17
                /*
    18
                solid 实线边框  
    19
                dootted 点状虚线边框  
    20
                dashed 矩形虚线边框
    21
                */
    22
                border: green solid 10px;
    23
    24
                /*可以为单个边设置格式*/
    25
                /*border-top: green solid 10px;*/
    26
    27
                border-radius: 20%;
    28
            }
    29
        </style>
    30
    </head>
    31
    <body>
    32
    33
    <div></div>
    34
    35
    </body>
     
     

    display属性

     
     
     
    x
     
     
     
     
    1
    <head>
    2
        <meta charset="UTF-8">
    3
        <title>Title</title>
    4
        <style>
    5
            /*div {*/
    6
            /*    !*要把标签内内容隐藏设置成none*!*/
    7
            /*    !*display: none;*!*/
    8
    9
            /*    !*把块级标签转换成行内标签,即内容可以同行*!*/
    10
            /*    display: inline;*/
    11
            /*}*/
    12
    13
            /*span {*/
    14
            /*    !*把行级标签转换成块级标签,然后就可以设置宽和高*!*/
    15
            /*    display: block;*/
    16
            /*    height: 200px;*/
    17
            /*     349px;*/
    18
            /*    background-color: orange;*/
    19
            /*}*/
    20
    21
            .a {
    22
                width: 400px;
    23
                height: 300px;
    24
                background-color: green;
    25
                /*visibility: hidden这种隐藏方式和none不同,即便隐藏还会占据原位置,而none不会,none是完全隐藏,不会占据位置*/
    26
                visibility: hidden;
    27
            }
    28
    29
            .b {
    30
                width: 400px;
    31
                height: 300px;
    32
                background-color: red;
    33
                /*display: none;*/
    34
            }
    35
            .a,.b{
    36
                /*同时具有行和块的属性,inline-block*/
    37
                display: inline-block;
    38
            }
    39
    40
        </style>
    41
    </head>
    42
    <body>
    43
    44
    <div class="a">123</div>
    45
    <span>456</span>
    46
    <div class="b">789</div>
    47
    48
    </body>
     
     

    CSS盒子模型

     
     
     
    xxxxxxxxxx
    1
    59
     
     
     
     
    1
    /*盒子模型主要运行的两个属性是margin和padding*/
    2
    <head>
    3
        <meta charset="UTF-8">
    4
        <title>Title</title>
    5
        <style>
    6
            /*开头输入这个可以清除原有的所有盒子模型的格式*/
    7
            * {
    8
                margin: 0;*/
    9
                padding: 0;*/
    10
            }
    11
            /*.a {*/
    12
            /*    height: 400px;*/
    13
            /*     400px;*/
    14
            /*    border: black 1px solid;*/
    15
            /*    !*margin-bottom: 20px;*!*/
    16
            /*    !*margin-left: 40px;*!*/
    17
            /*    !*margin的参数顺序,如果是四个参数,方向分别是 上-右-下-左*!*/
    18
            /*    !*如果是两个参数分别是,上-下,左-右*!*/
    19
            /*    !*如果是一个参数,就是四边的*!*/
    20
            /*    margin: 20px 30px 40px 50px;*/
    21
            /*}*/
    22
            /*!*相邻的margin会取最大值,并不会叠加*!*/
    23
            /*.b {*/
    24
            /*     300px;*/
    25
            /*    height: 400px;*/
    26
            /*    border: red 1px solid;*/
    27
            /*    !*margin-top: 35px;*!*/
    28
            /*}*/
    29
            /*.c {*/
    30
            /*     20px;*/
    31
            /*    height: 20px;*/
    32
            /*    background-color: orange;*/
    33
            /*    margin: 0 auto;*/
    34
            /*}*/
    35
    36
    37
            /*属性padding*/
    38
            /*div {*/
    39
            /*     400px;*/
    40
            /*    height: 400px;*/
    41
            /*    border: orange solid 2px;*/
    42
            /*    !*padding-left: 30px;*!*/
    43
            /*    !*padding-top: 300px;*!*/
    44
            /*    !*顺序和margin相同,上-右-下-左*!*/
    45
            /*    padding: 0 0 0 0;*/
    46
            }
    47
        </style>
    48
    </head>
    49
    <body>
    50
    <!--margin-->
    51
    <div class="a">11111
    52
        <div class="c">33</div>
    53
    </div>
    54
    55
    <div class="b">22222</div>
    56
    57
    58
    <!--padding-->
    59
    <div>111</div>
    60
    61
    62
    </body>
     
     

    浮动

     
     
     
    xxxxxxxxxx
    1
    58
     
     
     
     
    1
    /*浮动本身很简单,就是把元素浮动在页面的最左或者最右边(float right/left),但是浮动会产生一些问题,就是如果对父标签的子标签赋予浮动的属性,而父标签长度不够的情况下,很可能父标签会出现塌陷的情况,
    2
    常见解决方法有三种,如下*/
    3
    <head>
    4
        <meta charset="UTF-8">
    5
        <title>Title</title>
    6
        <style>
    7
            .a, .b, .c {
    8
                width: 250px;
    9
                height: 250px;
    10
            }
    11
            .a {
    12
                background-color: red;
    13
                float: left;
    14
            }
    15
            .b {
    16
                background-color: black;
    17
                float: right;
    18
            }
    19
            .c {
    20
                background-color: orange;
    21
                float: right;
    22
            }
    23
            .p {
    24
                /*边框包裹浮动标签有可能会溢出,清除浮动*/
    25
                /*解决方法:
    26
                1. 通过给父级标签设定高度
    27
                2. 伪元素清除法,通过在最后定义一个clear,然后style clear:both可以清除浮动
    28
                3. overflow:hidden
    29
                */
    30
                border: gold solid 2px;
    31
                /*height: 300px;*/
    32
            }
    33
            /*.clear{*/
    34
            /*    clear: both;*/
    35
            /*}*/
    36
            .clearfix:after {
    37
                content: "";
    38
                display: block;
    39
                clear: both;
    40
            }
    41
        </style>
    42
    </head>
    43
    <body>
    44
    <div class="p">
    45
        <div class="a">111</div>
    46
        <div class="b">222</div>
    47
        <div class="c">333</div>
    48
        <div class="clear"></div>
    49
    </div>
    50
    </body>
     
     

    overflow

     
     
     
    xxxxxxxxxx
    1
    30
     
     
     
     
    1
    /*overflow的值如下:
    2
    visible 默认值
    3
    hidden 超出边框的内容会被隐藏,不可见
    4
    scroll 超出边框的内容会被隐藏,但是可以通过进度条滚动查看其余内容
    5
    */
    6
    <head>
    7
        <meta charset="UTF-8">
    8
        <title>Title</title>
    9
        <style>
    10
            div {
    11
                width: 200px;
    12
                height: 200px;
    13
                border: gold solid 2px;
    14
    15
                /*scroll是滚动条查看图片,hidden会隐藏超出范围的图片*/
    16
                /*overflow: scroll;*/
    17
                /*overflow: hidden;*/
    18
    19
                border-radius: 50%;
    20
            }
    21
            img{
    22
                /*实际图片多于这个宽度的会压缩*/
    23
                max-width: 200px;
    24
                /*实际图片少于这个高度的会拉长*/
    25
                min-height: 200px;
    26
            }
    27
        </style>
    28
    </head>
    29
    <body>
    30
    31
    <div>
    32
        <img src="" alt="">
    33
    </div>
    34
    35
    </body>
     
     

    定位position

     
     
     
    x
     
     
     
     
    1
    /*position的定位可选值如下:
    2
    relative 相对定位
    3
    absolute 绝对定位
    4
    fixed 固定定位
    5
    */
    6
    <head>
    7
        <meta charset="UTF-8">
    8
        <title>Title</title>
    9
        <style>
    10
            * {
    11
                margin: 0;
    12
            }
    13
    14
            /*div {*/
    15
            /*     200px;*/
    16
            /*    height: 200px;*/
    17
            /*    background-color: gold;*/
    18
            /*    !*相对定位*!*/
    19
            /*    position: relative;*/
    20
            /*    !*距离上边之前的位置*!*/
    21
            /*    top: 20px;*/
    22
            /*    !*距离左边之前的位置*!*/
    23
            /*    left: 20px;*/
    24
            /*}*/
    25
    26
            .a {
    27
                width: 400px;
    28
                height: 400px;
    29
                background-color: gold;
    30
                /*父级标签,相对定位*/
    31
                position: relative;
    32
                float: right;
    33
            }
    34
            .b {
    35
                width: 200px;
    36
                height: 200px;
    37
                background-color: red;
    38
                /*子标签,绝对定位,会跟着父级标签一起移动*/
    39
                position: absolute;
    40
                top: 40px;
    41
            }
    42
            .c{
    43
                width: 400px;
    44
                height: 400px;
    45
                background-color: black;
    46
                /*固定定位*/
    47
                position: fixed;
    48
                bottom: 10px;
    49
                right: 10px;
    50
            }
    51
        </style>
    52
    </head>
    53
    <body>
    54
    55
    <!--相对定位-->
    56
    <!--<div></div>-->
    57
    <!--绝对定位-->
    58
    59
    <div class="a">
    60
        <div class="b"></div>
    61
    </div>
    62
    <div class="c">固定定位</div>
    63
    </body>
     
     

    z-index,opacity和模态框

     
     
     
    xxxxxxxxxx
    1
    36
     
     
    1
    /*z-index本身是对象的层叠顺序,默认为0,即大于这个值就可以优先生效,优先显示,且只有定位了的元素,或者说标签,才能有z-index
    2
    opacity 透明度,范围是0~1, 0是全透明,1是全完全不透明*/
    3
    4
    <head>
    5
        <meta charset="UTF-8">
    6
        <title>Title</title>
    7
        <style>
    8
            .a {
    9
                position: fixed;
    10
                /*透明度,0-1,0是全透明,1是全实,会把背景和字体都变透明*/
    11
                /*opacity: 0.5;*/
    12
                top: 0;
    13
                bottom: 0;
    14
                left: 0;
    15
                right: 0;
     
     
    16
                /*只会让背景透明*/
    17
                background-color: rgba(255, 192, 203,0.4);
    18
                /*z-index默认是0,如果设置成比0大的数,就会在0前面显示*/
    19
                z-index: 200;
    20
            }
    21
    22
            .b {
    23
                position: fixed;
    24
                width: 200px;
    25
                height: 200px;
    26
                background-color: white;
    27
                z-index: 201;
    28
                top: 50%;
    29
                left: 50%;
    30
                margin: -100px 0 0 -100px;
    31
            }
    32
        </style>
    33
    </head>
    34
    <body>
    35
    36
    <div class="a">111</div>
    37
    <div class="b">222</div>
    38
    39
    </body>
     
     
  • 相关阅读:
    负载均衡器部署方式和工作原理
    Android 有关于* daemon not running.starting it now on port 5037 *ADB
    微信开发常用文档及参考资料
    XML解析之sax解析案例(二)使用sax解析把 xml文档封装成对象
    XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
    XML解析之SAX解析过程代码详解
    通过PHP current()函数获取未知字符键名数组第一个元素的值
    PHP检测链接是否是SSL连接 ,也就是判断HTTPS
    PHP反射ReflectionClass、ReflectionMethod 入门教程
    PHP 反射API说明
  • 原文地址:https://www.cnblogs.com/Xu-PR/p/11655473.html
Copyright © 2011-2022 走看看