首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"break-inside: avoid-column“在Firefox中不起作用

"break-inside: avoid-column“在Firefox中不起作用
EN

Stack Overflow用户
提问于 2018-06-04 19:36:22
回答 6查看 5.7K关注 0票数 9

我正在我的页脚中创建列。它在Chrome和IE上运行良好,使用:

代码语言:javascript
复制
column-count: 4;
break-inside: avoid-column;

我在Firefox上遇到了麻烦,它的属性被划掉了:

我能做什么?

使用page-break-inside: avoid,我得到了类似于this的东西。有些项目会移到他的位置上,比如“项目9”。

它在Chrome中的外观:

例如:

代码语言:javascript
复制
#columnasFooter{
  column-count: 3;
}
#columnasFooter li{
  break-inside: avoid-column;
  page-break-inside: avoid;
}
代码语言:javascript
复制
<ul id="columnasFooter">
    <li>Title column 1
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
            <li>Item 5</li>
            <li>Item 6</li>
            <li>Item 7</li>
            <li>Item 8</li>
        </ul>
    </li>
    <li>Title column 2
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
            <li>Item 5</li>
            <li>Item 6</li>
            <li>Item 7</li>
            <li>Item 8</li>
            <li>Item 9</li>
        </ul>
    </li>
    <li>Title column 3
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
            <li>Item 5</li>
        </ul>
    </li>
</ul>

EN

回答 6

Stack Overflow用户

发布于 2019-01-28 19:21:25

我试着用page-break-inside: avoid修复错误,但对我来说,在火狐上只有这个属性和值就不能很好地工作。

然后我使用了以下解决方案,在我的例子中,在Firefox,Chrome和Edge上都能很好地工作:

代码语言:javascript
复制
#columnasFooter {
  column-count: 3;
}

#columnasFooter li {
  /* for Chrome and Edge */
  break-inside: avoid-column;
  /* for Firefox */
  display: inline-grid;
  page-break-inside: avoid;
}

/* for Chrome and Edge */
@supports (break-inside: avoid-column) {
  #columnasFooter li  {
    display: block;
  }
}

如你所见,我使用了@supports规则来修复错误。也许,它会对某些人有用

票数 12
EN

Stack Overflow用户

发布于 2020-08-18 23:28:08

在火狐和overflow: hidden上都能正常工作,但在Chrome上就不行了。因此,我们应该使用@support查询来控制溢出。下面的代码在Chrome和Firefox中运行良好。

代码语言:javascript
复制
#columnasFooter {
  column-count: 3;
}

#columnasFooter li {
  break-inside: avoid-column;
  page-break-inside: avoid;
  overflow: hidden; /* fix for firefox */
}

@supports (break-inside: avoid-column) {
  #columnasFooter li {
    overflow: visible; /* for chrome */
  }
}
代码语言:javascript
复制
<ul id="columnasFooter">
  <li>Title column 1
    <ul>
      <li>Item 1</li>
      <li>Item 2</li>
      <li>Item 3</li>
      <li>Item 4</li>
      <li>Item 5</li>
      <li>Item 6</li>
      <li>Item 7</li>
      <li>Item 8</li>
    </ul>
  </li>
  <li>Title column 2
    <ul>
      <li>Item 1</li>
      <li>Item 2</li>
      <li>Item 3</li>
      <li>Item 4</li>
      <li>Item 5</li>
      <li>Item 6</li>
      <li>Item 7</li>
      <li>Item 8</li>
      <li>Item 9</li>
    </ul>
  </li>
  <li>Title column 3
    <ul>
      <li>Item 1</li>
      <li>Item 2</li>
      <li>Item 3</li>
      <li>Item 4</li>
      <li>Item 5</li>
    </ul>
  </li>
</ul>

票数 6
EN

Stack Overflow用户

发布于 2018-06-04 19:43:14

Fire fox不支持break-inside查看此处:https://developer.mozilla.org/en-US/docs/Web/CSS/break-inside

SO

使用page-break-inside: firefox的:

代码语言:javascript
复制
column-count: 4;
break-inside: avoid-column;
page-break-inside:avoid;

有关page-break-inside:avoid;的信息,请查看此处:

https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-inside

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

https://stackoverflow.com/questions/50679675

复制
相关文章

相似问题

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