簡體   English   中英

如何將 div 與表格正確對齊?

[英]How can I right align a div with a table?

我有一個真正困擾我的 CSS 問題。 我有一個帶有標題和選擇的 div 容器。 我也有一張桌子,我想讓我的選擇與我的桌子對齊。

這就是我要的:

在此處輸入圖片說明

我將我的選擇設置為向右浮動,它按預期結束在屏幕的右端。 問題是我的表格寬度不是屏幕的 100%(並且寬度實際上可能會有所不同)。

這就是我得到的:

在此處輸入圖片說明

如何使我的 div 容器與我的桌子對齊?

這是我迄今為止嘗試過的:

 table, th, td { border-collapse: collapse; border: 1px solid black; } .mytable { clear: both; } .mysortdiv { float: right; }
 <div class="mysortdiv"> <div>Sort</div> <select> <option value="1">First sort option</option> <option value="2">Second sort option</option> </select> </div> <table class="mytable"> <thead> <tr> <th>My first column</th> <th>My second column</th> </tr> </thead> <tbody> <tr> <td>Something 1</td> <td>Other thing 1</td> </tr> <tr> <td>Something 2</td> <td>Other thing 2</td> </tr> </tbody> </table>

你可以把它包裝在一個 div 中嗎? 然后將每個 div 設置為向右浮動!

這是一個可能的解決方案 -

<div class="container">
    <div class="mysortdiv">
  <div>Sort</div>
  <select>
    <option value="1">First sort option</option>
    <option value="2">Second sort option</option>
  </select>
</div>
<table class="mytable">
  <thead>
    <tr>
      <th>My first column</th>
      <th>My second column</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Something 1</td>
      <td>Other thing 1</td>
    </tr>
    <tr>
      <td>Something 2</td>
      <td>Other thing 2</td>
    </tr>
  </tbody>
</table>
</div>

table,
th,
td {
  border-collapse: collapse;
  border: 1px solid black;
}

.container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.mysortdiv {
    margin-bottom: 10px;
    margin-left: 110px;
}

這是筆 - https://codepen.io/orby32/pen/XWJOEJg

我刪除了所有浮點數,而是用container div 包裹了表格和選擇,它們具有display: flex; . 使用今天被認為是對齊元素的最差做法的浮動。

使用CSS float:right; 為您的餐桌

 .mytable{float:right;}
 <html> <head> <style> table,th,td {border-collapse: collapse; border: 1px solid black;} .mytable {clear: both;} .mysortdiv {float:right;} </style> </head> <body> <div class="mysortdiv"> <div>Sort</div> <select> <option value="1">First sort option</option> <option value="2">Second sort option</option> </select> </div><br><br><br> <table class="mytable"> <thead> <tr> <th>My first column</th> <th>My second column</th> </tr> </thead> <tbody> <tr> <td>Something 1</td> <td>Other thing 1</td> </tr> <tr> <td>Something 2</td> <td>Other thing 2</td> </tr> </tbody> </table> </body>

建立表格的最佳方法是將其包裝在div 在所有元素上使用百分比將使移動友好。

<div class="mysortdiv">
  <div>Sort</div>
  <select>
    <option value="1">First sort option</option>
    <option value="2">Second sort option</option>
  </select>
</div>
<div class="tbl">
  <table class="mytable">
    <thead>
    <tr>
      <th>My first column</th>
      <th>My second column</th>
    </tr>
    </thead>
    <tbody>
    <tr>
      <td>Something 1</td>
      <td>Other thing 1</td>
    </tr>
    <tr>
      <td>Something 2</td>
      <td>Other thing 2</td>
    </tr>
    </tbody>
  </table>
</div>

用這個 css

table {
  width: 100%;
  border-spacing: 0;
  border-collapse: collapse;
}
thead, tbody, tr {
  width: inherit;
}
th, td {
  vertical-align: top;
  text-align: left;
  white-space: normal;
}
.mysortdiv {
  width: 50%;
  margin-left: 50%;
}
.tbl {
  width: 100%;
}
.mysortdiv *,
.tbl * {
  margin: 0;
  box-sizing: border-box;
}
.mysortdiv div,
.mysortdiv select {
  width: 100%;
  padding: 4px 6px;
  font-size: inherit;
}
.tbl table {
  border-top: 1px solid silver;
  border-left: 1px solid silver;
}
.tbl th,
.tbl td {
  width: 50%;
  padding: 4px 6px;
  border-right: 1px solid silver;
  border-bottom: 1px solid silver;
}

table上添加align="right"

<table class="mytable" align="right">

 table, th, td { border-collapse: collapse; border: 1px solid black; } .mytable { clear: both; } .mysortdiv { float: right; }
 <div class="mysortdiv"> <div>Sort</div> <select> <option value="1">First sort option</option> <option value="2">Second sort option</option> </select> </div> <table class="mytable" align="right"> <thead> <tr> <th>My first column</th> <th>My second column</th> </tr> </thead> <tbody> <tr> <td>Something 1</td> <td>Other thing 1</td> </tr> <tr> <td>Something 2</td> <td>Other thing 2</td> </tr> </tbody> </table>

您可以使用flexbox實現這flexbox無需使用float

 table, th, td { border-collapse: collapse; border: 1px solid black; } .mytable { clear: both; } .mysortdiv { margin-bottom:10px; } .parent { display: flex; flex-direction: column; align-items: flex-end; }
 <div class="parent"> <div class="mysortdiv"> <div>Sort</div> <select> <option value="1">First sort option</option> <option value="2">Second sort option</option> </select> </div> <table class="mytable"> <thead> <tr> <th>My first column</th> <th>My second column</th> </tr> </thead> <tbody> <tr> <td>Something 1</td> <td>Other thing 1</td> </tr> <tr> <td>Something 2</td> <td>Other thing 2</td> </tr> </tbody> </table> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM