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>
相关推荐
web组态软件2 小时前
BY组态-低代码web可视化组件
前端·低代码
react_in2 小时前
webpack 题目
前端·webpack
MarisolHu2 小时前
前端学习笔记-Vue篇-02
前端·vue.js·笔记·学习
学前端的小朱2 小时前
Webpack的基础配置
前端·webpack·node.js
小小优化师 anny2 小时前
JS +CSS @keyframes fadeInUp 来定义载入动画
javascript·css·css3
小周同学_丶3 小时前
解决el-select数据量过大的3种方法
前端·vue.js·elementui
先知demons3 小时前
uniapp开发微信小程序笔记10-触底加载
前端·笔记·微信小程序·小程序·uni-app
每一天,每一步3 小时前
react antd不在form表单中提交表单数据,而是点查询按钮时才将form表单数据和其他查询条件一起触发一次查询,避免重复触发请求
前端·javascript·react.js
NoneCoder4 小时前
HTML5系列(9)-- Web Components
前端·html·html5
花之亡灵4 小时前
(笔记)vue3引入Element-plus
前端·javascript·vue.js