首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PrismJs没有溢出CSS网格

PrismJs没有溢出CSS网格
EN

Stack Overflow用户
提问于 2019-04-18 01:52:10
回答 1查看 964关注 0票数 3

我有一个页面布局的弹性内容div和一个固定的宽度列在右边。为此,我有以下基本结构:

代码语言:javascript
复制
<div class="grid">
  <div class="content">
    Content here
  </div>
  <div class="column">
    Fixed right column
  </div>
</div>

和CSS:

代码语言:javascript
复制
.grid {
    display: grid;
    grid-gap: 10px;
    grid-template-columns: auto 280px;
    width: 500px;
}

.content {
  background: tomato;
}

.column {
  background: deepskyblue;
}

我期望auto内容能够填充总空间减去固定的列宽。这种情况确实会发生,除非div的内容(作为棱镜标记)溢出该宽度。它不是在PrismJs上生成水平滚动条,而是简单地溢出内容div并进一步向右推列。

关于如何使滚动条出现在div上而不是按下列的任何想法吗?

请注意,如果我为内容宽度设置了一个固定值,它就会像预期的那样工作。

下面是一个例子:

代码语言:javascript
复制
.grid {
    display: grid;
    grid-gap: 10px;
    grid-template-columns: auto 280px;
    width: 500px;
}

.content {
  background: tomato;
}

.column {
  background: deepskyblue;
}
代码语言:javascript
复制
<link rel="stylesheet" href="https://cdn.jsdelivr.net/prism/1.2.0/themes/prism.css">
    <link href="https://cdn.jsdelivr.net/prism/1.2.0/themes/prism-coy.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/prism/1.2.0/prism.js"></script>


<div class="grid">
  <div class="content">
    <pre><code class="language-javascript">@Component({
        selector: "main",
        directives: [],
        template: `
            &lt;button
                (tap) = "onTapMe()"
                text = "tap me" /&gt;
        `
    })
    class MainPage {
        onTapMe() {
            alert("Hello from Angular 2");
        }
        // long coment pushing the right column further right !!!
    }
    </code></pre>
  </div>
  <div class="column">
  
  </div>
</div>

这里有一个可以玩的小提琴:https://jsfiddle.net/4crm25pq/1/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-18 02:11:18

默认情况下,网格项有min-width: automin-height: auto (就像flex项一样)。因此,您可以设置min-width: 0并添加oveflow: auto来修复这个问题--参见下面的演示:

代码语言:javascript
复制
.grid {
    display: grid;
    grid-gap: 10px;
    grid-template-columns: auto 280px;
    width: 500px;
}

.content {
  background: tomato;
  min-width: 0; /* added */
  overflow: auto; /* added */
}

.column {
  background: deepskyblue;
}
代码语言:javascript
复制
<link rel="stylesheet" href="https://cdn.jsdelivr.net/prism/1.2.0/themes/prism.css">
    <link href="https://cdn.jsdelivr.net/prism/1.2.0/themes/prism-coy.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/prism/1.2.0/prism.js"></script>


<div class="grid">
  <div class="content">
    <pre><code class="language-javascript">@Component({
        selector: "main",
        directives: [],
        template: `
            &lt;button
                (tap) = "onTapMe()"
                text = "tap me" /&gt;
        `
    })
    class MainPage {
        onTapMe() {
            alert("Hello from Angular 2");
        }
        // long coment pushing the right column further right !!!
    }
    </code></pre>
  </div>
  <div class="column">
  
  </div>
</div>

您可以在下面看到这种行为的一些例子:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55738093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档