代码之家  ›  专栏  ›  技术社区  ›  baycisk

使用css在矩形的右侧创建动态三角形大小

css
  •  -1
  • baycisk  · 技术社区  · 6 年前

    我想实现这样的目标:

    enter image description here

    然而,我不知道如何创建三角形形状,但在动态大小的右侧区域是一个段落,可以有很多或小的内容。

    我只是一时搞不清楚结构

    1 回复  |  直到 6 年前
        1
  •  1
  •   justDan    6 年前

    所以如果你想要一个三角形的形状,那么你肯定可以使用CSS来为这个部分创建一个三角形。这里有一个快速演示,float是两个div,并使用CSS三角形。

    三角形CSS:

    width: 0px;
    height: 0px;
    border-top: 50px solid transparent;
    border-bottom: 50px solid transparent;
    border-left: 10px solid #fff;
    

    * {
      box-sizing: border-box;
    }
    
    body {
      background: #ccc;
      margin: 0;
      padding: 0;
    }
    
    p {
      margin: 0;
      text-align: center;
      position: relative;
      top: 50%;
      transform: translateY(-50%);
    }
    
    .wrap {
      margin: 50px auto;
      width: 500px;
    }
    
    .inner {
      position: relative;
      height: 100px;
      width: 100%;
    }
    
    .left {
      float: left;
      background: #fff;
      height: 100px;
      position: relative;
      width: 30%;
    }
    
    .right {
      float: left;
      background: #4c4c4c;
      height: 100px;
      padding: 0 40px;
      width: 70%;
    }
    
    .border {
      border: 1px solid yellow;
      border-style: dashed;
      position: absolute;
      top: 0;
      left: 0;
      width: 96%;
      height: 80px;
      top: 50%;
      transform: translateY(-50%);
      right: 0;
      margin: 0 auto;
    }
    
    .arrow-left {
      width: 0px;
      height: 0px;
      position: absolute;
      top: 0;
      right: -10px;
      border-top: 50px solid transparent;
      border-bottom: 50px solid transparent;
      border-left: 10px solid #fff;
    }
    <div class='wrap'>
      <div class='inner'>
        <div class='left'>
          <p>Lorem Ipsum <br>Lorem ipsum dolor</p>
          <div class='arrow-left'></div>      
        </div>
        <div class='right'><p>Lorem Ipsum is placeholder text commonly used in the graphic, print, and publishing industries for previewing layouts and visual mockups.</p></div>
        <div class='border'></div>
      </div>
    </div>

    http://jsfiddle.net/8ogzcLhy/2/

    注:此布局使用浮标,浮标可以挖沟使用 flex-box