CSS进阶

知识点一 盒子模型

知识点二 Reset CSS

知识点三 CSS 浮动

知识点四 CSS 定位

知识点一 盒子模型

盒子模型的组成

盒子模型贴图

html 复制代码
#border

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*
        border:width style color;复合样式
        border-width
        border-style solid实线 dashed虚线 dotted点线 double双边框
        border-color
        一个值    代表4个方向都一样 上右下左  (顺时针)
        两个值    上下 右左
        三个值    上右左 下
        四个值    都不一样

        border-width 边框大小
        border-right-width 右边框大小
        border-bottom-width 下边框大小
        border-top-width 上边框大小

        border-style 边框样式
        border-top-style 顶部边框类型
        border-right-style 右边边类型
        border-bottom-style 底部边框类型
        border-1eft-style 左边边框类型

        border-color 边框颜色
        border-top-c0l0r 顶部边框颜色
        border-right-color 右边边框频色
        border-bottom 底部边框颜色
        border-left-co1or 左边边框颜色

        复合样式
        border-top:
        border-right:
        */

        div{
            width: 300px;
            height: 300px;
            background-color:purple;
            border-style: solid;
            border-width: 1px 5px 10px 15px ;
            border-top-color: red;
            border-right-color: black;
        }
    </style>
</head>
<body>
    <div>

    </div>
</body>
</html>
html 复制代码
#padding

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
          width: 300px;
          height: 300px;
          background-color: red;
          padding: 10px 20px 30px 40px;
        }
        /*
        padding内边距,边框与类客之间的距离  会撑大盒子
        一个值的时候:代表四个方向值一样 上右下左(顺时针)
        二个值   上下 右左
        三个值   上 右左 下
        四个值   都不一样
         */
    </style>
</head>
<body>
    <div>
      捡起
    </div>
</body>
</html>
html 复制代码
#margin

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      /*
      margin 外边距 元素与其他元素的距离(边框以外的距离)
      一值    代表4个方向值一样顺时针2个值
      margin:auto;快速左右居中
      垂直方向:  margin-bottom,margin-top 取两者之间的较大值
      水平方向:  margin-left ,margin-right 取两者之和
      overflow :hidden;解决内边距重叠问题 超出隐藏 border
      */
      div{
        width: 200px;
        height: 200px;
        background: blue;
        margin-right: auto;
      }
      .box{
        width: 300px;
        height: 300px;
        background: red;
      }
    </style>
</head>
<body>
    <div>
    </div>
    <div class="box">

    </div>
</body>
</html>
-----------------------------------------------------------------------------------------
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
          width: 300px;
          height: 300px;
          background: red;
          overflow: hidden;
        }
        .box div{
          width: 100px;
          height: 100px;
          background: blue;
          margin: 100px;
        }
    </style>
</head>
<body>
    <div class="box">
      <div></div>
    </div>
</body>
</html>
html 复制代码
#总结盒子模型

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
          width: 300px;
          height: 300px;
          background: red;
          overflow: hidden;
        }
        .box div{
          width: 100px;
          height: 100px;
          background: blue;
          margin: 100px;
        }
    </style>
</head>
<body>
    <div class="box">
      <div></div>
    </div>
</body>
</html>
html 复制代码
#注意点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .pad{
            width: 200px;
            height: 200px;
            background: chartreuse;
            padding-left: 100px;
            }
        .mar{
            width: 200px;
            height: 200px;
            background: blue;
            border: 1px solid red;
            }
        .mar>div{
            height: 100px;
            width: 100px;
          background: yellow;
          margin-left: 100px;
          margin-top: 200px;
          /*会一起跑出去包括父类 maigin 定位:maigin-top:父元素设置边框*/
        }

  </style>
</head>
<body>
    <div class="pad"></div>
    <div class="mar"><div></div></div>
</body>
</html>

盒子模型外边距存在问题

盒子模型内边距存在问题

盒子模型内外边距总结

知识点二 RESET CSS

RESETCSS

知识点三 CSS浮动

浮动

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        .wrap{
            width: 100px;
            height: 100px;
            background: red;
            float: left;
        }
        .box{
            width: 200px;
            height: 200px;
            background: blue;
            float: left;
        }

    </style>
</head>
<body>
    <div class="wrap"></div>
    <div class="box"></div>
</body>
</html>

<!--
将窗体自上而下分成一行一行,
并在每行中按从左至右依次排放元素,称为文档流,也称为普通流

这个应该不难理解,HTML中全部元素都是盒模型,
盒模型占用一定的空间,依次排放在HTML中,形成了文档流。
------------------------------------------------------
元素脱离文档流之后,将不再在文档流中占据空间,
而是处于浮动状态(可以理解为漂浮在文档流的上方)
脱离文档流的元素的定位基于正常的文档流,
当一个元素脱离文档流后,
依然在文档流中的其他元素将忽略该元素并填补其原先的空间、

脱离文档流,
也就是将元素从普通的布局排版中拿走,
其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位、
-->

高度塌陷

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        ul{
            border: 1px solid red;
            /*height: 50px;*/
            /*overflow: hidden;*/
                 }
        li{
            list-style: none;
            width: 50px;
            height: 50px;
            background: skyblue;
            line-height: 50px;
            text-align: center;
            margin: 2px 5px;
            float: left;
        }
        .clearfix:after{
            content: "";
            display: block;
            clear: both;
        }
/*visibility: hidden; <--可见度设为隐藏。注意它和display: none;是有区别的*/
    </style>
</head>
<body>
<ul class="clearfix">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
</ul>
</body>
</html>

visibility

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      h1.box1{
          visibility: visible;
      }
      h1.box2{
        visibility: hidden;
      }
      h1.box3{
        display: block;
      }
    </style>
</head>
<body>
    <h1 class="box1">这是可见标签</h1>
    <h1 class="box2">这是不可见标签</h1>
    <h1 class="box3">这是后面的标签</h1>
</body>
</html>

知识点四 CSS 定位

定位

相对定位和绝对定位

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      *{
        padding: 0;
        margin: 0;
      }
      /* position 定位
      static静态定位(没有定位),默认
      relative 相对定位,相对于正常位置(原来没有定位之前的位置)进行定位,还要占据位置
      abso1ute 绝对定位,没有占据位置,使元素完全脱离文档流
               没有定位父级,则相对于整个文档发生偏移参考最近非static定位的父级进行定位
      fixed    固定定定位,相对于浏览器窗口进行定位

      给父级相对定位  子级绝对定位
      方向词
           left,right.top,bottom
           margin-left
      z-index g
       */
      .box{
        width: 300px;
        height: 300px;
        background: red;
        /*position: relative;*/
        /*top:50px;*/
        /*left:50px;*/
      }
      .wrap{
        width: 100px;
        height: 100px;
        background: chartreuse;
        position: absolute;
        top: 50px;
        left: 100px;
      }
    </style>
</head>
<body>
    <div class="wrap"></div>
    <div class="box"></div>
</body>
</html>

固定定位

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
      *{
        padding: 0;
        margin: 0;
      }
      div{
        width: 300px;
        height: 300px;
      }
      .box{
        background: blue;
        position: fixed;
        bottom: 0;
        right: 0;
      }
    </style>
</head>
<body style="height: 3000px">
    <div class="wrap"></div>
    <div class="box"></div>
</body>
</html>

权重

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    *{
      padding: 0;
      margin: 0;
    }
    li{
      list-style: none;
      width: 50px;
      height: 50px;
      position: absolute;
    }
    .box1{
      background: red;
      z-index: 1;
    }
    .box2{
      background: royalblue;
      z-index: 11;
    }
    .box3{
      background: rosybrown;
    }
    .box4{
      background: aqua;
    }
    .box5{
      background: fuchsia;
    }
  </style>
</head>
<body>
<ul>
  <li class="box1"></li>
  <li class="box2"></li>
  <li class="box3"></li>
  <li class="box4"></li>
  <li class="box5"></li>
</ul>
</body>
</html>
相关推荐
前端爆冲5 分钟前
项目中无用export的检测方案
前端
热爱编程的小曾33 分钟前
sqli-labs靶场 less 8
前端·数据库·less
gongzemin44 分钟前
React 和 Vue3 在事件传递的区别
前端·vue.js·react.js
Apifox1 小时前
如何在 Apifox 中通过 Runner 运行包含云端数据库连接配置的测试场景
前端·后端·ci/cd
-代号95271 小时前
【JavaScript】十四、轮播图
javascript·css·css3
树上有只程序猿1 小时前
后端思维之高并发处理方案
前端
庸俗今天不摸鱼2 小时前
【万字总结】前端全方位性能优化指南(十)——自适应优化系统、遗传算法调参、Service Worker智能降级方案
前端·性能优化·webassembly
黄毛火烧雪下2 小时前
React Context API 用于在组件树中共享全局状态
前端·javascript·react.js
Apifox2 小时前
如何在 Apifox 中通过 CLI 运行包含云端数据库连接配置的测试场景
前端·后端·程序员
一张假钞2 小时前
Firefox默认在新标签页打开收藏栏链接
前端·firefox