代码之家  ›  专栏  ›  技术社区  ›  AFetter

css第一个字母排除其他标记

  •  0
  • AFetter  · 技术社区  · 12 年前

    我有一个由WordPress生成的页面,它的HTML看起来与下面的HTML相似。我想要我的第一封信 div 有不同的尺寸,但当我尝试为 p:first-letter 全部的 p ’s change size。我的问题是我无法删除 p -标签,因为这些是自动创建的。

    <div class="div">
        <p>Paragraph 1</p> <!-- I need "P" in "Paragraph" in different size -->
        <p>Paragraph 2</p>
        <blockquote><p>Text blockquote</p></blockquote>
    </div>
    

    有什么建议吗?

    http://jsfiddle.net/hdNDh/

    3 回复  |  直到 12 年前
        1
  •  5
  •   Community Mohan Dere    9 年前

    使用 CSS child selector > .

    E>F -匹配作为元素E的子元素的任何F元素。

    jsFiddle

    .div > p:first-letter {
        font-size:40px;
    }
    

    编辑: 如果你需要第一封信的话,一开始我似乎误解了你的问题 div 只需在 分区 而不是在 p .

    jsFiddle

    .div:first-letter {
        font-size:40px;
    }
    

    第2版: 正如下面的评论中所提到的,要在FF中工作,您需要:

    .div > p:first-child:first-letter {
        font-size:40px;
    }
    

    jsFiddle

    这看起来很奇怪/奇怪,所以我环顾四周,Firefox似乎对 :first-letter 伪类,而不是其他浏览器。一个例子是它没有 count special characters to be letters ,因此不会将样式应用于它们。

    刚才测试的结果:Firefox 不算数 这个 第一个子元素的第一个字母 在其内部遇到的第一个字母,包括子元素(即使前面没有文本) ,而铬 确实有意义 第一个子元素的第一个字母 在其内部遇到的第一个字母,包括子元素(当前面没有文本时) .

        2
  •  1
  •   isherwood    12 年前

    您需要一个选择器组合:

    http://jsfiddle.net/hdNDh/5/

    .div > p:first-child:first-letter {
        font-size:40px;
    }
    
        3
  •  1
  •   Adrift    12 年前

    您可以使用:

    .div > p:first-child::first-letter {
        font-size: 24px;
    }
    

    http://jsfiddle.net/hdNDh/2/