jquery - div 内表格中的不均匀元素未正确对齐

标签 jquery html css

我无法对齐表中的元素,我在下面提供了两个图像。图像 1 第一列有 7 行,第二列有 4 行,它应该像图像 2 一样对齐到顶部,即使它有行数不均匀。

以下是图片:

enter image description here

enter image description here

$("#action").click(function() {
  if ($("#actiondetails").is(":visible")) {
    $("#actiondetails").hide();
  } else {
    $('#actiondetails').show();
  }
});

$(document).on('click', function(event) {
  if (!$(event.target).closest('#action').length) {
    // Hide the menus.
    $('#actiondetails').hide();
  }
});
.dropbtn {
  background-color: black;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  vertical-align: bottom;
}

.dropdown-content a:hover {
  background-color: #f1f1f1
}

.link-format {
  list-style-type: none;
  width: 100px
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dropdown">
  <div class="dropbtn" id="action">Dropdown
    <div class="dropdown-content" id="actiondetails">
      <table>
        <tr>
          <td>
            <ul class="link-format" style="border-right:1px gray dashed">
              <li><a href="#">Link 1</a></li>
              <li><a href="#">Link 2</a></li>
              <li><a href="#">Link 3</a></li>
              <li><a href="#">Link 4</a></li>
              <li><a href="#">Link 5</a></li>
              <li><a href="#">Link 6</a></li>
              <li><a href="#">Link 7</a></li>
            </ul>
          </td>
          <td>
            <ul class="link-format">
              <li><a href="#">Link 1</a></li>
              <li><a href="#">Link 2</a></li>
              <li><a href="#">Link 3</a></li>
              <li><a href="#">Link 4</a></li>
            </ul>
          </td>
        </tr>
      </table>
    </div>
  </div>
</div>

最佳答案

要实现此目的,您需要在下拉菜单中的 td 上设置 vertical-align: top:

.dropdown-content td { 
  vertical-align: top;
}

$("#action").click(function() {
  if ($("#actiondetails").is(":visible")) {
    $("#actiondetails").hide();
  } else {
    $('#actiondetails').show();
  }
});

$(document).on('click', function(event) {
  if (!$(event.target).closest('#action').length) {
    // Hide the menus.
    $('#actiondetails').hide();
  }
});
.dropbtn {
  background-color: black;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  vertical-align: bottom;
}

.dropdown-content a:hover {
  background-color: #f1f1f1
}

.dropdown-content td { 
  vertical-align: top;
}

.link-format {
  list-style-type: none;
  width: 100px
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dropdown">
  <div class="dropbtn" id="action">Dropdown
    <div class="dropdown-content" id="actiondetails">
      <table>
        <tr>
          <td>
            <ul class="link-format" style="border-right:1px gray dashed">
              <li><a href="#">Link 1</a></li>
              <li><a href="#">Link 2</a></li>
              <li><a href="#">Link 3</a></li>
              <li><a href="#">Link 4</a></li>
              <li><a href="#">Link 5</a></li>
              <li><a href="#">Link 6</a></li>
              <li><a href="#">Link 7</a></li>
            </ul>
          </td>
          <td>
            <ul class="link-format">
              <li><a href="#">Link 1</a></li>
              <li><a href="#">Link 2</a></li>
              <li><a href="#">Link 3</a></li>
              <li><a href="#">Link 4</a></li>
            </ul>
          </td>
        </tr>
      </table>
    </div>
  </div>
</div>

关于jquery - div 内表格中的不均匀元素未正确对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45998212/

相关文章:

html - 如何在右下角有一个div的切口,左边有阴影

javascript - 如何在 Javascript 中将 float 转换为字符串数组?

ajax - `success: function(msg)` 在我的 jQuery Ajax 调用中意味着什么?

javascript - 如何为javascript confim box设置字体颜色或背景颜色?

javascript - ParsleyJS 自定义验证器跳过验证没有错误

jquery - 限制元素在 jquery 中的移动

javascript - 如何使用带有事件监听器的 HTML5 颜色选择器

javascript - node.js/express 在不从当前页面重定向的情况下发出发布请求

javascript - 使用 QtWebkit (HTML/CSS/JS -> PDF) 的自动多页多列流动文本

HTML 视口(viewport)大小问题(100vw ≠ 宽度的 100%)