为啥宽度属性在我的桌子上不起作用?

Posted

技术标签:

【中文标题】为啥宽度属性在我的桌子上不起作用?【英文标题】:Why width property doesn't work on my table?为什么宽度属性在我的桌子上不起作用? 【发布时间】:2018-06-11 12:13:49 【问题描述】:

我有这样的代码:

main 
  position: relative;
  width: 80%;
  float: right;
  height: auto;


div.container 
  width: 95%;
  height: auto;
  margin: 0 auto;


main div.container>table 
  width: 10px;
  overflow: hidden;
  background-color: red;
<main>
  <div class="container">
    <table>
      <thead>
        <tr>
          <th>Nama event</th>
          <th>Kategori event</th>
          <th>Keterangan event</th>
          <th>Waktu event</th>
          <th>Lokasi event</th>
          <th>Cover</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>something</td>
          <td>something</td>
          <td>something</td>
          <td>something</td>
          <td>something</td>
          <td>something</td>
        </tr>
      </tbody>
    </table>
  </div>
</main>

但表格宽度不起作用。当我尝试宽度超过 322px 时它可以工作,但是当我尝试宽度 table 不会变小)。我尝试将宽度 > 33% 它的工作 aside和width 20%

【问题讨论】:

【参考方案1】:

这是由于行为表无法将其宽度减小到小于其内容所需的宽度。

为了能够更改此设置,您需要将 table-layout 设置为固定,默认情况下它是自动的,您可以阅读 here:

自动表格布局算法(默认):

列宽 由单元格中最广泛的牢不可破的内容设置 可能很慢, 因为它需要通读表格中的所有内容,之前 确定最终布局

固定表格布局算法:

水平布局只取决于 表格的宽度列的宽度,而不是 单元格允许浏览器比 自动表格布局浏览器可以开始显示表格一次 第一行已收到

main 
  position: relative;
  width: 80%;
  float: right;
  height: auto;


div.container 
  width: 95%;
  height: auto;
  margin: 0 auto;


main div.container>table 
  width: 10px;
  overflow: hidden;
  background-color: red;
  
<main>
  <div class="container">
    <table>
      <thead>
        <tr>
          <th>Keterangan event</th>
          <th>Waktu event</th>
          <th>Lokasi event</th>
          <th>Lokasi event</th>
          <th>Cover</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>something</td>
          <td>something</td>
          <td>something</td>
          <td>something</td>
          <td>something</td>
        </tr>
      </tbody>
    </table>
    after adding table-layout:fixed;
    <table style="table-layout:fixed;">
      <thead>
        <tr>
          <th>Keterangan event</th>
          <th>Waktu event</th>
          <th>Lokasi event</th>
          <th>Lokasi event</th>
          <th>Cover</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>something</td>
          <td>something</td>
          <td>something</td>
          <td>something</td>
          <td>something</td>
        </tr>
      </tbody>
    </table>

   
  </div>
</main>

【讨论】:

【参考方案2】:

这是你需要的吗?...你设置 Table->width : 10px ..... 我猜你的意思是 td->width: 10px ..

.main 
 
  width: 100%;
  
 

div.container 
  width: 100%;
  height: auto;
  margin: 0 auto;

div.container > table 
  width: 90%;
  overflow: hidden;
  background-color: red;
<div class="main">
  <div class="container">
    <table>
      <thead>
        <tr>
          <th>Nama event</th>
          <th>Kategori event</th>
          <th>Keterangan event</th>
          <th>Waktu event</th>
          <th>Lokasi event</th>
          <th>Cover</th>
        </tr>
      </thead>
      <tbody>
          <tr>
            <td>something</td>
            <td>something</td>
            <td>something</td>
            <td>something</td>
            <td>something</td>
            <td>something</td>
          </tr>
      </tbody>
    </table>
  </div>
</div>

【讨论】:

你为什么他的意思是 td ? :) 他经常使用 table 这个词,所以我很确定他的意思是 table @TemaniAfif 因为那是导致问题的原因...将整个表格的宽度设置为 10px 的逻辑是什么? 他并没有尝试将其设置为 10 像素,因为您可以阅读他根本无法更改宽度(10 像素只是一个示例),这是由于表格的性质。即使是小的值也尝试改变元素的宽度是逻辑 感谢您的回答。但是对不起,当我尝试你的建议时。 宽度仍然不能手动更改小于 td 宽度需要。

以上是关于为啥宽度属性在我的桌子上不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 jQuery 在我的 Sharepoint 页面上不起作用?

为啥填充在我的标签元素上不起作用?

为啥 w3.css Side navbar 在我的页面上不起作用?

为啥 firebase auth 在我的新三星手机上不起作用?

为啥发件人行在我的邮件功能上不起作用?

为啥 chrome 远程调试在我的三星 Galaxy S10 上不起作用?