当前位置: 首页 > 面试题库 >

CSS:首字母不起作用

谭建章
2023-03-14
问题内容

我正在尝试将CS​​S样式应用于从Microsoft
Word文档生成的一些HTML代码段。Word生成的HTML相当糟糕,并且包含许多内联样式。它是这样的:

<html>
    <head></head>
    <body>
        <center>
            <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
               style='font-size:12.0pt;line-height:115%;font-family:"Times New Roman"'>Title text goes here<o:p></o:p></span></b></p>

            <p class=MsoNormal style='margin-left:18.0pt;line-height:150%'><span
                style='font-size:12.0pt;line-height:150%;font-family:"Times New Roman"'>Content text goes here.<o:p></o:p></span></p>
    </body>
</html>

…非常简单,我想为标题部分的第一个字母设置样式。它只需要更大并且使用不同的字体即可。为此,我尝试使用:first-letter选择器,例如:

p b span:first-letter {
    font-size: 500px !important;
}

任何想法有什么问题/如何正确设置标题部分的首字母?我可以对标记进行一些细微的更改(例如在事物周围添加包装器div),尽管并非没有困难。


问题答案:

::first-letter不适用于 内联 元素(例如)span::first-letter适用于
元素,如段落,表格标题,表格单元格,列表项,或那些与他们的display属性设置为inline-block

因此,最好使用::first-lettera p代替a span

p::first-letter {font-size: 500px;}

或者,如果您想要一个::first-letter选择器,span则可以这样编写:

p b span::first-letter {font-size: 500px !important;}
span {display:block}

MDN 为这种非显而易见的行为提供了理由:

::first-letterCSS伪元素选择一个块的第一行的第一个字母,如果它不是通过在其线的任何其他内容(例如图像或内联表)之前。

第一条线仅意在块容器箱,因此,::first-letter伪元素仅具有一个上的元件效果display的值blockinline- blocktable-celllist-itemtable-caption。在所有其他情况下,::first-letter均无效。



 类似资料:
  • 问题内容: 我了解使用CSS格式可以通过以下方式设置每个段落的首字母: 但是,使用此代码后,无法从Web浏览器中突出显示/选择这些“首字​​母”,有没有办法对此进行修改? 编辑-可以选择文本,但是看不到它,如何更改呢? 问题答案: 这是Chrome / ium / WebKit中的错误:https : //code.google.com/p/chromium/issues/detail? id =

  • 问题内容: 我想将句子的首字母大写,如果可能的话还要大写逗号后的首字母。我想在这里添加代码: 问题答案: 您可以使用伪元素将元素的首字母大写。 这是仅使用CSS就能获得的最接近的结果。您可以使用javascript(与jQuery结合使用)将每个句点(或逗号,如您所愿)后的每个字母包装在。您可以添加与上述相同的CSS 。或一起用javascript完成。 这是css方法的代码段:

  • 问题内容: THIS IS SOMETEXT 我想使该段的首字母大写。 CSS可能吗? 编辑: 我所有的文本都用大写字母。 问题答案: 您可以使用以使段落的每个单词都大写,如下所示: 在 IE4 +中受支持。 这里的例子 。 [16.5大写:“文本转换”属性] 此属性控制元素文本的大写效果。 将每个单词的第一个字符大写;其他字符不受影响。 将每个单词都用大写字母大写: 在此假设下: 我想使它看起来

  • 本文向大家介绍如何使用CSS实现段落首字母或首字放大效果?相关面试题,主要包含被问及如何使用CSS实现段落首字母或首字放大效果?时的应答技巧和注意事项,需要的朋友参考一下

  • 将字符串首字母大写。 使用数组 解构(destructuring) 和 String.toUpperCase() 大写第一个字母,用 ...rest 获得第一个字母后字符数组,然后 Array.join('') 再次使它成为一个字符串。 省略 lowerRest 参数以保持字符串的剩余部分不变,或者将其设置为 true 这将会使字符串的剩余部分都转换为小写。 const capitalize =

  • 我只是做了一个简单的应用程序,包括FlowPane和一些有按钮的VBoxs。 主类是这样的。 这个画廊.class是扩展FlowPane的主要后台类。 而PlotterPanel就是VBox,有按钮,可以在图库中拖拽。 问题是,当我在图库中拖动绘图器面板时,它第一次就不能被拖动。我在第二次尝试后工作。当我开始拖动时,它显示了拖动框,但是当我尝试放在另一个节点上时,鼠标点显示x符号。但是当目标已经尝