为了账号安全,请及时绑定邮箱和手机立即绑定

对p:nth-child(2n),设置column-span:all跨越所有列,结果是奇数行跨列,这是为什么?

明明设置了p:nth-child(2n),为什么是奇数行跨越所有列?

正在回答

6 回答

代码是没问题的,你要理解p:nth-child(2n)的意思,是p的父元素中为偶数的子元素,在这段代码中p元素父亲的第一个子元素是h2标签,第二个子元素是p标签,也就是p类标签的第一个,所以你会认为是奇数行跨列,你把选择器改成p:nth-of-type(2n)就会得到你想要的效果了



1 回复 有任何疑惑可以回复我~
#1

慕仙5556764 提问者

非常感谢!
2016-12-25 回复 有任何疑惑可以回复我~

是否可以上传一张运行结果的截图?

在我这里运行没有问题,第一段p跨列,第二段p分成3列,第三段p跨列,第四段p分成3列,

0 回复 有任何疑惑可以回复我~

找到问题了,你的style标签应该放在title标签后面,否则不能正常解析utf-8,现在可以正常偶数行显示了

下面是修改后的代码

<!doctype html>

<html>

<head>


<meta charset="utf-8">

<title>跨列设置column-span</title>

<style>

.columns {

  padding: 5px;

  border: 1px solid green;

  width: 900px;

  margin: 20px auto;

  

  -webkit-column-count:3;

  -moz-column-count:3;

  -o-column-count:3;

  -ms-column-count:3;

  column-count:3;

  

  -webkit-column-gap: 2em;

  -moz-column-gap: 2em;

  -o-column-gap: 2em;

  -ms-column-gap: 2em;

  column-gap: 2em;

  

  -webkit-column-rule: 3px gray solid;

  -moz-column-rule: 3px gray solid;

  -o-column-rule: 3px gray solid;

  -ms-column-rule: 3px gray solid;

  column-rule: 3px gray solid;

}

h2{

  background: green;

  padding: 10px;

  color: #fff;

}


h2,p:nth-child(2n){

  -webkit-column-span:all;

  -moz-column-span:all;;

  -o-column-span:all;;

  -ms-column-span:all;;

  column-span:all;;

}

</style>

</head>

<body>

<div class="columns">

  <h2>我要分列显示</h2>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

</div>

</body>

</html>


0 回复 有任何疑惑可以回复我~
#1

慕仙5556764 提问者

额,不好意思,style标签确实放错位置了。但是改正后问题依然存在,p标签下的子元素依旧显示奇数行跨列。截图上传不了,能否麻烦你运行下代码看看。谢了。
2016-11-22 回复 有任何疑惑可以回复我~

<!doctype html>

<html>

<head>

<style>

<meta charset="utf-8">

<title>跨列设置column-span</title>

.columns {

  padding: 5px;

  border: 1px solid green;

  width: 900px;

  margin: 20px auto;

  

  -webkit-column-count:3;

  -moz-column-count:3;

  -o-column-count:3;

  -ms-column-count:3;

  column-count:3;

  

  -webkit-column-gap: 2em;

  -moz-column-gap: 2em;

  -o-column-gap: 2em;

  -ms-column-gap: 2em;

  column-gap: 2em;

  

  -webkit-column-rule: 3px gray solid;

  -moz-column-rule: 3px gray solid;

  -o-column-rule: 3px gray solid;

  -ms-column-rule: 3px gray solid;

  column-rule: 3px gray solid;

}

h2{

  background: green;

  padding: 10px;

  color: #fff;

}


h2,p:nth-child(2n){

  -webkit-column-span:all;

  -moz-column-span:all;;

  -o-column-span:all;;

  -ms-column-span:all;;

  column-span:all;;

}

</style>

</head>

<body>

<div class="columns">

  <h2>我要分列显示</h2>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

  <p>为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面。对于文本的多列布局,我想大家并不陌生,因为报纸和杂志上我们随处可见,这种布局在报纸和杂志上都使用了几十年了,但需要在Web页面上实现文本的多列布局,正如下图所示。</p>

</div>

</body>

</html>


0 回复 有任何疑惑可以回复我~

这个需要看一下代码,方法没有问题,可能是你的代码哪里出了bug

0 回复 有任何疑惑可以回复我~
#1

慕仙5556764 提问者

代码我贴在下面,来自课程“十天精通CSS3”的“CSS3 跨列设置column-span”
2016-11-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

对p:nth-child(2n),设置column-span:all跨越所有列,结果是奇数行跨列,这是为什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信