【问题标题】:rescaling div inside a table cell在表格单元格内重新缩放 div
【发布时间】:2015-07-06 16:18:44
【问题描述】:

我正在尝试在表格的每一行中添加一个简单的赞成/反对票计数器。计数器基本上是一个由 css 形成的 div 容器,我将其插入到表格单元格中。然而,按原样,计票器会导致该行激增。我尝试调整最顶部的 div 容器的大小,但它只调整投票元素的大小。实际计数器的大小保持不变。我是 css 新手,所以我对事物还没有很好的认识。重写我的 CSS 的最佳方法是什么,以便我可以轻松地从最顶层缩放整个投票计数器,而无需手动更改所有子元素?如果我想把这个计数器贴在我网站上的其他地方,而不是在表格单元格内,那就太好了。

这里是 jsfiddle。 https://jsfiddle.net/havok2063/30way48v/

描述赞成/反对票计数器的非常简单的 html。

<div class="vote circle">
    <div class="increment up"></div>
    <div class="increment down"></div>

    <div class="count">8</div>
</div>

这是 CSS。

.vote {
  display: flex;
  flex-direction: column;
  position: relative;
  width: 10rem;
  height: 10rem;
}

.circle .up { border-radius: 10rem 10rem 0 0; }
.circle .down { border-radius: 0 0 10rem 10rem; }
.circle .count { border-radius: 50%; }

.up {
  background: #4BC35F;
  height: 50%;
  margin-bottom: 0.25rem;  
}
.down {
  background: #C15044;
  height: 50%;  
}

.increment {
  flex: 1 0 0;
  text-align: center;
  opacity: .5;
  transition: 0.3s;
  cursor: pointer;
}
.increment:hover { 
  opacity : 1;
}

.count {
  position: absolute;
  top: 0;
  background: rgba(245,245,245,1.0);
  border-radius: 0.1rem;
  margin: 2.5rem;
  width: 5rem;
  font-size: 2.5rem;
  font-weight: bold;
  line-height: 5rem;
  text-align: center;
  box-shadow: 0 0 0 0.5rem rgba(245,245,245,1.0);
  pointer-events: none;
}

html, body { height: 100%; }

【问题讨论】:

    标签: html css rescale


    【解决方案1】:

    您是否想像这把小提琴一样使所有表格单元格的高度相同? https://jsfiddle.net/30way48v/2/

    如果是这样,请将其添加到您的 css td{height: 100px;}

    【讨论】:

    • 不完全。我想要相反的。我不希望单元格行太胖。我想将计数器缩小一点以使行更薄。在柜台难以辨认的地方不算太小,但足够让行看起来不难看。但是感谢您的提示。我不知道我能做到。
    • 你想让向上和向下按钮变小吗?
    • 是的,还有数字计数器。当我调整向上和向下按钮的大小时,数字计数器 div 无法适当缩放。我必须单独手动更改其 css 属性。我希望整个东西更小,但仍然成比例。理想情况下,我想更改投票的宽度和高度,并正确缩放里面的所有内容。
    • 我用小提琴添加了另一个答案,但我认为您要问的是您希望圆圈缩放到行高吗?如果是这种情况,这并非不可能,但需要进行大量计算,此时可能不值得这样做。
    【解决方案2】:

    好的,这里是较小的&lt;td&gt;'s 这是小提琴https://jsfiddle.net/30way48v/3/

    td{height: 50px;}
    .vote {
      display: flex;
      flex-direction: column;
      position: relative;
      width: 5rem;
      height: 5rem;
      margin: 0px;
    
    }
    
    .circle .up { border-radius: 5rem 5rem 0 0; }
    .circle .down { border-radius: 0 0 5rem 5rem; }
    .circle .count { border-radius: 50%; }
    
    .up {
      background: #4BC35F;
      height: 50%;
      margin-bottom: 0.25rem;  
    }
    .down {
      background: #C15044;
      height: 50%;  
    }
    
    .increment {
      flex: 1 0 0;
      text-align: center;
      opacity: .5;
      transition: 0.3s;
      cursor: pointer;
    }
    .increment:hover { 
      opacity : 1;
    }
    
    .count {
      position: absolute;
      top: 0;
      background: rgba(245,245,245,1.0);
      border-radius: 0.1rem;
      margin: 1.45rem;
      width: 2rem;
      font-size: 2.5rem;
      font-weight: bold;
      line-height: 2rem;
      text-align: center;
      box-shadow: 0 0 0 0.5rem rgba(245,245,245,1.0);
      pointer-events: none;
    
      &.upvoted { color: #4BC35F; }
      &.downvoted { color: #C15044; }
    }
    
    html, body { height: 100%; }
    

    【讨论】:

    • 这与我想出的很接近。它和我有同样的问题。例如,如果我将 .vote 宽度和高度更改为 2rem,则 .count div 不会随之更改。这就是我需要的。我想上下缩放整个容器。
    猜你喜欢
    • 2014-08-29
    • 1970-01-01
    • 2021-12-15
    • 2010-10-06
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 2012-11-30
    相关资源
    最近更新 更多