时间:2011-01-14 21:51:26

标签: css spacing paragraph

我在这里的第一篇文章,不幸的是,它不会那么令人兴奋,我需要一个包含IE6的答案。

为了在段落之间获得空间,我正在为我的<p>标签设置样式:

div.content_cms p {
 margin-top: 0px;
 margin-bottom: 15px;
 padding: 0px 15px 0px 0px;
}

边距底部以展开段落。这当然很好。但是我还需要用html设置链接样式:

<p><a href="#">Text</a> </p>

如上例所示有链接时,我不希望应用margin-bottom。我试着解决这个问题:

div.content_cms p a {
 margin-bottom: 0px !important;
}

这当然不起作用。

我正在使用jQuery向<a>标签添加一个类,因此我可以自动为链接添加一个图标。我尝试添加

margin-bottom: 0px !important;

到我正在使用jQuery添加的类,但这也不起作用。

<p>paragraphs</p>与文字之间设置间距的最佳方式是什么,而不是带链接的段落?

谢谢。

3 个答案:

答案 0 :(得分:1)

您可以使用jQuery轻松完成此操作:

$('p').has('a').css('margin-bottom', 0);

现场演示: http://jsfiddle.net/NyjvT/


如果您需要设置多个样式,请考虑以下事项:

$('p').has('a').addClass('whatever');

CSS:

p.whatever { margin-botttom:0; font-size:20px; ... }

答案 1 :(得分:0)

我认为你不能。

您最好的选择是为这些特定的<p>元素添加一个类,并覆盖这些元素的边距:

div.content_cms p.nomargin {
    margin-bottom: 0px;
}

<p class="nomargin"><a href="#">Text</a></p>

如果在服务器端无法做到这一点,你可以做一些jQuery hackery来处理它。

也许有一些可以使用的CSS3魔法,但我不确定;而且既然你想要IE6支持,那么无论如何都是不可能的。

答案 2 :(得分:0)

仅使用CSS无法实现。

CSS(层叠样式表)仅适用于文档树。

原因在于表现。

欲了解更多信息,请阅读:

http://snook.ca/archives/html_and_css/css-parent-selectors

http://www.shauninman.com/archive/2008/05/05/css_qualified_selectors#comment_3940

你需要使用javascript才能工作。