css - 在列数中使用分隔符

标签 css column-count

我想在使用 CSS 的 column-count 时在每一列中使用分隔符。

HTML:

<ul class="channel_list">
    <li><input class="channels" type="checkbox" name="7" value="y">&nbsp;Channel 1</li>
    <li><input class="channels" type="checkbox" name="8" value="y">&nbsp;Channel 2</li>
    <li><input class="channels" type="checkbox" name="9" value="y">&nbsp;Channel 3</li>
    <li><input class="channels" type="checkbox" name="6" value="y">&nbsp;Channel 4</li>
    <li><input class="channels" type="checkbox" name="5" value="y">&nbsp;Channel 5</li>
</ul>

CSS:

.channel_list{
    -webkit-column-count: 3; /* Chrome, Safari, Opera */
    -moz-column-count: 3; /* Firefox */
    column-count: 3;
}
.channel_list li{ list-style: none}

我想要什么—— enter image description here

我尝试:

.channel_list li{ border-right: 5px solid red}

Only the border at the right side of the li's but not in the last column.

最佳答案

如果我对这个问题的理解是正确的,你可以使用 column-rule property 来实现。 .它是一个简写属性,由column-rule-widthcolumn-rule-colorcolumn-rule-style组成。这三个常用属性的工作方式与 border-widthborder-colorborder-style 完全相似。 column-rule-style 支持 border-style 支持的所有值。

请注意,您无法生成圆 Angular 分隔符(也就是说,没有等效于 border-radius 的东西)。

(属性 still needs vendor prefixes in all browsers other than IE! .)

.channel_list {
  padding: 0;
  text-align: center; /* make the separator look like it is in middle */
  -webkit-column-count: 3;  /* Chrome, Safari, Opera */
  -moz-column-count: 3;  /* Firefox */
  column-count: 3;
  
  /* just for spacing */
  -webkit-column-gap: 20px;
  -moz-column-gap: 20px;
  column-gap: 20px;
}
.channel_list li {
  list-style: none;
}
.channel_list.solid {
  -webkit-column-rule: 5px solid red;
  -moz-column-rule: 5px solid red;
  column-rule: 5px solid red;
}
.channel_list.dashed {
  -webkit-column-rule: thin dashed chocolate;
  -moz-column-rule: thin dashed chocolate;
  column-rule: thin dashed chocolate;
}
.channel_list.dotted {
  -webkit-column-rule: medium dotted rebeccapurple;
  -moz-column-rule: thin dotted rebeccapurple;
  column-rule: thin dotted rebeccapurple;
}
<ul class="channel_list solid">
  <li>
    <input class="channels" type="checkbox" name="7" value="y">&nbsp;Channel 1</li>
  <li>
    <input class="channels" type="checkbox" name="8" value="y">&nbsp;Channel 2</li>
  <li>
    <input class="channels" type="checkbox" name="9" value="y">&nbsp;Channel 3</li>
  <li>
    <input class="channels" type="checkbox" name="6" value="y">&nbsp;Channel 4</li>
  <li>
    <input class="channels" type="checkbox" name="5" value="y">&nbsp;Channel 5</li>
</ul>
<hr>
<ul class="channel_list dashed">
  <li>
    <input class="channels" type="checkbox" name="7" value="y">&nbsp;Channel 1</li>
  <li>
    <input class="channels" type="checkbox" name="8" value="y">&nbsp;Channel 2</li>
  <li>
    <input class="channels" type="checkbox" name="9" value="y">&nbsp;Channel 3</li>
  <li>
    <input class="channels" type="checkbox" name="6" value="y">&nbsp;Channel 4</li>
  <li>
    <input class="channels" type="checkbox" name="5" value="y">&nbsp;Channel 5</li>
</ul>
<hr>
<ul class="channel_list dotted">
  <li>
    <input class="channels" type="checkbox" name="7" value="y">&nbsp;Channel 1</li>
  <li>
    <input class="channels" type="checkbox" name="8" value="y">&nbsp;Channel 2</li>
  <li>
    <input class="channels" type="checkbox" name="9" value="y">&nbsp;Channel 3</li>
  <li>
    <input class="channels" type="checkbox" name="6" value="y">&nbsp;Channel 4</li>
  <li>
    <input class="channels" type="checkbox" name="5" value="y">&nbsp;Channel 5</li>
</ul>

关于css - 在列数中使用分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37850171/

相关文章:

javascript - 如何根据容器大小设置字体大小?

jquery - 让我的翻转 div 响应

css - 如何将元素与列数居中对齐?

css - Chrome 升级使链接后续列链接不可点击

CSS 列重叠/溢出

css - 跳转 iframe 内容的 Chrome 列布局问题

jquery - 部分文本应使用纯 html css(无 JavaScript 或 jQuery)在 Carousel 中更改

css - Joomla Jform 单选按钮未与其标签水平对齐

html - 背景图片不会在手机上显示 (iPhone 6s)

html - 尝试创建列 HTML CSS