2021-07-28

CSS

盒子模型

圆角边框

<style>
    /*border-radius: 50px 40px 30px 20px;左上 右上 右下 左下
      border-radius: 50px 20px;  左上 右下50px 右上 左下20px
      border-radius: 100px; 上下左右都是这一个值

      width: 100px ;
      height: 100px;
      border-radius:  > 50px; 大于50的情况图形为圆
    */
    div{
      width: 100px ;
      height: 100px;
      border: 10px solid red;
      border-radius: 58px ;
    }
  </style>

盒子阴影

<style>
    div{
      width: 100px ;
      height: 100px;
      border: 10px solid red;
      box-shadow: 10px 10px 2px #3cbda6;
    }
  </style>

浮动

标准文档流

块级元素:独占一行

h1 ~ h6  p  div  列表...

行内元素:不独占一行

span  a  img  strong....

行内元素,可以被包含在块级元素中,反之,则不可以

display

  • 这是实现行类元素排列的一种方式,但是我们很多情况都是用float
<style>
    /*display: inline-block :变成即是块元素,又是行内元素(保持块元素的特性,又可以写在一行)
        block :块元素
        inline :行内元素
        none:消失
        float: right; 靠右浮动
    */
    div{

      border: 10px solid red;
    }
    div[id]{
        width: 400px;
      height: 100px;
      border: 1px solid red;
      display:inline-block;
      float: right;
    }
    span{
      width: 100px;
      height: 100px;
      border: 1px solid red;
      /*display: inline-block;*/
    }

float

  • 左右浮动 float
    • float: right; 靠右浮动

​ 效果:

在这里插入图片描述

相较于底层的div,其他的元素都靠右浮动

父级边框塌陷的问题

clear

/*
    clear: right; 右侧不允许有浮动元素
    clear: left; 左侧不允许有浮动元素
    clear: both; 两侧不允许有浮动元素
    clear: none; 
    */

解决

  1. 增加父级元素的高度
div{
        height: 200px;/*让父级元素的高度大于所有子元素的高度*/
      border: 10px solid red;
    }
  1. 增加一个空的div标签,清除浮动
  2. overflow
div{
      border: 10px solid red;
        overflow: hidden;/*在父级元素中增加一个overflow: hidden;*/
    }
  1. 在父类添加一个伪类 after
div:after{
        content: '';
        display: block;
        clear: both;
    }

小结:

  1. 浮动元素后面增加空div

    方式很简单,但代码中尽量避免空div

  2. 设置父元素的高度

    简单,但元素假设有了固定的高度,就会被限制

  3. overflow

    简单,下拉的一些场景避免使用

  4. 父类添加一个伪类:after(推荐)

    多加一些代码而已,没有什么副作用

对比

  • display

    方向不可以控制

  • float

    浮动起来的话会脱离标准文档流,所以要解决父级边框塌陷的问题

定位

相对定位

  • position: relative;
  • 相对于原来的位置进行指定的偏移,进行了相对定位,它任然在标准文档流中,它原来的位置是会被保留的
  • top,bottom,left,right(上下左右)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--相对定位
    相对于自己原来的位置进行偏移
    -->
  <style>
      body{
          padding: 50px;
      }
    div{
      margin: 10px;
      padding: 5px;
      font-size: 12px;
      line-height: 25px;
    }
    #father{
        border: 1px solid red;
      padding: 0;
    }
    #first{
      background-color: #3cbda6;
      border: 1px solid #37ff00;
        position: relative;/*相对定位:上下左右*/
        top: -20px;/*距离上面偏离-20(往上移20)*/
        left:20px;/*举例左边偏离20(往右移20)*/
    }
    #second{
      background-color: #3cbda6;
      border: 1px solid #0048ff;
    }
    #third{
      background-color: #3cbda6;
      border: 1px solid #ffbf00;
        position: relative;
        bottom: 10px;
    }
  </style>
</head>
<body>
<div id="father">
  <div id="first">第一个盒子</div>
  <div id="second">第二个盒子</div>
  <div id="third">第三个盒子</div>
</div>
</body>
</html>

绝对定位

定位:基于xxx定位,上下左右

  1. ,没有父级元素定位的前提下,会相对于浏览器定位
  2. 假设父级元素存在定位,我们通常会相对于父级元素进行偏移
  3. 偏移时只能在父级元素范围内移动

​ 相对于父级或浏览器的位置进行指定的偏移,进行了绝对定位,它不会在在标准文档流中,它原来的位置是不会被保留的

position: absolute;

固定定位

  • fixed
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <style>
    body{
      height: 1000px;
    }
    div:nth-of-type(1){/*绝对定位:相对于浏览器(滚动浏览器它位置会变)*/
      width: 100px;
      height: 100px;
      background: red;
      position: absolute;
      right: 0;
      bottom: 0;
    }
    div:nth-of-type(2){/*fixed 固定定位 (滚动浏览器它位置不变)*/
      width: 50px;
      height: 50px;
      background: yellow;
      position: fixed;
    }
  </style>
</head>
<body>
<div>div1</div>
<div>div2</div>
</body>
</html>

z-index

在这里插入图片描述

图层~

z-index:默认是0,最高无限~;实现层级效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="content">
  <ul>
    <li><img src="images/1.jpg" alt=""></li>
    <li class="tipText">学习微服务,找狂神</li>
    <li class="tipBg"></li>
    <li>时间:2099-01-01</li>
    <li>地点:火星一号</li>
  </ul>
</div>
</body>
</html>

背景透明度:opacity: 0.5;

#content{
    width: 150px;
    padding: 0px;
    margin: 0px;
    overflow: hidden;
    font-size: 13px;
    line-height: 25px;
    border: 1px red solid;
}
ul,li{
   padding: 0px;
    margin: 0px;
    list-style: none;
}
/*父级元素相对定位*/
#content ul{
    position: relative;
}
.tipText,.tipBg{
    position: absolute;
    height: 25px;
    width: 150px;
    top: 75px;
}
.tipBg{
    background: #00DBDE;
}
.tipText{
    color: white;
    /*z-index: 20;*/
}
.tipBg{
   opacity: 0.5;/*背景透明度(也可以实线将字体显现的效果)*/
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值