如何有条件地否定段落标记上的文本缩进

时间:2013-03-26 13:53:54

标签: html css margins text-indent

我有一个.content CSS类,缩进55px。在某些情况下,我想在段落的开头包含一个链接,但这个链接我不想缩进。

除了创建一个不包含缩进的新.content2类之外,还是使用直接应用于链接的类来否定缩进吗?

我尝试使用通过调用链接格式的类来应用于链接的负缩进值,但这似乎只会改变链接自己的框中的文本,而实际上我希望链接框是没有缩进。

有问题的网页:http://www.fccorp.us/development/index.jfx.php

非常感谢图片snaplemouton!

这提出了一个新的但相关的问题:多个类的级联顺序是什么?我在firefox中测试(当前版本19.0.2,非beta),链接通常使用两个类,但某些类使用第三个类。

- 更新 -

我的编辑删除了一个类(虽然我的css文件中需要9个额外的行)但是需要工作。但这并没有解决我的保证金问题:

第一个类配置链接的“框”(框模型)的外观,包括边距以及配置链接文本的外观(链接,访问,活动)。现在的第二类(以前称为第三类)仅在这些链接放在段落中时使用,用于否定因链接在段落内而不再适用的值。我设置了顶级&通过第一类的底部边距,适用于(几乎)每个按钮。对于(现在)第二类,我试图否定放在段落中的少数链接的边距。但由于某些原因,那些通过第二类使用0px(零)的边际值而被否定的值不会被改变。他们保留了第一堂课所赋予的价值。

(正如我输入的那样,我意识到如何消除调整链接/访问/活动属性的键,因此现在正在改变。但我怀疑这会改变什么。如果确实如此,我会更新它。 ) - 正如我在更新中所说的那样,这一改变并没有解决边缘没有消除的问题。

然而,我是否需要通过使用负数来实际否定它们,而不是试图取消现有的边距?这应该有效,但我认为CSS级联意味着某些样式会覆盖其他样式,如果它们相互矛盾的话。或者他们加在一起?

3 个答案:

答案 0 :(得分:3)

有多种方法可以做到这一点。通过覆盖边缘或填充(请参阅编辑3中的链接),将缩进设置为0,或者按照我喜欢的方式,通过对内容使用宽度为100%的宽度div元素并将其浮动到左侧。

<div style="float:left; width:100%;">
     <a style="float:left">stuff</a>
</div>

编辑:它还应该修复锚点旁边有一行的文本。如果你真的希望你的横幅文本正确,你可以删除div并简单地浮动左边的锚。

我更喜欢使用Div,因为它非常灵活,允许您真正设置或删除空白空格,就像您希望的那样。

编辑2:我甚至制作了一幅油漆图片来向您展示其中的差异。 :)

enter image description here

编辑3:要回答你的新问题,这里有一个链接,可以解释关于级联顺序的所有内容。

http://monc.se/kitchen/38/cascading-order-and-inheritance-in-css

基本上是最重的胜利。如果两者具有相同的重量,后者总是赢。 (无论哪个最后都会生效。)

按顺序:样式直接添加到元素&gt;样式表&gt;默认

内部样式表,#id&gt; .class&gt;元件

如果有多个相同,则最后一个将获胜。

编辑4:对不起,我在答案中的第二句错了。我编辑了它。

您只需将其添加到锚点

即可
margin-left:0px;
margin-bottom: 0px;
margin-top: 0px; 

删除保证金。

答案 1 :(得分:3)

CSS Cascade

级联主要由特异性决定。以下是优先级列表,从高到低。

1. !important modifier
2. Dynamically-applied styles using JavaScript
3. Inline styles specified using the style attribute
4. Specificity of the selector (higher specificity wins)
      (a)  #id                                 (100 points each)
      (b)  .class, :pseudo-class, [attribute]  ( 10 points each)
      (c)  element, ::pseudo-element           (  1 point each )
      (d)  *                                   (  0 points each)
5. Whichever one appears last

最后应用具有最高优先级的样式。在平局中,代码中稍后出现的那个胜出。

这有点过于简单化,但它应该传达基本的想法。更详细:

  • 类,伪类或属性可以击败任意数量的元素或伪元素。
  • id击败任意数量的类,伪类或属性。
  • 通过静态HTML或JavaScript设置的内联样式可以击败任意数量的ID。
  • 最重要的是,!important修饰符的样式会在没有它的情况下击败任何样式。

特异性示例

                 formal         informal
selector         notation       notation
---------        --------       --------
* {}             0,0,0,0        0000
div {}           0,0,0,1        0001
.a {}            0,0,1,0        0010
#a {}            0,1,0,0        0100
div#a.b.c {}     0,1,2,1        0121

此外,内联样式的特殊性是1000点(1,0,0,0)。

答案 2 :(得分:1)

text-indent: 0px;

CSS属性。

否定该值并将其用于链接的左侧或左侧边距,将得到您想要的结果。

<p style="text-indent:40px;">
    <a hre="#" style="margin-left:-40px;" onclick="this.style.display='none';">Un-indent</a> blah blah blah blah blah</p>