其他分享
首页 > 其他分享> > 一个三角形引发的前端问题

一个三角形引发的前端问题

作者:互联网

一个三角形引发的前端问题


我们如何使用css画一个三角形是今天的问题,然后我们可以得到一系列的问题!

css画出三角形

先画一个正方形,然后将中间部分设为0px,然后隐藏三个边框,剩下一个边框就是三角形,我我们来看一下这个过程。

如果内部不设为0px,我们看一下图形

#tri{
    width: 50px;
    height: 50px;
    border: 100px solid #000;
    border-color: blue red yellow black;
}

在这里插入图片描述
可以看到他默认的指定顺序是上 右 下 左

设为0px后

#tri{
    width: 0;
    height: 0;
    border: 100px solid #000;
    border-color: blue red yellow black;
}

在这里插入图片描述

将三个边框透明即可

#tri{
    width: 0;
    height: 0;
    border: 100px solid #000;
    border-color: blue transparent transparent transparent;
}

在这里插入图片描述
由于ie6不支持transparent,所以没有透明效果,就需要把border-style:solid
dashed dashed dashed

这个边框的颜色位置也就对应了三角形的方向

我们还可以用border-left这些来写

隐藏两边

#tri {
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-bottom: 100px solid red;
}

在这里插入图片描述
改变隐藏的和显示的边框方向可以改变三角形的方向。

隐藏一边

#tri {
    width: 0;
    height: 0;
    border-top: 100px solid red;
    border-right: 100px solid transparent;
}

在这里插入图片描述

margin和padding的区别

既然引出了这个边框的问题,我们就来看一下margin和padding的区别:

在这里插入图片描述
这个可以打开F12查看随便一个元素都可以得到,任何一个元素都有内外边框

BFC的理解?

BFC是“Block Formatting Context”的缩写,即块格式化上下文。它是Web页面的可视化CSS渲染的一部分,是布局过程中生成块级盒子的区域,也是浮动元素与其他元素的交互限定区域。通俗的讲,BFC是web页面中一块渲染区域(或者说是一种渲染环境),对于环境内的盒子,有某些特定的渲染规则。

再通俗的讲,就是我们可以为某一个盒子赋予BFC渲染环境,盒子内的子盒子在这个渲染环境中进行渲染。

如何构建BFC

BFC特性

案例一:

  <div class="container">
    <p>Sibling 1</p>
    <p>Sibling 2</p>
  </div>
    .container {
      background-color: red;
      /* create BFC box */
      overflow: hidden;
      text-align: center;
    }

    p {
      background-color: lightgreen;
      margin: 10px 0;
    }

在这里插入图片描述
margin出现了一个重叠的效果

案例二:避免marigin重叠

    <div class="container">
        <p>Sibling 1</p>
        <p>Sibling 2</p>
        <div class="newBFC">
            <p>Sibling 3</p>
        </div>
    </div>
  .container {
    background-color: red;
    /* create BFC box */
    overflow: hidden;
    text-align: center;
  }

  p {
    background-color: lightgreen;
    margin: 10px 0;
  }
  .newBFC {
    overflow: hidden;
  }

在这里插入图片描述
这样利用BFC就不会出现重叠现象了

通过BFC来包含浮动

一个BFC可以包含浮动。很多时候我们会碰到这种情况,一个容器里有浮动元素。由于这个原因,容器元素没有高度(常被理解为元素浮动导致父容器坍塌),它的浮动孩子将会脱离页面的常规流。我们通常使用清除浮动来解决这个问题,最受欢迎的方法是使用一个clearfix的伪类元素。但我们同样可以通过定义一个BFC来达到这个目的。

案例一:浮动脱离父元素的包裹

 <div class="container">
    <div class="box"></div>
  </div>
 .container {
      padding: 10px;
      background-color: green;
    }

 .box {
      width: 100px;
      height: 100px;
      border-radius: 5px;
      background-color: lightgreen;
      float: left;
    }

在这里插入图片描述

案例二:利用BFC包含

上面子元素因为浮动脱离了父元素的包裹,为了使得父元素能够将子元素进行包裹,我们将父元素设置成BFC即可(利用的是特性里的第五条):

.container {
    overflow: hidden;//添加的这句
    padding: 10px;
    background-color: green;
  }

  .box {
    width: 100px;
    height: 100px;
    border-radius: 5px;
    background-color: lightgreen;
    float: left;
  }

在这里插入图片描述

标签:BFC,color,margin,前端,元素,引发,边框,三角形,border
来源: https://blog.csdn.net/qq_42136832/article/details/120117193