代码之家  ›  专栏  ›  技术社区  ›  Sam R. chikka.anddev

设置SVG初始宽度和高度

  •  2
  • Sam R. chikka.anddev  · 技术社区  · 7 年前

    所以我想把这个SVG放在 col div,但我希望它与右列的高度相同。如果右边的列较大,则一切正常,但如果它较小,则SVG列将获胜并决定其他列的高度。

    不管怎样,我是否可以设置SVG的初始大小,并使其在高度方面保持响应?

    简言之,我希望右栏指示其他人的高度。

    .row {
      display: flex;
      width: 90vw;
    }
    
    .col {
      flex: 1;
      border: 1px solid lightgray;
    }
    <div class="row">
      <div class="col">
        <svg xmlns="http://www.w3.org/2000/svg" width="30" height="100%">
          <line
            x1="50%" 
            y1="100%" 
            x2="50%" 
            y2="0%"
            stroke="black" 
            stroke-width="2" />
    
          <circle 
            cx="50%" 
            cy="10%" 
            r="5" />
      </svg>
      </div>
    
      <div class="col">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
      <div class="col">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad omnis quae expedita ipsum nobis praesentium velit animi minus amet perspiciatis
      </div>
    </div>

    这是期望的结果:

    enter image description here

    这是 jsbin 如果你想玩的话。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Sam R. chikka.anddev    7 年前

    好吧,看来我只是需要 height 和a min-height 以及一些调整:

    .row {
      display: flex;
      width: 90vw;
    }
    
    .col {
      display: flex;
      flex-direction: column;
      flex-wrap: nowrap;
      align-items: center;
      border: 1px solid lightgray;
    }
    
    .col>svg {
      flex-grow: 1;
      flex-shrink: 1;
      min-height: 20px;
      height: 20px;
      width: 30px;
    }
    <div class="row">
      <div class="col">
        <svg xmlns="http://www.w3.org/2000/svg">
          <line 
            x1="50%"
            y1="100%"
            x2="50%" 
            y2="0"
            stroke="darkgray" />
          <circle cx="50%" cy="50%" r="3" />
      </svg>
      </div>
    
      <div class="col">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
      <div class="col">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad omnis quae expedita ipsum nobis praesentium velit animi minus amet perspiciatis
      </div>
    </div>