代码之家  ›  专栏  ›  技术社区  ›  Marcus Grass

CSS将图像尺寸设置为父DIV的百分比,而不设置父DIV的尺寸

  •  1
  • Marcus Grass  · 技术社区  · 7 年前

    另外,由于某些原因,引入了垂直填充。

    这是它的样子:

    文本对齐:居中; } 职位:相对; 边距:0; .链接框img{ <DIV class=“LinkBox”> <img src=“/static/images/internalnavbardiv/bluefilterline.svg”> <A routerlink=“/register invoice”>登记发票</A> </DIV>>=

    但是,我找不到一个好的方法来设置图像的宽度,因为父DIV没有设置的宽度,父DIV的宽度应该取决于a-link文本的长度。

    而且,如何根据包含链接的文本长度使框的高度与宽度相同?

    img


    .navMain {
      position: relative;
      text-align: center;
      padding: 0;
      margin: 0;
    }
    
    .linkBox {
      display: inline-block;
      padding-right: 20px;
    }
    
    .linkBox a {
      position: relative;
      text-decoration: none;
      color: black;
      padding: 0;
      margin: 0;
    }
    
    .linkBox img {
      position: relative;
      padding: 0;
      margin: 0;
    }
    <div class="navMain">
      <div class="linkBox">
        <a routerLink="/ordering"> Place order</a>
      </div>
      <div class="linkBox">
        <a routerLink="/invoices"> Invoice overview</a>
        <img src="/static/images/internalnavbardiv/blueFilterLine.svg">
      </div>
      <div class="linkBox">
        <a routerLink="/registerinvoice"> Register invoice</a>
      </div>
    </div>
    1 回复  |  直到 7 年前
        1
  •  3
  •   Temani Afif    7 年前

    只需使用渐变来实现这一点,而不需要img或svg:

    .navMain {
      position: relative;
      text-align: center;
      padding: 0;
      margin: 0;
    }
    
    .linkBox {
      display: inline-block;
      padding-right: 20px;
    }
    
    .linkBox a {
      position: relative;
      text-decoration: none;
      color: black;
      padding-bottom: 5px;
      margin: 0;
    }
    .decorate {
      background:linear-gradient(blue,blue) bottom/100% 1px no-repeat;
    }
    <div class="navMain">
      <div class="linkBox">
        <a routerLink="/ordering"> Place order</a>
      </div>
      <div class="linkBox">
        <a routerLink="/invoices" class="decorate"> Invoice overview</a>
      </div>
      <div class="linkBox">
        <a routerLink="/registerinvoice" class="decorate"> Register </a>
      </div>
    </div>

    .navMain {
      position: relative;
      text-align: center;
      padding: 0;
      margin: 0;
    }
    
    .linkBox {
      display: inline-block;
      padding-right: 20px;
    }
    
    .linkBox a {
      position: relative;
      text-decoration: none;
      color: black;
      padding-bottom: 5px;
      margin: 0;
    }
    .decorate {
      background:url(https://picsum.photos/200/100?image=1040) bottom/80% 2px no-repeat;
    }
    <DIV class=“navmain”>
    <A routerlink=“/ordering”>下订单</A>
    </DIV>
    </DIV>