CSS缩进除标题之外的所有内容

时间:2015-11-05 10:13:33

标签: html css css-selectors indentation

我有一个由应用程序生成的html文档。除了h2标题之外,我想缩进本文档中的所有内容。我一直在玩css:不是选择器,但我不能按照我想要的方式工作。

以下是我提出的css以及我用于测试的jsfiddle:http://jsfiddle.net/xm71wr2a/

body :not(h2){
    margin-left: 20px
}

正如你在jsfiddle中看到的那样,p和div是正确缩进的,但它们之间的文本却没有。是否可以将缩进应用于该缩进,或者我是否必须修改html才能实现此目的?我可以访问应用程序的源代码,这样我就可以编辑它生成的输出,但是如果可能的话,我宁愿用css解决这个问题。

2 个答案:

答案 0 :(得分:3)

那么你应该给不带缩进的文本一个标签。什么标签无关紧要,只不是H2标签。如果文本没有标记,CSS样式将不适用。

<h2>Not indented</h2>
<p>THIS SHOULD BE INDENTED</p>
<p>THIS SHOULD BE INDENTED</p>
<div>THIS SHOULD BE INDENTED</div>
<h2>Not indented</h2>

http://jsfiddle.net/xm71wr2a/1/

答案 1 :(得分:0)

容易犯错误,您只是在body:not

之间添加了额外的空格

它应该是:

body:not(h2){
margin-left: 20px;
}

详细说明上一个答案,像你这样的html文本内容至少没有<p>标签,其css文件的可变性非常有限,特别是当你是操作该内容的唯一资源时。

将您想要缩进的内容包装在<p>标记中并将<h2>标记留在您不想缩进的内容周围将创建两者之间的分隔,并允许您操作它们单独用css。

或者,选择html页面的所有元素并对其应用相同的css效果的方法是使用*选择器:

*:not(h2){ margin-left: 20px }

* =所有html DOM元素