CSS

我怕爱的太早我们不能终老 提交于 2019-12-05 06:46:34

本节笔记整理

CSS笔记整理:

在标签上设置style属性:
background-color: #2459a2;
height: 48px;
...

编写css样式:
1. 标签的style属性
2. 写在head里面 style标签中写样式
(1)- id选择器
      #i1{
        background-color: #2459a2;
        height: 48px;
      }
      
(2)- class选择器 ******
    
      .名称{
        ...
      }
      
      <标签 class='名称'> </标签>

(3)- 标签选择器
        div{
            ...
        }
        
        
        所有div设置上此样式

(4)- 层级选择器(空格) ******
       .c1 .c2 div{
            
       }
(5)- 组合选择器(逗号) ******
        #c1,.c2,div{
            
       }

(6)- 属性选择器 ******
       对选择到的c1标签再通过属性再进行一次筛选
       .c1[n='alex']{ width:100px; height:200px; }
       
PS:
    - 优先级,标签上style优先(行间样式),编写顺序,就近原则(位置上下)

2.5 css样式也可以写在单独文件中
<link rel="stylesheet" href="commons.css" />

3、注释
/*   */

4、边框
 - 宽度,样式solid/dotted,颜色  (border: 4px dotted red;)
 - border-left...

5、  
height,         高度 百分比(在已知高度的div内可以用百分比)
width,          宽度 像素,百分比
text-align:ceter, 水平方向居中
line-height,垂直方向根据标签高度
vertical-align:ceter, 垂直方向居中(用起来比较麻烦)
color、     字体颜色
font-size、 字体大小
font-weight 字体加粗 bold

6、float
让标签浪起来,块级标签也可以堆叠
div:没有设置高度,自己撑不起来,内容多少,会根据内容大小撑起来,独占一行
老子管不住:
【针对父div没有设置高度和浮动,孩子div:float,在最后一个孩子下面添加下面代码,把父div撑起来。】
    <div style="clear: both;"></div>(比较low)

7、display
display: none; -- 让标签消失
display: inline;
display: block;
display: inline-block;
         具有inline,默认 自己有多少占多少
         具有block,可以设置设置高度,宽度,padding  margin
******
行内标签:无法设置(高度,宽度,padding  margin)
块级标签:可以设置高度,宽度,padding  margin

8、内外边距
padding:内边距,增大/缩小自己内部边距
margin:外边距,增大/缩小外部边距

9、当前div居中(有宽度)样式:margin:0, auto
  当遇到positon浮动起来,居中失效

上节作业问题:
    1、css重用
        
        <style>
            如果整个页面的宽度 > 900px时:
            {
                .c{
                   共有 
                }
                .c1{
                    独有
                }
            }
            
            .c2{
                独有
            }
        </style>
        
        <div class='c c1'></div>
        <div class='c c2'></div>
    2、自适应 和 改变大小变形
        页面最外层: => 最外层像素的宽度设置为绝对宽度
        
        自适应:media
        
    3、默认img标签,有一个1px的边框(体现在IE中)
        img{
            border: 0;
        }
    
上节内容回顾
    1、块级和行内
    2、form标签
            <form action='http://sssss' methed='GET' enctype='multi'>
                <div>asdfasdf</div>
                <input type='text' name='q' />
                <input type='text' name='b' />
                # 上传文件
                <input type='file' name='f' />
                <input type='submit' />
            </form>
            GET: http://sssss?q=用户输入的值
                 http://sssss?q=用户输入的值&b=用户输入的内容
                 
            POST:
                请求头
                请求内容
    3、display: block; inline; inline-block; none
    4、float:
        <div>
            <div style='float:left;'>f</div>
            <div style='clear:both;'></div>
        </div>

    5、margin: 0 auto;
    6、padding, ---> 自身发生变化
    7、<dl class='nav'>  # 获取dl:dl.nav
        <dt></dt>       # 获取dt: dl.nav dt
    
CSS补充
    position:
        a. fiexd => 固定在页面的某个位置
        
        b. relative + absolute  ==>相对父标签绝对定位
           relative单独存在无意义,
           absolute单独存在意义不大
        
            <div style='position:relative;'>
                <div style='position:absolute;top:0;left:0;'></div>
            </div>

    opcity: 0.5 透明度
    z-index: 层级顺序   谁大谁在上层 
    position div居中(margin:0 auto失效):
        top:50%,
        left:50%,
        margin-left:-div(width)/2,
        margin-top:-div(height)/2
    overflow: 
        hidden:超过隐藏
        auto:超过出现滚动条
    :hover{} 鼠标滑过的效果
    
    background-image:url('image/4.gif'); # 默认,div大,图片重复访
    background-repeat: repeat-y;

    background-position-x:
    background-position-y:
    或
    background-position:x, y
    
    综上简写格式:background: url("") x y no-repeat;
    background: url("icon_cohui.png") 0 -20px no-repeat;

    示例:输入框右边放置图标

小结:
cursor: pointer 鼠标手形
text-decoration: none 取消a标签下划线
placeholder='' 该提示会在输入字段为空时显示,并会在字段获得焦点时消失(input框),仅支持最新浏览器,老版本浏览器不支持哦
value = '' 默认值  (input)
ul: 块级标签
top: 绝对定位 一般与position同用
html中的属性名或变量名,习惯使用'-'中划线,且后缀名都是首字母大写(连着写)->zxUsonCohui
python是'_'下划线
position:使用后,margin/padding失效;父标签(relative)不会根据子标签(absolute)调整宽高

CSS全套笔记(点击跳转

RGB颜色对照表(点击跳转

推荐模块网站:BootStrap(https://www.bootcss.com/) CSSmoban.com

挺美的404页面:https://x.autoimg.cn/dealer/err/404.html

图标插件:fontawesome.io/icons/  link引用即可(选择4.7.0版本...min.css)

Position:

div居中:

1、div本身是块级标签,独占一行,如果没有设置宽度,使用margin: 0 auto 不生效

2、所以,如果想要div居中,必须给div一个宽度再使用margin: 0 auto(上下边距:0,左右边距:auto)即可

3、position div 居中:

position div居中(margin:0 auto失效):
top:50%,
left:50%,
margin-left:-div(width)/2,
margin-top:-div(height)/2

background的综合实例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .pg-header{
            position: relative;

            border: 1px dotted red;
            width: 300px;
            height: 300px;
            margin: 0 auto;
        }
        .pg-header .zan{
            /*border: 1px solid red;*/
            /*width: 200px;*/
            /*height: 200px;*/

            width: 20px;
            height: 20px;
            position: absolute;
            bottom: 0;
            right: 0;

            /*写法2*/
            background-image: url("icon_18_118.png");
            background-repeat: no-repeat;
            background-position-x: 0;
            background-position-y: -20px;
            /*写法1*/
            /*background: url("icon_18_118.png") 0 -20px no-repeat;*/
        }
    </style>
</head>
<body>
    <div class="pg-header">
        <!--获取每一个小图标-->
        <div class="zan"></div>
    </div>
</body>
</html>

用户登录输入框-low版本:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 
 7     <!--存在的小问题:输入满时,被图片覆盖,在此已解决,input-->
 8     <!--padding-right:输入框向右内部增大30px,这30px是不能输入内容的,虚空间-->
 9     <!--width:向左剪短30px,即可-->
10 
11     <style>
12         .pg-body{
13             border: 1px dotted red;
14             width: 400px;
15             height: 200px;
16             margin: 0 auto;
17         }
18         .pg-body .user{
19             width: 300px;
20             height: 30px;
21             /*border: 1px solid blue; !*测试用*!*/
22             margin: 0 auto; /*没有长宽无法居中*/
23 
24             position: relative;
25         }
26         .pg-body .user .img-user{
27             position: absolute;
28             right: 5px;
29             top: 8px;
30 
31             width: 16px;
32             height: 16px;
33             /*行内标签span没有高度也无法撑起来*/
34             display: inline-block;
35 
36             background-image: url("i_name.jpg");
37             /*background-repeat: no-repeat;*/
38             /*border: 1px solid red;*/
39         }
40     </style>
41 </head>
42 <body>
43     <!--中间div居中-->
44     <div class="pg-body">
45         <!--用户注册登录框-->
46         <div class="user">
47             <input type="text" name="user" style="width: 270px; height: 30px; padding-right: 30px">
48 
49             <!--第二层级放置图标,因为input占据整个地方,无法插入任何内容-->
50             <span class="img-user"></span>
51         </div>
52     </div>
53 </body>
54 </html>
View Code

用户登录输入框-修订:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--存在的小问题:输入满时,被图片覆盖,在此已解决,input-->
    <!--padding-right:输入框向右内部增大30px,这30px是不能输入内容的,虚空间-->
    <!--width:向左剪短30px,即可-->

    <style>
        .pg-body{
            border: 1px dotted red;
            width: 400px;
            height: 200px;
            margin: 0 auto;
        }
        .pg-body .user{
            width: 300px;
            height: 30px;
            /*border: 1px solid blue; !*测试用*!*/
            margin: 0 auto; /*没有长宽无法居中*/

            position: relative;
        }
        .pg-body .user .img-user{
            position: absolute;
            right: 5px;
            top: 8px;

            width: 16px;
            height: 16px;
            /*行内标签span没有高度也无法撑起来*/
            display: inline-block;

            background-image: url("i_name.jpg");
            /*background-repeat: no-repeat;*/
            /*border: 1px solid red;*/
        }
    </style>
</head>
<body>
    <!--中间div居中-->
    <div class="pg-body">
        <!--用户注册登录框-->
        <div class="user">
            <input type="text" name="user" style="width: 270px; height: 30px; padding-right: 30px">

            <!--第二层级放置图标,因为input占据整个地方,无法插入任何内容-->
            <span class="img-user"></span>
        </div>
    </div>
</body>
</html>

鼠标滑过的效果:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .pg-header{
 8             height: 48px;
 9             background-color: #d58512;
10             color: white;
11 
12             position: fixed;
13             top: 0;
14             left: 0; /* 层级自动撑起来 */
15             right: 0;
16         }
17         .w{
18             width: 980px;
19             line-height: 48px; /*也可以写在pg-header*/
20             margin: 0 auto; /* w 居中*/
21         }
22 
23         .pg-header .menu{
24             display: inline-block; /*a:行内标签不能撑大,想撑大(padding/margin),又不想占整行:inline-block*/
25             padding: 0 auto; /*0 auto 0 auto: 上、右、下、左*/
26         }
27         /*鼠标滑过的效果*/
28         .pg-header .menu:hover{/*没有重复的情况下,可以跳过w选择器*/
29             background-color: #ac2925;
30         }
31     </style>
32 </head>
33 <body style="margin: 0 auto;">
34     <div class="pg-header">
35         <div class="w">
36             <a class="logo">LOGO</a>
37             <a class="menu">全部</a>
38             <a class="menu">24区</a>
39             <a class="menu">1024区</a>
40         </div>
41     </div>
42 </body>
43 </html>
View Code

position定位:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .pg-body-common{
            border: 1px dotted red;
        }
        .pg-body{
            width: 500px;
            height: 600px;

            /*div水平居中*/
            margin: 0 auto;
        }
        .pg-body .pg-body-child{
            width: 500px;
            height: 200px;

            /*父级相对定位*/
            position: relative;
        }
        .pg-body .pg-body-child .sign{
            width: 30px;
            height: 30px;
            background-color: black;

            /*子级绝对定位*/
            position: absolute;
        }
        .pg-body .pg-body-child .sign_1{
            /*子级绝对定位位置*/
            right: 0;
            bottom: 0;
        }
        .pg-body .pg-body-child .sign_2{
            /*子级绝对定位位置*/
            left: 0;
            bottom: 0;
        }
        .pg-body .pg-body-child .sign_3{
            /*子级绝对定位位置*/
            right: 0;
            top: 0;
        }
    </style>
</head>
<body>
    <div class="pg-body pg-body-common">
        <div class="pg-body-child pg-body-common">
            <div class="sign sign_1"></div>
        </div>
        <div class="pg-body-child pg-body-common">
            <div class="sign sign_2"></div>
        </div>
        <div class="pg-body-child pg-body-common">
            <div class="sign sign_3"></div>
        </div>
    </div>
</body>
</html>

 

position实现三个层级的堆叠:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*第一层,最底层*/
        .pg-body-1{
            background-color: #d58512;
            height: 6000px;
        }
        .pg-body-2{
            background-color: #ac2925;
            /*遮住整个屏幕*/
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            /*透明度*/
            opacity: 0.5;
            /*层级优先级:次之*/
            z-index: 9;
        }
        .pg-body-3{
            background-color: #ffffff;
            width: 600px;
            height: 200px;

            /*层级优先级:优先, 谁的值大,谁在上面*/
            z-index: 10;

            /*也需要fixed固定层级*/
            position: fixed;

            /*居中优化*/
            /*margin: 0 auto;/*因为position已经让该层浮动起来了,这种div居中方式就会失效*/
            /*有效方式:
                    top,left有绝对值改为百分比-即左上角占屏幕的百分比
                    bottom,right有绝对值改为百分比-即右下角占屏幕的百分比
            */
            bottom: 50%;
            right: 50%;
            /*再设置:根据div长宽相对右下角偏置右、下距离*/
            margin-bottom: -100px;/*下:height/2 = 200/2 = 100 负值*/
            margin-right: -300px;/*右:width/2 = 600/2 = 300 负值*/

            /*拓展,关闭按钮,js再具体学习*/
            /*display: none;!*默认为none,不显示*!*/


            /*指定显示位置*/
            /*top: 40px;*/
            /*left: 100px;*/
        }
    </style>
</head>
<body>
    <!--第一层,最底层-->
    <div class="pg-body-1">
        <input type="text" name="user" />
        <input type="password" name="pwd" />
        <input type="submit" value="提交1" />
    </div>
    <!--第二层-->
    <!--第二层起着遮盖作用,不含任何内容-->
    <div class="pg-body-2"></div>
    <!--第三层-->
    <!--居中优化-->
    <div class="pg-body-3">
        <input type="text" name="user" />
        <input type="password" name="pwd" />
        <input type="submit" value="提交3" />
    </div>
</body>
</html>

position头部固定:

position: fixed;
top: 0;
right: 0;
left: 0;

position定位之返回顶部1:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .back-top{
 8             background: #4cae4c;
 9             color: #ffffff;
10             width: 40px;
11             height: 60px;
12 
13             position: fixed;
14             right: 20px;
15             bottom: 20px;
16         }
17     </style>
18 </head>
19 <body style="margin: 0 auto;">
20     <!--层级分布-->
21     <div onclick="GoTop();" class="back-top">返回顶部</div>
22     <div style="height: 5000px; background-color: #d58512;">内容</div>
23     <script>
24         function GoTop() {
25             //老师的代码过期了,还需要再加下面的一行
26             document.documentElement.scrollTop = 0;
27 
28             document.body.scrollTop = 0;
29         }
30     </script>
31 
32 </body>
33 </html>
View Code

position定位之返回顶部2:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .back-top{
 8             background: #4cae4c;
 9             color: #ffffff;
10             width: 40px;
11             height: 60px;
12 
13             position: fixed;
14             right: 20px;
15             bottom: 20px;
16         }
17     </style>
18 </head>
19 <body style="margin: 0 auto;">
20     <!--层级分布-->
21     <div onclick="GoTop();" class="back-top">返回顶部</div>
22     <div style="height: 5000px; background-color: #d58512;">内容</div>
23     <script>
24         function GoTop() {
25             //老师的代码过期了,还需要再加下面的一行
26             document.documentElement.scrollTop = 0;
27 
28             document.body.scrollTop = 0;
29         }
30     </script>
31 
32 </body>
33 </html>
View Code

后台管理页面布局

p标签默认有边距:margin: 0;

position小结:

fixed:永远固定在窗口的某个位置

relative:单独存在无意义

absolute:第一次定位,可以在指定位置,当滑轮滚动时,就不在了。

通过一个overflow进行两种布局切换

1、左侧菜单跟随滚动条滑动(左右滚动条:min-width)

2、左侧菜单以及上下不动(左右滚动条:min-width)

第一种布局方式:无法实现两种布局之间的切换:fixed + overflow

<!DOCTYPE html>
<html lang="en">

<!--第一种布局方式:无法实现两种布局之间的切换
    fixed + overflow
-->
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            margin: 0;
        }
        .pg-header{
            background-color: #a6e1ec;
            height: 48px;
            line-height: 48px;
        }
        .pg-body{
            /*height: 6000px;*/
            /*background-color: #d5d5d5;*/
            margin-top: 48px;
        }
        .pg-body .Lmenu{
            background-color: #d5d5d5;
            width: 200px;

            /*第一种布局方式*/
            position: fixed;
            left: 0;
            bottom: 0;
            top: 48px;
            overflow: auto;

            /*width: 20%;*/
            /*min-width: 200px;*/
        }
        .pg-body .Rcontent{
            background-color: #E6E6FA;
            /*width: 80%;*/

            position: fixed;
            right: 0;
            top: 48px;
            bottom: 0;
            left: 200px;
            overflow: auto;
        }
        .pg-body .Rcontent .content{
            background-color: #E6E6FA;
        }
        .pg-footer{
        }
    </style>
</head>
<body>
    <div class="pg-header"></div>
    <div  class="pg-body">
        <!--左-->
        <div class="Lmenu"></div>
        <!--右-->
        <div class="Rcontent">
            <div class="content">
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
            </div>
        </div>
    </div>
    <div  class="pg-footer"></div>
</body>
</html>

第二种布局方式:可以实现两种布局之间的切换:absolute + overflow

<!DOCTYPE html>
<html lang="en">

<!--第三种经典布局方式:可以实现两种布局之间的切换
    absolute + overflow
-->
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            margin: 0;
        }
        .pg-header{
            background-color: #a6e1ec;
            height: 48px;
            line-height: 48px;
        }
        .pg-body{
            /*height: 6000px;*/
            /*background-color: #d5d5d5;*/
            margin-top: 48px;
        }
        .pg-body .Lmenu{
            background-color: #d5d5d5;
            width: 200px;

            /*经典布局方式*/
            position: absolute;
            left: 0;
            bottom: 0;
            top: 48px;

            /*去掉overflow就是第二种经典布局方式*/
            overflow: auto;

            /*width: 20%;*/
            /*min-width: 200px;*/
        }
        .pg-body .Rcontent{
            background-color: #E6E6FA;
            /*width: 80%;*/

            position: absolute;
            right: 0;
            top: 48px;
            bottom: 0;
            left: 200px;

             /*去掉overflow就是第二种经典布局方式*/
            overflow: auto;
        }
        .pg-body .Rcontent .content{
            background-color: #E6E6FA;
        }
        .pg-footer{
        }
    </style>
</head>
<body>
    <div class="pg-header"></div>
    <div  class="pg-body">
        <!--左-->
        <div class="Lmenu"></div>
        <!--右-->
        <div class="Rcontent">
            <div class="content">
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
                <p>智汇部落</p>
            </div>
        </div>
    </div>
    <div  class="pg-footer"></div>
</body>
</html>

后台头部布局

头像圆形:border-radius: 50%

多层position,涉及分层,用z-index解决被覆盖的问题

hover的拓展:父亲的下两个儿子长得不一样

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .item{
            background-color: #d5d5d5;
            width: 300px;
        }
        .item:hover {
            color: #31b0d5;
        }

        .item:hover .b{
            color: #ac2925;
        }
        /*不好*/
        /*.b:hover{*/
            /*color: #ac2925;*/
        /*}*/
    </style>
</head>
<body>
    <div class="item">
        <!--鼠标滑过,显示不同颜色-->
        <div class="a">智汇部落</div>
        <div class="b">资源网站</div>
    </div>
</body>
</html>

消息提醒小插件:

.pg-header .icons .msgInt{
            /* 让span标签可以设置宽高 */
            display: inline-block;
            /* 圆形消息内增,一般都是:7px 3px */
            padding: 7px 3px;
            /*背景填充*/
            background-color: red;
            /* 让它占自己的高度,1px通用 */
            line-height: 1px;
            /* border:圆形角 */
            border-radius: 50%;
}

头部布局实例:

<!DOCTYPE html>
<html lang="en">

<!--第三种经典布局方式:
    absolute + overflow
-->
<head>
    <meta charset="UTF-8">
    <title>后台布局设计页面-3-内容开展</title>
    <!--各种图标引用-->
    <!--<link rel="stylesheet" href="images/fontawesome-free-5.10.1-web/css/fontawesome.min.css" />-->
    <link rel="stylesheet" href="images/font-awesome-4.7.0/css/font-awesome.min.css" />
    <style>
        body{
            margin: 0;
        }
        img{
            border: 0;
        }
        a{
            text-decoration: none;
        }

        .left{
            float: left;
        }
        .right{
            float: right;
        }

        .pg-header{
            background-color: #a6e1ec;
            height: 48px;
            line-height: 48px;
        }
        .pg-header .logo{
            width: 200px;
            text-align: center;
        }
        .pg-header .headPic{
            /*border: 1px solid red;*/
            /*width: 200px;*/
            text-align: center;
            margin-right: 50px;

            /*detailInfo*/
            position: relative;
        }

        .pg-header .icons{
            color: #F8F8FF;
            padding: 0 20px;
        }
        .pg-header .icons:hover{
            background-color: #006dcc;
        }
        .pg-header .icons .msgInt{
            /* 让span标签可以设置宽高 */
            display: inline-block;
            /* 圆形消息内增,一般都是:7px 3Px */
            padding: 7px 3px;
            /*背景填充*/
            background-color: red;
            /* 让它占自己的高度,1px通用 */
            line-height: 1px;
            /* 圆形角 */
            border-radius: 50%;
        }

        .pg-header .headPic .Pic{
            display: block; /*a标签下:inline-block效果一样*/
            padding: 0 20px;
        }
        .pg-header .headPic .detailInfo{
            /*默认隐藏*/
            display: none;
            text-align: left;
            /*border: 1px solid red;*/
            background-color: #F8F8FF;
            width: 130px;

            position: absolute;
            top: 48px;
            right: 4px;

            z-index: 20;
        }
        .pg-header .headPic .detailInfo a{
            display: block;
        }
        .pg-header .headPic:hover{
            background-color: #006dcc;
        }

        .pg-header .headPic:hover .detailInfo{
            display: block;
        }
        /*.pg-header .headPic .detailInfo:hover{*/
            /*display: block;*/
        /*}*/

        .pg-header .headPic a img{
            /*img是行内标签*/
            /*我想当鼠标滑过时候,给头像两边宽度加大些*/
            /*display: block; !*img标签下:inline-block效果不太一样,block后,底下有点缝隙*!*/
            /*padding: 0 20px;*/

            width: 40px;
            height: 40px;
            margin-top: 4px;
            /*圆形头像*/
            border-radius: 50%;
        }

        .pg-body{
            margin-top: 48px;
        }
        .pg-body .Lmenu{
            background-color: #d5d5d5;
            width: 200px;
            /*经典布局方式*/
            position: absolute;
            left: 0;
            bottom: 0;
            top: 48px;
            /*去掉overflow就是第二种经典布局方式*/
            overflow: auto;

        }
        .pg-body .Rcontent{
            background-color: #E6E6FA;

            position: absolute;
            right: 0;
            top: 48px;
            bottom: 0;
            left: 200px;

            overflow: auto;

             /*detailInfo*/
            z-index: 9;
        }
        .pg-body .Rcontent .content{
            background-color: #E6E6FA;
        }

        .pg-footer{
        }
    </style>
</head>
<body>
    <div class="pg-header">
        <!--Logo-->
        <div class="logo left">智汇部落</div>
        <!--头像-->
        <div class="headPic right">
            <!--鼠标滑过效果演示-背景变色-->
            <!--不是单独给img标签设置成block-->
            <a class="Pic" href="#">
                <img src="images/headpic.jpg" alt="头像" title="头像" />
            </a>
            <!--鼠标滑过-下拉菜单-->
            <div class="detailInfo">
                <a href="#">我的资料</a>
                <a href="#">我的栏目</a>
                <a href="#">注销</a>
            </div>
        </div>

        <!--小图标提醒-->
        <div class="icons right">
            <i class="fa fa-bell-o" aria-hidden="true"></i>
        </div>
        <div class="icons right">
            <!-- i标签就相当于span标签 -->
            <i class="fa fa-envelope-o" aria-hidden="true"></i>
            <span class="msgInt">6</span>
        </div>
        <!--因为父级已经给了高度48px,子级没有超出父级预设高度48px,看似把父级撑起来了,其实不是撑起来了-->
        <!--可以不用清除浮动-->
    </div>

    <div  class="pg-body">
        <!--左-->
        <div class="Lmenu"></div>
        <!--右-->
        <div class="Rcontent">
            <div class="content"></div>
        </div>
    </div>

    <div  class="pg-footer"></div>
</body>
</html>

自适应响应式页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .main{
            height: 40px;
            background-color: red;
        }

        @media (min-width: 700px) {
            .main2{
                background-color: dodgerblue;
            }
        }
    </style>
</head>
<body style="margin: 0 auto">
    <div class="main main2"></div>
</body>
</html>

登录样式,设置label:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        label{
            width: 80px;
            text-align: right;
            display: inline-block;
        }
    </style>
</head>
<body>
    <form action="index" method="post">
        <p>
            <label for="user">用户名:</label>
            <input id="user" type="text" name="user" />
        </p>
        <p>
            <label for="pwd">密码:</label>
            <input id="pwd" type="text" name="password" />
            <input type="submit" value="登录" />
        </p>
    </form>
</body>
</html>

 后记

1、搜索框input与submit按钮在不同浏览器上显示高度不一致的问题:

解决方法:

1)利用table(不利于SEO)

2)将两者的border设为0,即border:0

2、代码换行,内联元素(内联块元素)之间有间隙,可通过相应的设置解决;

3、内联元素在float以后,变成了行内块元素,但又不同于行内块元素,因为它不会因为代码换行有间隙,但又具有浮动功能。

4、margin-top有塌陷;==》可通过overflow:hidden解决

5、margin上下边距有重合问题(浮动元素和行内块元素均没有这种重合问题);==》可通过overflow:hidden解决;

6、三种清除浮动的方式;==》1)可通过coerflow:hidden解决;2)clear:both;3)clearfix:after...

7、.xx div(2层样式)  .oo (一层样式)如果两者都有共同样式,一层的权重低,不能生效。==> body .oo就可以了(也改成2层);

8、left./top/right/bottom都是针对定位来起作用的,单独使用无效果。

9、相对定位:保留初始位置;

绝对定位:脱离文档流,不保留初始位置。

父级设置相对定位,不设置偏移,可以作为子级绝对定位的参照。如果父级设置绝对定位,margin: 0 auto;==>auto不生效

以上7-9:==>参考demo:相对定位篇

10、line-height:元素高度+padding(上下)

11、单个(不支持多个)块元素(行内块元素)相对父级居中:margin: 0 auto; 单个或多个内联元素(行内块元素)相对父级居中:text-align/line-height;

12、li标签给它宽、高、背景,就会显示出来,是圆点,低版本浏览器显示方块,===>可以使用优雅方式来降级,即可以看就行了,因为低版本浏览器用户量越来越少了。

===>可以使用: border-radius:50%; 

13、ul>li标签做导航,利于SEO优化。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!