【问题标题】:CSS flex layout - Cropped text & Missing right marginCSS flex布局 - 裁剪文本和缺少右边距
【发布时间】:2014-09-17 03:09:48
【问题描述】:

我正在尝试在简单的图片库 (wip) http://codepen.io/anon/pen/vmhLe 中使用 flex 布局。

<html>
<head>
<style>

.thumbPanel {
    display: flex;
    align-items: center;

    border: 2px solid MidnightBlue;
    background-color: Gray;
}

.thumbAdminMenu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.thumbAdminButton {
    display: inline-block;
    margin: 0px;
    margin-left: 5px;
    flex-shrink: 0;
    flex-grow: 0;

    border: 2px solid MidnightBlue;
    font-size: 20pt;
}

.thumbList {
    display: flex;
    align-items: center;
    margin: 5px;
    overflow: auto;
    width: 100%;

    border: 2px solid MidnightBlue;
    background-color: Gainsboro;
}

.thumbArea {
    min-width: 200px;
    min-height: 200px;
    margin: 5px 0px 5px 5px;

    background-color: LightGoldenRodYellow;
    border: 1px solid MidnightBlue;
}
.thumbArea:first-child,  {
    margin-left: 0px;
}
.thumbArea:last-child {
    margin-right: 5px;
}

</style>
</head>
<body>

<div class="thumbPanel">
    <div class="thumbAdminMenu">
        <button class="thumbAdminButton">AddXXX</button>
    </div>
    <div class="thumbList">
        <div class="thumbArea"></div>
        <div class="thumbArea"></div>
        <div class="thumbArea"></div>
        <div class="thumbArea"></div>
        <div class="thumbArea"></div>
        <div class="thumbArea"></div>
    </div>
</div>


</body>
</html>

结果(浏览器窗口缩小):

http://i.imgur.com/znMcrS2.png

为什么文本 AddXXX 被裁剪?

为什么最右边的黄色div的右边距不见了?我用.thumbArea:last-child 规则设置它。

这里是游乐场:http://codepen.io/anon/pen/vmhLe。在 codepen 和 jsfiddle 上有一个问题,底部水平滚动条溢出(至少在 Chrome 中对我来说)。但是在查看 HTML 文件时,它显示得很好。此外,如果您在 Chrome 中打开开发者控制台,它也会显示正常。

谢谢。

【问题讨论】:

  • 您的第一个问题很容易解决,请将flex:none 添加到.thumbAdminMenu 以防止其缩小。至于右边距......它让我很难过如何修复它。我什至尝试向容器添加填充。
  • @JonP,对于裁剪的文本flex: none 确实有帮助。我也将其缩减为flex-shrink: 0。 (我以为我已经尝试过了)。谢谢。

标签: html css flexbox


【解决方案1】:

我无法在 Firefox 和 Chromium 上重现裁剪文本问题。

您可以通过为包装器添加 ::after 伪元素来解决边距问题:

.thumbList:after {
  content: '';    /* Enabling the pseudo-element */
  min-width: 5px; /* Fake margin */
  height: 1px;    /* Anything but 0 */
}

.thumbPanel {
  display: flex;
  align-items: center;
  border: 2px solid MidnightBlue;
  background-color: Gray;
}
.thumbAdminMenu {
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  align-items: stretch;
}
.thumbAdminButton {
  display: inline-block;
  margin: 0px;
  margin-left: 5px;
  flex-shrink: 0;
  border: 2px solid MidnightBlue;
  font-size: 20pt;
}
.thumbList {
  display: flex;
  align-items: center;
  margin: 5px;
  overflow: auto;
  border: 2px solid MidnightBlue;
  background-color: Gainsboro;
}
.thumbArea {
  min-width: 200px;
  min-height: 200px;
  margin: 5px 0px 5px 5px;
  background-color: LightGoldenRodYellow;
  border: 1px solid MidnightBlue;
}
.thumbList:after {
  content: '';
  min-width: 5px;
  height: 1px;
}
<div class="thumbPanel">
  <div class="thumbAdminMenu">
    <button class="thumbAdminButton">AddXXX</button>
  </div>
  <div class="thumbList">
    <div class="thumbArea"></div>
    <div class="thumbArea"></div>
    <div class="thumbArea"></div>
    <div class="thumbArea"></div>
    <div class="thumbArea"></div>
    <div class="thumbArea"></div>
    <div class="thumbArea"></div>
    <div class="thumbArea"></div>
    <div class="thumbArea"></div>
  </div>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 2013-09-03
    • 2012-01-25
    • 1970-01-01
    • 2012-06-21
    相关资源
    最近更新 更多