当前位置: 首页 > 知识库问答 >
问题:

前端 - 给span标签内添加高度auto,但身在同一行相邻列,有一个单元格高度由于多内容撑开了,而另一个却不能一起撑开?

缪茂勋
2023-09-27

image.png
html

<el-row class="row">            <el-col class="col">              <span class="label">上平行度</span>              <span class="value"></span>            </el-col>            <el-col class="col">              <span class="label">平行度OK/NG</span>              <span class="value"></span>            </el-col>          </el-row>

css

 .row {          border-bottom: solid .0625rem #9c9c9c;          display: flex;          align-items: center;          justify-content: center;          .col {            height: 100%;            display: flex;             span:not(:last-child){              border-right: solid .0625rem #9c9c9c;             }            ::v-deep span {              flex: 1;              height: 100%;              word-break: break-all;              word-wrap: break-word;              // font-size: 8px;              height: 23px;              line-height: 23px;            }            .label{              background-color: #e0e0e0;              color: #000000;              font-weight: bold;              height:auto;            }            .value{              height: auto;            }

共有2个答案

成和悌
2023-09-27

因为el-col的高度限制了span的高度。row的高度由col计算来的,col的高度由span计算来的,span的高度是auto,所以span的高度由内容决定,上级col的高度没有等高,只是因为align-items: center;居中对齐,首先需要把居中对齐换成align-items: stretch;占满整个容器的高度(align-items默认就是这个值),然后去除col设置的height: 100%;,此时col的高度就变成了和父容器等高。此时可以看到label高度也占满了容器,但是内容少的不有居中,是按照默认属性进行排列的,是下一步就是调整内容居中,方法很多,比如给label设置flex布局display: flex;align-items: center;

冯庆
2023-09-27

你的问题是关于在同一行相邻列中,一个单元格的高度不能随着内容的增多而自动撑开的问题。这种情况通常发生在 flex 布局中,当相邻的元素高度被设置为固定值或百分比,而不是设置为 'flex' 或 'auto'。

在你的代码中,.col 的高度被设置为 100%,这意味着它的高度是其父元素 .row 的高度。而 .row 的高度在默认情况下是自动的,会随着其内容(也就是两个 .col)的增加而增加。因此,当 .col 中的 .label.value 的内容增多时,.col 的高度应该也会增加。

但是,问题可能出在 span 元素的 flex 属性上。在你的 CSS 中,你为 ::v-deep span 设置了 flex: 1;,这会使得每个 span.col 中都尽可能地占据更多的空间。这可能导致 .col 内部的 span 元素(即 .label.value)的高度被限制,即使内容增多也不能增加高度。

一个可能的解决方案是调整 .col 的 flex 属性,让它可以垂直扩展以适应内容。你可以试试以下 CSS:

.row {    /* 其他样式保持不变 */    align-items: stretch;  /* 允许 column 垂直扩展 */}.col {    /* 其他样式保持不变 */    display: flex;    align-items: flex-start; /* 使 column 的内部元素从顶部对齐 */}::v-deep span {    /* 其他样式保持不变 */    flex-grow: 1; /* 使内部元素根据可用空间进行扩展 */}

这样,当 .label.value 的内容增多时,.col 的高度应该能够随之增加。希望这个答案能够解决你的问题。

 类似资料:
  • 在下面的例子中,为什么文字可以撑起内联元素的高度,但img却无法撑起内联元素的高度? 我的本意是文字与img都是a标签的子元素,既然文字可以撑起a标签的高度,那么img同样作为a标签的子元素,就应该可以撑起span的高度,这个直觉似乎很合理。 但实际的结果却不是这样,这么设计的原因的目的是什么呢? 源码地址:https://jsbin.com/nufopebobi/edit?html,output

  • 如图,我有一个父容器(红色边框)和两个子元素(黑色边框)。我希望父容器被文字内容撑开,而不是被图片。现在父元素会被两个子元素中更高的那个撑开,如果图片比较高的话就会像图中所示。如何让图片跟随文字内容的高度,有没有纯 css 的解决方法。 jsfiddle

  • 我有用自定义单元格(继承自)填充的用户界面视图,每个单元格都包含一个,该视图根据其内容自动调整大小。事情是这样的,如何根据内容(可变视图)更改 单元格的高度。 该解决方案必须是动态的,因为用于填充< code>UIWebViews的HTML是从不断变化的提要中解析的。 我觉得我需要使用委托方法 中更改单元格的高度吗? 任何帮助都是伟大的。谢谢 两年多前我问过这个问题。通过介绍自动布局,可以找到iO

  • 问题内容: 我有一个由用户创建的单元格调用的表视图。每个单元都有文本视图。我想通过“文本视图”的内容更改单元格的高度。这是我尝试的: 问题答案: 绑定您与来自四面八方的使用边际约束。( 前置,顶部和底部的约束 ) 禁用textView滚动 在 viewDidLoad()中 添加以下内容。 这将使您的单元格大小根据您的textview内容大小。 看一下结果: 您无需编写 heightForRowAt

  • 本文向大家介绍外层有一个自适应高度的div,里面有两个div,一个高度固定300px,另一个怎么填满剩余的高度?相关面试题,主要包含被问及外层有一个自适应高度的div,里面有两个div,一个高度固定300px,另一个怎么填满剩余的高度?时的应答技巧和注意事项,需要的朋友参考一下 可以设置外层自适应高度的容器为布局,利用属性即可实现自动填满剩余高度;代码如下: 在线demo

  • 我已将btn和btn default类分配给表单中的输入type=“submit”和带有btn btn default的a标记。按钮比a标签小。原因可能是什么?当我比较线条高度、填充物等时,它们是相同的。原因可能是什么?我已经为表单指定了display:inline块。 当做