如何在网格容器中安装Flex容器

时间:2018-05-08 07:15:18

标签: css reactjs css3 flexbox css-grid

我正在尝试装入一个在网格容器内两边都有边距的弹性容器,但是在最小的视口宽度下,flex容器会泄漏出来。我已经为相应的div添加了边框,以显示其泄漏的位置。

我还添加了一个演示来展示我的问题:https://codesandbox.io/s/9z49m3ny0p

如果演示不明确,请查看以下截图:

Lowest viewport Medium viewport

从上面的屏幕截图中可以看出,红色边框始终位于视口内,但蓝色边框容器会溢出。

Home.js

test()

Home.css

<div id="rightContainer">
    <div id="editorContainer">
        <Notepad />
    </div>
    <div id="notesCardContainer">
        <NoteCard />
        <NoteCard />
    </div>
</div>

Notepad.js

#editorContainer {
  display: grid;
  width: 100%;
  position: relative;
  border: 1px solid red;
}
#notesCardContainer {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  flex-direction: row;
  justify-content: space-evenly;
  padding-bottom: 60px;
}

来自Notepad.css的片段

<div className="editorInnerContainer">
    <div className="editorTop">
        <input
         type="text"
         id="noteTitle"
         value="Some Title"
         disabled={true}
        />
        <div id="tools">
            <a href="" title="Edit this note">
                <i className="fas fa-pencil-alt" />
            </a>
            <a href="" title="Delete this note">
                <i className="fas fa-trash" />
            </a>
            <a href="" title="Download this note">
                <i className="fas fa-download" />
            </a>
            <a href="" title="Share this note">
                <i className="fas fa-share-square" />
            </a>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

看看这个: https://codesandbox.io/s/2v0o67w4kn

#noteTitle {
    flex: 1;
    height: 60px;
    font-size: 18px;
    line-height: 17px;
    font-weight: 700;
    border: none;
    color: var(--black);
    border: 2px solid sandybrown;

    /* add width */
    width: 100%;
    max-width: 100%;
}

如果您还要调整边框问题,请将宽度设置为100% - 通过计算添加的边框大小:https://codesandbox.io/s/l7rk0zop69

#noteTitle {
    width: calc(100% - 6px);
    max-width: calc(100% - 6px);
}