html - 你如何创建两个同样宽的元素,相对于两个中最大的元素,同时仅使用 html/css 保持灵活的 'structure'?

标签 html css

我一直在尝试仅使用 html 和 css 来实现以下目标,但我似乎无法做到正确。 考虑下图: enter image description here

图像显示了两个所需的输出,具体取决于它们的伪媒体查询最小宽度:X 和最大宽度:X。媒体查询是什么并不重要,重要的是结构能够改变输出与图像匹配。

因此,我一直在努力解决的问题是在标记为“a”的灰色容器中设置单行文本,并使这些容器相对于两者中最大的容器具有相同的宽度。 'a' 的宽度适应可变长度的文本,不多也不少。我还希望 'a' 尽可能排在左侧。

请记住,我正在尝试仅使用 HTML 和 CSS 来完成此任务。

最佳答案

最终使用表格解决了我的问题。关键在于更改 td 元素的显示属性。

table {
  width:300px;
  background-color:#4192AD;
  margin-bottom:30px;
}

td {
  height:20px;
}

td:first-child{
    width:1%;
    white-space:nowrap;
    text-align:right;    
    background-color:#C6C6C6;
}

td:nth-child(2) {
  background-color:#73AD5A;
}

.alternate td {
  display:block;
  width:auto;
  text-align:left;
}
<table>
<tbody>
  <tr>
    <td>short-text</td>
    <td></td>
  </tr>
  <tr>
    <td>relatively-long-text</td>
    <td></td>
  </tr>
</tbody>
</table>

<table class='alternate'>
<tbody>
  <tr>
    <td>short-text</td>
    <td></td>
  </tr>
  <tr>
    <td>relatively-long-text</td>
    <td></td>
  </tr>
</tbody>
</table>

关于html - 你如何创建两个同样宽的元素,相对于两个中最大的元素,同时仅使用 html/css 保持灵活的 'structure'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46091501/

相关文章:

jquery - 如何用同一个热键关闭?

javascript - 使用 jsPDF 将多个不同的图像添加到 PDF

html - 在菜单栏中为 Logo 创建切口

html - slideOut 侧边栏再次出现

css - 如何显示带有 2 个图像的内联列表

c# - 在 asp.net 后面的代码中访问类型文件的输入控件

javascript - 仅在 Javascript 中具有不同段落的动态 Div

html - 下划线悬停是强调额外

php - 如何使用 PHP 设置 div 的背景?

html - 如何在 Firefox 中将元素定位在其容器的底部?