【问题标题】:CSS multiple columns: column-span not workingCSS多列:列跨度不起作用
【发布时间】:2013-12-18 22:09:44
【问题描述】:

我正在使用 CSS 将 main 容器拆分为几列。这完美地工作,但h1 元素应该有一个colspan。它没有。这是我的代码:

HTML:

<main class="four col">
    <h1>Heading</h1>
    <p>
        Lorem ipsum dolor sit amet
    </p>
</main>

CSS:

main
{
    overflow: hidden;
    width: 100%;
    float: left;
}
.col h1
{
    -moz-column-span:       all;
    -webkit-column-span:    all;
    column-span:            all;
}
.four
{
    width: 66.67%;
}
.col
{
    -moz-column-count:          2;
    -moz-column-gap:        1.5em;
    -webkit-column-count:       2;
    -webkit-column-gap:     1.5em;
    column-count:               2;
    column-gap:             1.5em;
}

有什么办法可以解决这个问题吗?

【问题讨论】:

  • 您的标题令人困惑!你是在说colspan 还是column-span
  • 您在什么浏览器中试用,column-span 并非所有浏览器都支持:w3schools.com/cssref/css3_pr_column-span.asp
  • 请不要在此处链接到 w3schools,它是一个仅对初学者有用的网站,不应用作专业参考,因为它是错误信息和不良编码实践的来源。请使用更正确的来源,例如MDN
  • 为此目的使用引导程序
  • column-span,编辑了,很抱歉把它弄混了。我正在使用 Safari,我知道它在我的浏览器中有效。 @r3mus:我看不出有什么区别:我也有一个带有 column-countcolumn-gap 的容器元素;并且所有子 h1 元素应该列跨越所有列。我的 Lorem ipsum 内容在现实中当然更长,这只是为了不搞砸。

标签: css html-table multiple-columns


【解决方案1】:

更新 2:

最终的工作示例:

<main class="four">
  <div class="col">
    <h1>Heading</h1>
    <p>
        Lorem ipsum dolor sit amet
    </p>
  </div>
</main>

在与问题相同的 CSS 中。


更新:

overflow: hidden; float: left; 在 css main 样式上覆盖了 column-span 属性。删除它们,它可以工作。


您的代码运行良好,只是您的 CSS 有点笨拙,h1 应该嵌套在 classed 元素中。这是一个工作示例:

HTML

<div class="newspaper">
    <h1>Heading, my glorious long heading.</h1>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius.
</div>

CSS

.newspaper
{
    -webkit-column-count:3; /* Safari and Chrome */
    -moz-column-count:3; /* Firefox */
    column-count:3;
}

h1 {
    -webkit-column-span: all;
    -moz-column-span: all;
    column-span: all;
}

这是jsFiddle

【讨论】:

  • 但它嵌套在main 容器内,还是我遗漏了什么?
  • 也许我是盲人,但我真的看不出有什么区别:我还有一个容器元素main,带有column-count和column-gap;并且所有子 h1 元素应该列跨越所有列。我的 Lorem ipsum 内容在现实中当然更长,这只是为了不搞砸。
  • 叫我疯了,但是将&lt;main&gt; 更改为&lt;div&gt; -- 会发生什么?
  • 嘿,对不起,我的错。从您的 CSS 中的 main 中删除 overflow: hidden;。没有意识到它是应用于元素,而不是类,因此将 main 更改为 div 会删除该样式。
  • 这对我帮助很大。如果我将这些样式附加到divmain,它们将不起作用:overflow: hidden; width: 100%; float: left;。如果我将它们全部注释掉,它将起作用。如果我只删除其中的一两个,它不会。但我需要这些样式,尤其是float。有什么想法吗?
猜你喜欢
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
  • 2019-10-27
  • 2020-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多