如何使用CSS将大写文本转换为标题大小写

时间:2012-12-10 01:08:22

标签: css

如果您正在阅读此内容,您可能会注意到CSS属性text-transform:capitalize;未将此信息转换为此信息。相反,非初始字符保持大写,因此转换在这种情况下无效。那么我们怎样才能实现这个结果呢?

我经常看到这个问题,大多数答案很快就会使用javascript进行推广来完成此任务。这将有效,但如果您正在为Word CMS,Drupal或Joomla等PHP CMS编写或自定义模板/主题,则无需这样做。

5 个答案:

答案 0 :(得分:12)

在某种程度上,您可以使用CSS使用伪类::第一个字母来实现这一点,并且应该一直回到IE 5.5 :-(

注意:这非常依赖于您的html结构,并不会在所有情况下都有效,但可能会不时有用。点击"运行代码段"看到下面的结果。



.progTitle {
    text-transform: lowercase;
}

.progTitle::first-letter {
    text-transform: uppercase;
}

<p class="progTitle">THIS IS SOME TEST TEXT IN UPPERCASE THAT WILL WORK. </p>
<p class="progTitle">this is some test text in lowercase that will work. </p>
<p class="progTitle"><i class="fa fa-bars"></i> THIS WILL NOT WORK </p>
&#13;
&#13;
&#13;

答案 1 :(得分:10)

坏消息是没有text-transform : title-case这样的东西可以保证结果是标题。好消息是有一种方法可以做到这一点,这不需要javascript(通常建议用于这种情况)。如果您正在为CMS编写主题,则可以使用strtolower()和ucwords()将相关文本转换为标题大小写。

之前(这不行):

<style>
.title-case{ text-transform:capitalize; }
</style>
<span class="title-case">ORIGINAL TEXT</span>

在:

<?php echo ucwords( strtolower('ORIGINAL TEXT') ); ?>

如果您正在编写主题,您可能会使用变量而不是文本字符串,但函数和概念的工作方式相同。这是一个使用原生Wordpress函数get_the_title()将页面标题作为变量返回的示例:

<?php
$title = get_the_title();
$title = strtolower($title);
$title = ucwords($title); 
<h1>
<?php echo $title;
</h1> 
?>

希望这有助于某人。快乐的编码。

答案 2 :(得分:0)

以下是运行Virtuemart 1的Joomla 1.5.22网站中的一个工作示例。目的是获取一个最初为大写的字符串,并将其转换为正确的案例。

大写:

<?php echo $list[$i]->name; ?>

正确案例:

<?php echo ucwords( strtolower($list[$i]->name) ); ?>

答案 3 :(得分:-4)

这可以通过一个简单的规则来实现:

text-transform: capitalize;

答案 4 :(得分:-5)

您只需撰写text-transform: none;