Tajuk ditulis semula sebagai: menu flexbox dan jadual dengan tajuk - adakah mungkin untuk memotong tajuk berdasarkan lebar jadual?
P粉642920522
P粉642920522 2023-09-06 17:30:06
0
1
375

Saya mahu mencapai sesuatu seperti ini dengan menggunakan flexbox CSS. Menu adalah lebar tetap, tetapi jadual boleh berkembang secara automatik, dan pengepala tidak boleh melebihi lebar jadual, walaupun ia panjang. Dalam erti kata lain, jadual sepatutnya boleh meregangkan bekas lajur, tetapi pengepala tidak sepatutnya.

+----+--------+
|菜单| 标题   |
|    +--------+
|    | 表格   |
+----+--------+

Mudah untuk dilaksanakan dengan hanya satu lajur lentur.

<html>
<style>
    td {
        font-size: 60px;
    }
    .container {
        font-size: 60px;
        background-color: yellow;
        display: flex;
        flex-direction: column;
    }
    .item1 {
        background-color: red;
        white-space: nowrap;
        overflow: hidden;
    }
    .item2 {
        background-color: blue;
    }
</style>
<body>
<div class="container">
  <div class="item1">Item 1 bla bla blaaas asd das dsa das das aaaaaaaaa</div>
  <div class="item2">
    <table>
      <tr>
        <td>data</td>
        <td>data</td>
        <td>data</td>
        <td>data</td>
        <td>data</td>
        <td>data</td>
        <td>data</td>
        <td>data</td>
        <td>data</td>
        <td>data</td>
        <td>data</td>
      </tr>
    </table>
  </div>
</div>
</body>
</html>

Tapi bila tambah menu, semuanya tidak berfungsi dengan baik, tajuk tidak dipotong.

<html>
<style>
    .main {
        display: flex;
    }
    .menu {
        background-color: #222222;
        width: 200px;
    }
    td {
        font-size: 60px;
    }
    .container {
        font-size: 60px;
        background-color: yellow;
        display: flex;
        flex-direction: column;
        width: 100%;
    }
    .item1 {
        background-color: red;
        white-space: nowrap;
        overflow: hidden;
    }
    .item2 {
        background-color: blue;
    }
</style>
<body>
<div class="main">
  <div class="menu">
    菜单
  </div>
  <div class="container">
    <div class="item1">Item 1 bla bla blaaas asd das dsa das das aaaaaaaaa</div>
    <div class="item2">
      <table>
        <tr>
          <td>data</td>
          <td>data</td>
          <td>data</td>
          <td>data</td>
          <td>data</td>
          <td>data</td>
          <td>data</td>
          <td>data</td>
          <td>data</td>
          <td>data</td>
          <td>data</td>
        </tr>
      </table>
    </div>
  </div>
</div>
</body>
</html>
P粉642920522
P粉642920522

membalas semua(1)
P粉512526720

Jadi anda mahu elemen yang mengandungi tajuk berubah saiz dengan adik-beradiknya, tetapi bukan anak-anaknya sendiri.

Satu-satunya cara yang boleh saya fikirkan ialah membungkus teks tajuk dalam elemen yang sesuai - dalam kes ini <span> - 然后使用position: absolute将其从流中取出,并在标题的父元素上使用position: relative. Kemudian anda perlu menetapkan beberapa ketinggian kepada tajuk.

Contoh

Saya menggantikan lebar dengan flex: 0 0 200px. Ini akan menghalang menu daripada menukar saiz, sentiasa kekal pada 200px.

.main {
  display: flex;
}

.menu {
  background-color: #222222;
  flex: 0 0 200px; /*改变了*/
}

td {
  font-size: 60px;
}

.container {
  font-size: 60px;
  background-color: yellow;
  display: flex;
  flex-direction: column;
  width: maxwidth; /*将宽度改为maxwidth*/
}

.item1 {
  background-color: red;
  white-space: nowrap;
  overflow: hidden;
  position: relative; /*添加了*/
  height: 1.2em; /*添加了*/
}

.item1 span {
  position: absolute; /*添加了*/
}

.item2 {
  background-color: blue;
}
<div class="main">
  <div class="menu">
    菜单
  </div>

  <div class="container">
    <div class="item1"><span>The quick brown fox jumped over the lazy dog</span></div>
    <div class="item2">
      <table>
        <tr>
          <td>数据</td>
          <td>数据</td>
          <td>数据</td>
        </tr>
      </table>
    </div>
  </div>
</div>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!