• CSS


    什么是 CSS?

    • CSS 指层叠样式表 (Cascading Style Sheets)
    • 样式定义如何显示 HTML 元素
    • 样式通常存储在样式表中
    • 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
    • 外部样式表可以极大提高工作效率
    • 外部样式表通常存储在 CSS 文件中
    • 多个样式定义可层叠为一

    三种方式插入CSS样式:

    官方提供方法:

    • External style sheet
    • Internal style sheet
    • Inline style
    <head>
    <link rel="stylesheet" type="text/css" href="mystyle.css">
    </head>
    /*External style sheet*/
    /*type可以省略*/
    
    <head>
    <style>
    body {
        background-color: linen;
    }
    
    h1 {
        color: maroon;
        margin-left: 40px;
    } 
    </style>
    </head>
    
    /*Internal style sheet*/
    
    <h1 style="color:blue;margin-left:30px;">This is a heading.</h1>
    Try it yourself »
    
    /*Inline style*/
    

      

    CSS选择器

    在标签上设置style属性

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <!--<body>-->
    <div style="background-color: #0f98ce;height: 46px">123</div>  <!--设置样式 background-color,设置背景色,height设置高度,样式间用;号隔开-->
    <div>456</div>
    <div>789</div>
    </body>
    </html>
    

      给多个标签设置属性

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <!--<body>-->
    <div style="background-color: #0f98ce;height: 46px">123</div>  <!--设置样式-->
    <div style="background-color: rebeccapurple;height: 46px">456</div>
    <div style="background-color: chartreuse;height: 46px">789</div>
    </body>
    </html>
    

      我们可以看到代码做了很多复制黏贴的工作,代码的重用性不高,下面就引入选择器。

    1、id选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #i1{                         /* 生成一个id选择器*/
                background-color: orangered;
                height:48px;
            }
        </style>
    </head>
    <!--<body>-->
    <div id = i1>123</div>  <!--通过id选择器选择样式,这里注意,id不能重复-->
    <div style="background-color: rebeccapurple;height: 46px">456</div>
    <div style="background-color: chartreuse;height: 46px">789</div>
    </body>
    </html>
    

      其实这种重用性还是不高,我们还是得对每个样式再写一遍。下面介绍class选择器

    2、class选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #i1{                         /* 生成一个id选择器*/
                background-color: orangered;
                height:48px;
            }
            .c1{                    /*生成一个class选择器,通过.加选择器名称生成*/
                background-color: orange;
                height: 50px;
            }
        </style>
    </head>
    <!--<body>-->
    <div id = i1>123</div>  <!--通过id选择器选择样式,这里注意,通过id选择器id不能重复-->
    <div class="c1">456</div>  <!--通过class选择器选择样式,class可以共用一套选择器样式,使用场景较多-->
    <div class="c1">789</div>
    </body>
    </html>
    

      class选择器就减少了代码重用性,实际使用class选择器也较多

    3、标签选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
    
            div{                 /*标签选择器,所有div标签都生成此样式*/
                background-color: orange;
                height: 50px;
            }
        </style>
    </head>
    <!--<body>-->
    <div >123</div>  
    <span >456</span> 
    <div >789</div>
    </body>
    </html>
    

    4、层级选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
    
            .c1{                    /*生成一个class选择器,通过.加选择器名称生成*/
                background-color: orange;
                height: 50px;
            }
            .c1 div{        /*层级选择器,用空格隔开,表示所有c1 class选择器下的div标签都生成此样式*/
                background-color: black;
                height: 50px;
                color: white;
            }
        </style>
    </head>
    <!--<body>-->
    <div class="c1">123</div>  <!--通过id选择器选择样式,这里注意,通过id选择器id不能重复-->
    <span class="c1">456
        <div>asdd</div>
    </span>  <!--通过class选择器选择样式,class可以共用一套选择器样式,使用场景较多-->
    
    <div class="c1">789</div>
    </body>
    </html>
    

      

    5、组合选择器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #i1,#i2,#i3{                         /* 组合选择器,用逗号隔开,表示id为i1,i2,i3都用上此样式*/
                background-color: orangered;
                height:48px;
            }
    
        </style>
    </head>
    <!--<body>-->
    <div id="i1">123</div>  <!--通过id选择器选择样式,这里注意,通过id选择器id不能重复-->
    <span id="i2">456
        <div>asdd</div>
    </span>  
    
    </body>
    </html>
    

    6、属性选择器

    对选择到的标签再通过属性再进行一次筛选

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
    
            .c1{                    /*生成一个class选择器,通过.加选择器名称生成*/
                background-color: orange;
                height: 50px;
            }
    
            input[n = "a1"]{  /*属性选择器,先筛选除input属性,然后再根据属性进行筛选,可以是type属性,n属性等*/
                height: 50px;
                 100px;
            }
            .c1[n="a2"]{/*属性选择器,可以搭配class选择器*/
                height: 100px;
                 100px;
                background-color: hotpink;
            }
        </style>
    </head>
    <!--<body>-->
    <div id="i1">123</div> 
    <span class="c1" n="a2">456</span>  
    
    <div class="c1">789</div>
    <input type="text" n="a1">
    </body>
    </html>
    

      选择器中引入多个样式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .c1{
                background-color: hotpink;
                height: 50px;
            }
            .c1{
                background-color: purple;
            }
        </style>
    </head>
    <body>
        <div class="c1 c2">  <!--同时引入多个样式,如果有相同样式,在下面的优先级高-->
            aaaaa
        </div>
    </body>
    </html>
    

      现在我们CSS样式都写在HTML文件中,正确的写在CSS文件中,在HTML文件中引用。

    CSS文件commons.css

    1 .c1{
    2     background-color: hotpink;
    3     height: 50px;
    4 }
    5 .c1{
    6     background-color: purple;
    7 }

    HTML文件

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6     <link rel="stylesheet" href="commons.css" /><!--引入css样式-->
     7 </head>
     8 <body>
     9     <div class="c1 c2">  <!--同时引入多个样式,如果有相同样式,在下面的优先级高-->
    10         aaaaa
    11     </div>
    12 </body>
    13 </html>

     CSS style样式

    边框

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style="border:1px solid red">  <!--设置边框,1橡素,实体边框,红色-->
            aaaaa
            <h1></h1>
        </div>
    </body>
    </html>
    

      打开chrome调试可以看到如下界面

     我们知道border会自动给我们添加上下左右边框,可以指定显示边框,如border-left。solid实线边框也可以改为虚线边框(dotted)。

    高度、宽度

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style="
        height:50px;         /*设置高度*/
         50px;         /*设置宽度*/
        border:1px solid red;/*设置边框*/
    
    ">  
            aaaaa
            <h1></h1>
        </div>
    </body>
    </html>
    

      设置高度和宽度还可以用%比的形式,因为高度是无限高的,所以如果对设置高度用百分比的话,要在外面包含一层来定义像素

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
      
    </head>
    <body>
    
        <div style="
        height: 30%;      /*高度是无限高的,我们在下拉的时候滚动条会一直往下拉,*/
         80%;       /*用百分比显示宽度*/
        border:1px solid red;
    
    ">  
            aaaaa
            <h1></h1>
        </div>
    
    </body>
    </html>
    

      关于高度无法使用百分比,我们可以在嵌套一个div用来定义宽度和高度

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style="height: 1000px; 1000px;">    #先在外层定义高度和宽度的像素
            <div style="
            height: 30%;                        #此时我们的%号就依据上面定义的像素百分比来显示
             80%;
            border:1px solid red;
    
        ">  
                aaaaa
                <h1></h1>
            </div>
        </div>
    </body>
    </html>
    

      style中其它常用样式总结

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <!--<link rel="stylesheet" href="commons.css" /><!–引入css样式–>-->
    </head>
    <body>
        <div style="height: 1000px;">
            <div style="
            height: 40px;  /* 设置高度*/
             80%;   /* 设置宽度*/
            border:1px solid red;  /*设置边框,1橡素,实体边框,红色*/
            text-align:center;    /*水平居中,还可以设置left,right*/
            line-height: 40px;    /*垂直居中,px设置成height同样像素*/
    
            color: red;  /* 设置字体颜色*/
            background-color: purple;  /* 设置背景色*/
            font-size: 20px; /* 设置字体大小*/
            font-weight: 300;/*字体加粗*/
        ">  
                aaaaa
                <h1></h1>
            </div>
        </div>
    </body>
    </html>
    

    CSS之float样式

     先来看一个样式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style=" 20%;background-color: red">123</div>
        <div style=" 80%;background-color: purple">456</div>
    </body>
    </html>
    

      因为div是块级标签,通过chrome调试,我们可以看到两个div标签各占一行,如果我们要使两个div标签堆叠起来,那就让两个标签浮动起来,就是接下来要讲的float样式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style=" 20%;background-color: red;float: left">123</div>      /*float=left表示往左漂,也可以设置成right往右漂*/
        <div style=" 80%;background-color: purple;float: right">456</div>
    </body>
    </html>
    

      效果可以看到两个div标签堆叠在一起了

    如果width总和超过100%,则会另起一行

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style=" 20%;background-color: red;float: left">123</div>
        <div style=" 90%;background-color: purple;float: right">456</div>
    </body>
    </html>
    

      

    根据此特性,我们也可以用这个方法工整的排放图片等。

    float的一些应用

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6     <style>
     7         .pg-header{
     8             width: 100%;
     9             background-color:#dddddd;
    10             height: 38px;
    11             line-height: 38px;   /*垂直居中*/
    12         }
    13     </style>
    14 </head>
    15 <body style="margin: 0 auto;"> <!--让两边显示不留空白-->
    16     <div class="pg-header">
    17         <div style="float: left;">免费注册</div>
    18         <div style="float: right;">收藏夹</div>
    19     </div>
    20     <div style=" 300px;border: 1px solid red">
    21         <div style="height: 30px; 90px;border: 1px solid purple;float: left"></div>
    22         <div style="height: 30px; 90px;border: 1px solid purple;float: left"></div>
    23         <div style="height: 30px; 90px;border: 1px solid purple;float: left"></div>
    24         <div style="height: 30px; 90px;border: 1px solid purple;float: left"></div>
    25         <div style="height: 30px; 90px;border: 1px solid purple;float: left"></div>
    26         <div style="height: 30px; 90px;border: 1px solid purple;float: left"></div>
    27         <div style="clear: both;"></div>  <!--这句加上,是为了显示外边框,相当于孩子漂(float)起来了,父亲管不住糊了,需要在最后加一句约束下 -->
    28     </div>
    29 </body>
    30 </html>
    View Code

     

     CSS之display样式

    块级标签与行内标签转换

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style="background-color: red;display: inline" >asd</div>  <!--块级标签变行内标签-->
        <span style="background-color: purple;display: block" >asd</span><!--行内标签变块级标签-->
    </body>
    </html>
    

      这里有个概念要知道,行内标签无法设置高度,宽度,padding和margin。下面说下display另外一个属性inline-block,顾名思义,就是即有inline的属性又有block的属性,此时如果我们对span标签设置inline-block属性,我们就可以对span标签设置高度和宽度了

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style="background-color: red;display: inline" >asd</div>  
        <span style="background-color: purple; 40px;height: 30px;display: inline-block" >asd</span> !--行内标签即有inline属性又有block属性-->
    </body>
    </html>
    

      还有一个display:none属性,让标签消失。这个后面会慢慢讲,先知道这个属性

     

     CSS之padding和margin样式

    padding内边距,margin外边距

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style="border: 1px solid red;height: 70px">
            <div style="background-color: green;height: 50px;padding-top: 20px">123</div>
        </div>
        <br />
        <div style="border: 1px solid red;height: 70px">
            <div style="background-color: green;height: 50px;margin-top: 20px">123</div>
        </div>
    </body>
    </html>
    

      通过chrome调试可以知道,padding内边距,自身发生变化,随着像素的增加而增加

    margin外边距,外边距随着像素的增加而增加

     

    同理边距还都有,left、bottom、right属性.

    CSS之position

    position之属性fix固定在页面某个位置。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style=" 50px;height: 50px;background-color: black;color: white;
        position: fixed;right: 20px;bottom: 20px">  <!--当position属性为fixed,表示固定在界面某个位置,此时不管你放大缩小,都在这个位置,后面可以跟left、right、top、bottom来固定位置-->
            返回顶部
        </div>
        <div style="height: 5000px;background-color: #dddddd">
    
        </div>
    </body>
    </html>  

    此时两个div其实是在两个图层了,并不在一个图层上,即我们正常的两个div应该是块级标签,分段落实现,现在有了position,这两个div就独立占一层了

    如果要实现返回顶部的功能,需要用到js的功能

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div onclick="GoTop()" style=" 50px;height: 50px;background-color: black;color: white;
        position: fixed;right: 20px;bottom: 20px">  <!--当position属性为fixed,表示固定在界面某个位置,此时不管你放大缩小,都在这个位置,后面可以跟left、right、top、bottom来固定位置-->
            返回顶部
        </div>
        <div style="height: 5000px;background-color: #dddddd">
    
        </div>
        <script>
            function GoTop() {
                document.body.scrollTop = 0;
            }
        </script>
    </body>
    </html>
    

      利用fixed把菜单栏固定在首行

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .pg-header{
                height: 50px;
                background: cornflowerblue;
                position: fixed;
                top: 0;
                right: 0;
                left: 0;
            } /* 如果只设置position:fixed,没有设置位置,可以发现头部显示不全*/
            .pg-body{
                background-color: #dddddd;
                height: 5000px;
                margin-top: 55px;
            }/*当设置了position相当于分层了,此时可以发现我们的内容被遮住了,我们需要使用magin-top使整体界面往下移*/
        </style>
    </head>
    <body>
        <div class="pg-header">
            头部
        </div>
        <div class="pg-body">
            内容
        </div>
    </body>
    </html>
    

      position之absolute和relactive

    假设现在有这么一个需求,把小方框分别固定在这个位置

    如果使用fixed属性我们需要知道具体像素,但是界面可能是在不停变化的。我们只能用相对位置和绝对位置来实现这个功能

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style=" 500px;height: 100px;border: 1px solid red;margin: auto;position: relative">
            <div style="height:40px;60px;position: absolute;top: 0;border: 1px solid red;">
    
            </div>
        </div>
        <div style=" 500px;height: 100px;border: 1px solid red;margin: auto;position: relative">
            <div style="height:40px;60px;position: absolute;bottom: 0;right:0;border: 1px solid red;">
    
            </div>
        </div>
        <div style=" 500px;height: 100px;border: 1px solid red;margin: auto;position: relative">
            <div style="height:40px;60px;position: absolute;bottom: 0;left:0;border: 1px solid red;">
    
            </div>
        </div>
    </body>
    </html>
    

      我是这么理解的,里面div标签的绝对位置是相对与外面的标签的

    CSS之用position实现3层界面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style="z-index:10;height: 400px; 400px;background-color: cornflowerblue;position: fixed;">
    
        </div> <!--通过z-index来指定优先级,显示第三层。用百分比和margin来配合显示居中,缩小窗口会变形-->
        <div style="z-index:9;background-color: black;position: fixed;
        right: 0;
        left: 0;
        top: 0;
        bottom: 0;
        opacity: 1"><!--指定opacity,来显示第一层,如果没指定则默认为1,完全覆盖第一层,指定z-index显示哪层优先级,数字越高,优先级越高-->
    
        </div>
        <div style="height: 5000px;background-color: red"></div><!--第一层-->
    </body>
    </html>
    

      CSS之ovflow

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style=" 300px;height: 300px">
            <img src="1111.jpg">
        </div>  <!--当我们在一个div里面插入图片,即使定义了宽度高度,如果图片比定义的宽和高,同杨会把div撑大 -->
    </body>
    </html>
    

      ovflow第一种用法,超过定义宽度高度截取。即只截取定义的宽度和高度的内容

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style=" 300px;height: 300px;overflow: hidden">
            <img src="1111.jpg">
        </div>  <!--当我们在一个div里面插入图片,即使定义了宽度高度,如果图片比定义的宽和高,同杨会把div撑大 -->
    </body>
    </html>
    

      ovflow第二种用法,超过定义宽度高度,显示滚动条。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style=" 300px;height: 300px;overflow: auto">
            <img src="1111.jpg">
        </div>  <!--截取 -->
    </body>
    </html>
    

      CSS之hover

    当鼠标移到到标签下,CSS属性才生效

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .pg-header{
                height: 48px;
                background-color: #2459a2;
                position: fixed;
                left:0;
                top: 0;
                right: 0;
                line-height: 48px;
            }
            .pg-body{
                margin-top: 50px;
            }
            .w{
                 980px;
                margin: 0 auto;
            }
            .pg-header .menu{
                display: inline-block;
                padding: 0 10px;
                color: white;
            }
            /*.menu:hover表示,当鼠标移到该标签上时,以下CSS属性才生效*/
            .pg-header .menu:hover{
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div class="pg-header">
            <div class="w">
                <a class="menu">LOGO</a>
                <a class="menu">全部</a>
                <a class="menu">42区</a>
                <a class="menu">段子</a>
                <a class="menu">1024</a>
            </div>
        </div>
        <div class="pg-body">
            <div class="w">内容</div>
        </div>
    </body>
    </html>
    

      CSS之background补充

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style="background-image: url('1111.jpg');height: 980px;background-repeat: repeat-x">
            
        </div><!--以此种方式插入图片,如果div定义的大小比图片大,则图片会依次堆叠,可以指定background-repeat是横着加还是竖着加-->
    </body>
    </html>
    

     提取图片的一部分

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
        <!--background-image插入图片,需定义高度,不然图片撑不起来,background-repeat:no-repeat表示图片不堆叠-->
        <div style="background-image: url('social.jpg');
        background-repeat:no-repeat;
        height: 200px;
         200px;
        border: 1px solid red;
        background-position-x: -275px;
        background-position-y: -200px;">
        <!-- height和width表示要截取的图片大小,通过background-position-x和y来找到图片,相当于把我们定义的宽度和高度上下左右移到-->
        </div>
    </body>
    </html>
    

      一个例子

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    
        <div style="height: 35px; 400px;position:relative">
            <input type="text" style="height: 35px; 370px;padding-right: 30px">
            <div style="position: absolute;right: 0;top: 10px; 16px;height: 16px;background-color: #2459a2;"></div>
        </div>
    </body>
    </html>
    

      

     

     CSS内容补充之后台管理界面

    在网上找个后台管理界面,大致分为三个部分,顶部菜单,左侧菜单,内部部分

    基本框架1

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .pg-header{
                height: 48px;
                background-color: #2459a2;
                position: fixed;
                top:0;
                left: 0;
                right: 0;
            }
            .pg-content .menu{
                position: fixed;
                top:48px;
                left:0;
                bottom: 0;
                 200px;
                background-color: #dddddd;
            }
            .pg-content .content{
                position: absolute;
                top:48px;
                left: 200px;
                bottom: 0;
                right: 0;
                background-color: red;
                overflow: auto; /*出现滚轮,当内容超过可显示的界面,出现滚轮*/
            }
        </style>
    </head>
    <body>
        <!--头部-->
        <div class = "pg-header"></div>
        <!--中间部分-->
        <div class = "pg-content">
            <!--左侧菜单栏-->
            <div class = "menu">
                aaa
            </div>
            <!--内容-->
            <div class = "content">
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
    
            </div>
        </div>
        <!--尾部-->
        <div class = "pg-footer"></div>
    </body>
    </html>
    

    基本框架之实现左侧及顶部菜单栏不动,内容可以动,优化版

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            body{
                margin: 0 auto;
            }
            .pg-header{
                height: 48px;
                background-color: #399bff;
                /*position: fixed;*/
                /*top:0;*/
                /*left: 0;*/
                /*right: 0;*/
            }
            .pg-content .menu{
                position: absolute;
                top:48px;
                left:0;
                bottom: 0;
                 200px;
                background-color: #3d464d;
            }
            .pg-content .content{
                position: absolute;
                top:48px;
                left: 200px;
                bottom: 0;
                right: 0;
                
                /*background-color: red;*/
                min- 980px;  /*最小宽度,当小于此宽度,出现滚动条*/
                overflow: auto; /*我们只要注释掉或则启用该选项就能实现左侧和内容都动,或则左侧不动右侧动*/
            }
        </style>
    </head>
    <body>
        <!--头部-->
        <div class = "pg-header"></div>
        <!--中间部分-->
        <div class = "pg-content">
            <!--左侧菜单栏-->
            <div class = "menu">
                aaa
            </div>
            <!--内容-->
            <div class = "content">
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
    
            </div>
        </div>
        <!--尾部-->
        <div class = "pg-footer"></div>
    </body>
    </html>
    

      

     实现头部

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            body{
                margin: 0 auto;
            }
            .left{
                float: left;
            }
            .right{
                float: right;
            }
            .pg-header{
                height: 48px;
                background-color: #399bff;
                line-height: 48px;   /*高度居中*/
    
            }
            .pg-header .logo{
                 200px;
                background-color: #2459a2;
                text-align: center;   /*文本居中*/
            }
    
            .pg-header .user{
                 160px;
                background-color: #1c9281;
                height: 48px;
                position: relative
            }
            .pg-header .user .a img{
                40px;
                height: 40px;
                margin-top: 4px;       /*设置头像居中*/
                border-radius: 50%;   /*头像变成圆形*/
            }
            .pg-header .user:hover{
                background-color: #1b6d85;  /*设置鼠标放上去变颜色*/
            }
            .pg-header .user .b{
                 130px;
                position: absolute;  /*该absolute是相对user的位置*/
                top: 48px;
                right:40px;
                background-color: #dddddd;
                z-index: 10;   /*与content涉及到分层,设置优先级*/
                /*display: none;*/
    
            }
            .pg-header .user .b a{
                display: block;
    
            }
            .pg-content .menu{
                position: absolute;
                top:48px;
                left:0;
                bottom: 0;
                 200px;
                background-color: #3d464d;
            }
            .pg-content .content{
                position: absolute;
                top:48px;
                left: 200px;
                bottom: 0;
                right: 0;
    
                /*background-color: red;*/
                min- 980px; /*最小宽度*/
                overflow: auto; /*我们只要注释掉或则启用该选项就能实现左侧和内容都动,或则左侧不动右侧动*/
                z-index: 9;
            }
        </style>
    </head>
    <body>
        <!--头部-->
        <div class = "pg-header">
            <div class = "logo left">个人空间</div>
            <div class = "user right">
                <a class = "a" href="#">
                    <img  src="aaa.jpg">
                </a>
                <div class="b">
                    <a>我的资料</a>
                    <a>注销</a>
                </div>
            </div>
        </div>
        <!--中间部分-->
        <div class = "pg-content">
            <!--左侧菜单栏-->
            <div class = "menu">
                aaa
            </div>
            <!--内容-->
            <div class = "content">
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
    
            </div>
        </div>
        <!--尾部-->
        <div class = "pg-footer"></div>
    </body>
    </html>
    

      

     看一个小实验

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .item:hover{
                background-color: #1b6d85;
            }
            .item:hover .b{
                background-color: red;  /*当我们鼠标移动到item标签下,就为b标签启用此样式*/
            }
        </style>
    </head>
    <body>
        <div class = "item">
            <div class = "a">123</div>
            <div class = "b">456</div>
        </div>
    </body>
    </html>  

     对之前代码做改进,不用js实现菜单下拉

            .pg-header .user:hover .b{
                display: block;          /*当鼠标放到user标签时,展开选项*/
            }
            .pg-header .user .b{
                 130px;
                position: absolute;  /*该absolute是相对user的位置*/
                top: 48px;
                right:40px;
                background-color: #dddddd;
                z-index: 10;   /*与content涉及到分层,设置优先级*/
                display: none; /*隐藏选项*/
    
            }
    
    #其它都不用变
     .pg-header .user:hover .b{
                display: block;          /*当鼠标放到user标签时,展开选项*/
            }
    

      

    找图标样式

    1、图标下载:https://fontawesome.com/

    2、去网站上查找你要的图标

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" href="fontawesome-free-5.0.6/on-server/css/fontawesome-all.min.css"> <!-- 引入css样式-->
        <style>
            .item:hover{
                background-color: #1b6d85;
            }
            .item:hover .b{
                background-color: red;  /*当我们鼠标移动到item标签下,就为b标签启用此样式*/
            }
        </style>
    </head>
    <body>
        <div class = "item">
            <div class = "a ">
                <i class="fab fa-apple"></i>     <!--插入图标-->
            </div>
            <div class = "b">456</div>
        </div>
    </body>
    </html>
    

      完整版

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" href="fontawesome-free-5.0.6/on-server/css/fontawesome-all.min.css">
        <style>
            body{
                margin: 0 auto;
            }
            .left{
                float: left;
            }
            .right{
                float: right;
            }
            .pg-header{
                height: 48px;
                background-color: #399bff;
                line-height: 48px;   /*高度居中*/
    
            }
            .pg-header .logo{
                 200px;
                background-color: #2459a2;
                text-align: center;   /*文本居中*/
            }
    
            .pg-header .user{
                /* 160px;*/
                /*background-color: #1c9281;*/
                height: 48px;
                position: relative;
                margin-right: 20px;
                padding: 0 20px;
            }
            .pg-header .user .a img{
                40px;
                height: 40px;
                margin-top: 4px;       /*设置头像居中*/
                border-radius: 50%;   /*头像变成圆形*/
    
            }
            .pg-header .user:hover{
                background-color: #1b6d85;  /*设置鼠标放上去变颜色*/
            }
            .pg-header .user:hover .b{
                display: block;          /*当鼠标放到user标签时,展开选项*/
            }
            .pg-header .user .b{
                 130px;
                position: absolute;  /*该absolute是相对user的位置*/
                top: 48px;
                right:40px;
                background-color: #dddddd;
                z-index: 10;   /*与content涉及到分层,设置优先级*/
                display: none; /*隐藏选项*/
    
            }
            .pg-header .user .b a{
                display: block;
    
            }
            .pg-header .img_fa{
                padding: 0 20px;
            }
            .pg-header .img_fa .msg_num{
                display: inline-block;  /*变成块级标签*/
                font-size: 12px;  /*字体大小*/
                padding: 8px;
                background-color: red;
                line-height: 1px;  /*外层设置了line-height居中,这里设置为1px,让字体上下占最小宽度,不然会呈开*/
                border-radius: 50%;
            }
            .pg-content .menu{
                position: absolute;
                top:48px;
                left:0;
                bottom: 0;
                 200px;
                background-color: #3d464d;
            }
            .pg-content .content{
                position: absolute;
                top:48px;
                left: 200px;
                bottom: 0;
                right: 0;
    
                /*background-color: red;*/
                min- 980px; /*最小宽度*/
                overflow: auto; /*我们只要注释掉或则启用该选项就能实现左侧和内容都动,或则左侧不动右侧动*/
                z-index: 9;
            }
        </style>
    </head>
    <body>
        <!--头部-->
        <div class = "pg-header">
    
            <div class = "logo left">
                个人空间
            </div>
    
            <div class = "user right">
                <a class = "a" href="#">
                    <img  src="aaa.jpg">
                </a>
                <div class="b">
                    <a>我的资料</a>
                    <a>注销</a>
                </div>
            </div>
    
    
    
            <div class="img_fa right">
                <i class="far fa-comment"></i>
                <span class = "msg_num">3</span>
            </div>
            <div class = "img_fa right">
                <i class="fas fa-bell"></i>
            </div>
    
    
        </div>
        <!--中间部分-->
        <div class = "pg-content">
            <!--左侧菜单栏-->
            <div class = "menu">
                aaa
            </div>
            <!--内容-->
            <div class = "content">
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
                <p>asd</p><p>asd</p><p>asd</p><p>asd</p>
    
            </div>
        </div>
        <!--尾部-->
        <div class = "pg-footer"></div>
    </body>
    </html>
    

      

  • 相关阅读:
    Day10 python基础---函数进阶
    Day9 python基础---函数初识
    Day8 python基础
    Day7 python基础
    Day6 python基础
    Day5 python基础
    Day4 python基础
    Day3 python基础
    TensorFlow学习笔记5-概率与信息论
    TensorFlow学习笔记6-数值计算基础
  • 原文地址:https://www.cnblogs.com/zj-luxj/p/8284624.html
Copyright © 2020-2023  润新知