3

Is there a way to check(in CSS) if an element is breaking/new lining? I can't know the width of the divs or the parent. I only want to know the first element after the break, so I can add special CSS to this element

Like this:

<div>
  first
</div>    
<div>
  second
</div>  
<div>
  third
</div>  
<div>
  fourth
</div>

the css:

div {
    float:left;
    width:200px;
    height:20px;
}
div:not(:first-child) {
    padding-left:10px;
}

here i need a check if the element is on a new line so I can remove the padding :

div:first-after-break {
    padding-left:0;
}
4

3 回答 3

3

我认为在这种情况下,您可能可以通过使用padding-right来分隔元素,而不是padding-left. 这样,元素在新行开始时不会缩进。如果padding-right在行尾导致问题,您可以考虑使用:last-child伪选择器(有关更多信息:last-child),并在padding-right: 0;那里设置。

不过,这并没有放弃这个问题。我可以想到:first-after-break您描述的伪的合法用途。例如:使用浮动块级元素的完全响应式布局。在这种情况下,人们可能想知道某个元素是否位于窗口的左侧。

于 2012-08-16T12:07:46.273 回答
1

您可以使用::first-line伪元素来获取 div 的第一行。如果要将样式规则应用于不是第一行的行,则可以将这些样式应用于整个元素,然后将其从第一行中删除。但是如果你想专门使用该padding属性,你也可以text-indent在整个元素上设置(没有任何伪元素)。

于 2012-08-16T10:41:55.557 回答
0

不,我认为 CSS 中没有一种方法可以满足您的要求。

除非指定宽度,否则 DIV 会自动占据其父级的整个宽度,因为它是 BLOCK 级别元素,因此如果未指定宽度,那么您的第二个 DIV 无论如何都会在新行上。

于 2012-08-16T10:36:40.383 回答