javascript - 为什么隐藏一个元素后有一个空白空间?

标签 javascript html css reactjs

在标题中我尝试做一个下拉菜单,但是有一个问题——在隐藏状态下,有一个空白区域。如何在不使用属性 display: none 的情况下修复它(因为在这种情况下无法使用动画)?如果我将页眉底部 (bottomNavBar) 设置为固定高度,那么在小尺寸屏幕上就会出现问题。

return (
    <div className={`${style.bottomNavBar}`}>
        <Container fluid={true} className={style.container}>
            <Row>
                <Col sm={12} md={2}>
                    <div className={style.allCategories} onClick={() => openCloseTabs()}>
                        <h5>Все категории</h5>
                    </div>
                </Col>
                 <Col sm={12} md={10}>
                    <SimpleSlider/>
                </Col>
            </Row>
        </Container>
        <div className={`${style.tabsPanel} ${tabsPanelVisible ? style.tabsPanelOpen : style.tabsPanelHidden}`}>

        </div>
    </div>
)
};

CSS:

    .bottomNavBar {
        background-color: rgb(50, 148, 63);
    }
    .container {
    }
    .allCategories {
        color: white;
        text-align: center;
        padding: 14px 16px;
        text-decoration: none;
        cursor: pointer;
    }
    .allCategories:hover {
        text-shadow: 4px 4px 2px rgba(255, 255, 255, 0.6);
    }  
   .tabsPanel {
        min-height: 200px;
        border: 5px solid rgb(50, 148, 63);
        background-color: grey;
        width: 100%;
    }
    .tabsPanelHidden {
        height: 0;
        overflow: hidden;
        visibility: hidden;
        opacity: 0;
        transform: translate3d(0, -30px, 0);
        transition: visibility 0s ease-in .15s, opacity .15s ease-in, transform .15s ease-in;
    }
    .tabsPanelOpen {
        visibility: visible;
        opacity: 1;
        transform: translate3d(0, 0, 0);
        transition: visibility 0s ease-out, opacity .25s ease-out, transform .25s ease-out;
    }

enter image description here enter image description here

最佳答案

那是因为你正在使用 visibility:hidden; 你应该使用 display: none; 请花一点时间阅读 this question 上的差异

关于javascript - 为什么隐藏一个元素后有一个空白空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58855164/

相关文章:

javascript - 数据表按日期正确排序

javascript - 如何在 angular2 模板中使用 Electron 的 webview html 元素?

javascript - 查找适用于元素的所有 CSS 规则

html - Twitter bootstrap 中心表格列内容垂直和水平

html - 如何让元素填充父级的 100% 高度

javascript - jest.fn().mockReturnValue ("hello") 在 beforeAll() 中调用但不在 beforeEach() 中调用时返回未定义

jquery one() 在 chrome 中不能正常工作

html - 最大/最小宽度使用最大可能宽度

HTML CSS : odd behavior that I can't understand, 添加边框时多余空间消失

javascript - 检查 DOM 元素是否可以与之交互