如何使选择列表出现在另一个元素上?

Posted

技术标签:

【中文标题】如何使选择列表出现在另一个元素上?【英文标题】:How to make select list appear over another element? 【发布时间】:2021-06-30 12:10:57 【问题描述】:

我正在基于此React Template 构建一个项目。 在其中一个组件中,我有一个选择列表,在它下面有一个卡片元素。 问题是当我单击列表时,项目会出现在卡片元素下,如下所示:

我感觉这是由模板本身的 CSS 代码造成的,该代码将卡片配置为显示在所有其他元素之上。

所以我所做的是创建了一个新的 react 项目:

npx 创建反应应用程序

我的怀疑是对的。 我复制了基本相同的代码:

const selectStyles = 
  control: (styles) => ( ...styles, backgroundColor: "white" ),
  option: (styles) => 
    return 
      ...styles,
      backgroundColor: "green",
    
      "z-index": -5,
    ;
  ,
;

export default class App extends Component 
  render() 
    return (
      <Fragment>
        <Select
          className="basic-single"
          classNamePrefix="select"
          defaultValue=colourOptions[0]
          name="color"
          options=colourOptions
          styles=selectStyles
        />
        <Card
          style=
            position: "absolute",
            "background-color": "red",
            "z-index": 5,
          
        >
          <CardImg
            top
            
            src="/assets/318x180.svg"
            
          />
          <CardBody>
            <CardTitle tag="h5">Card title</CardTitle>
            <CardSubtitle tag="h6" className="mb-2 text-muted">
              Card subtitle
            </CardSubtitle>
            <CardText>
              Some quick example text to build on the card title and make up the
              bulk of the card's content.
            </CardText>
            <Button>Button</Button>
          </CardBody>
        </Card>
      </Fragment>
    );
  

所选项目出现在ABOVE卡片上:

这张卡片是红色的。

结论:问题是由模板的卡片css代码引起的。

如您所见,我尝试使用 z-index 属性的不同配置,但无济于事。

知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

问题在于 z-index 和位置,无论您想在顶部显示哪个内容,都应该具有更高的 z-index 值。

尝试为选择下拉菜单提供与卡片相比较高的值。 如果不需要,请尝试删除两个 CSS 属性 position: absolute 和 z-index。绝对位置仅在需要将内容移动到相应相对父容器的任何位置时使用。因此,如果您只是在练习而不是在进行设计,请尝试将两者都删除。

【讨论】:

以上是关于如何使选择列表出现在另一个元素上?的主要内容,如果未能解决你的问题,请参考以下文章

如何在另一个选择框上使用相关的选择框?

如何使已选择的选项不显示在另一个选择选项下拉 JAVASCRIPT/ANGULARJs

如何在另一个对象列表中选择对象列表

如何使dango url忽略urls.py中的查询字符串

仅在另一个元素内部时如何选择一个元素?

使 div 出现在动态选项选择上