css - <选项> 布局是 "magic"吗?

标签 css select

CSS能否实现与<option>一样的布局? ?

enter image description here

<option> 的存在不影响包含滚动区域的滚动,出现在包含滚动区域之外。

这似乎是一个非常“神奇”的布局,因为我想不出任何其他类型的元素具有相同的布局。


编辑: native 选择示例 https://codepen.io/anon/pen/WWJrqR

下拉框布局可以用CSS复制吗?

最佳答案

我的结论是,选择选项框的布局确实无法仅通过 CSS 来实现。

最接近的是使用 JS 来 Hook 滚动处理程序。

https://codepen.io/anon/pen/bJMpGB

<section id="container" class="container">
  <p>One</p>
  <p>Two</p>
  <p>Three</p>
  <p>Four</p>
  <p>Five</p>
  <p>One</p>
  <p>Two</p>
  <p>Three</p>
  <p>Four</p>
  <p>Five</p>
  <p><strong>Select</strong></p>
  <div id="options-container" class="options-container">
    <div class="options">
      <p>One</p>
      <p>Two</p>
      <p>Three</p>
      <p>Four</p>
      <p>Five</p>
      <p>One</p>
      <p>Two</p>
      <p>Three</p>
      <p>Four</p>
      <p>Five</p>
      <p>One</p>
      <p>Two</p>
      <p>Three</p>
      <p>Four</p>
      <p>Five</p>
      <p>One</p>
      <p>Two</p>
      <p>Three</p>
      <p>Four</p>
      <p>Five</p>
    </div>
  </div>
  <p>One</p>
  <p>Two</p>
  <p>Three</p>
  <p>Four</p>
  <p>Five</p>
</section>
.options {
  background: grey;
  border: 1px solid blue;
  height: 500px;
  width: 300px;
  overflow:auto;
}

.options-container {
  position: absolute;
  height: 0;
  left: 30px;
  z-index: 30;
}

.container {
  border: 2px solid black;
  height: 500px;
  overflow: auto;
  width: 400px;
}

p {
  margin-block-start: 1em;
  margin-block-end: 1em;
}
document.getElementById('container')
  .addEventListener('scroll', event => {
    document.getElementById('options-container').style['transform'] =
       'translateY(' + -event.target.scrollTop + 'px)';
  });

不幸的是,这在使用异步滚动处理程序的浏览器中效果不佳;您可以看到滚动框在滚动时稍微跳动。

关于css - <选项> 布局是 "magic"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55756794/

相关文章:

html - LI 元素内的奇怪 TABLE 边距行为

sql - 如何在 SQL Server 中的两个日期之间进行选择

select - Struts2 : How to show a tooltip for each dropdown option in a select tag?

sql-server - SQL Server 查询 - 如何将选定的值插入到另一个表中

mysql - 如何从两个表中选择最近的时间戳并按所述时间戳排序?

css - 如何在移动媒体查询中隐藏漂亮的照片库?

css - 嵌套表格可能的 CSS 特异性和继承错误

html - 下拉导航框

css - IE 中的 z-index 问题仅适用于动态数据

java - 当写入数据多于读取数据时,NIO 会失败