首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用文本转换在CSS中强制大写输入到标题大小写

使用文本转换在CSS中强制大写输入到标题大小写
EN

Stack Overflow用户
提问于 2009-06-23 16:20:20
回答 7查看 22.8K关注 0票数 18

我正在创建一个CMS的主题,只有能力改变与页面相关联的CSS (没有Javascript,PHP等)。

有没有办法更改我们已有的用户列表:

约翰·史密斯

大卫·琼斯

..。

使用CSS转换成合适的标题大小写(John Smith等)?

text-transform: lowercase;运行正常(john smith等),但text-transform: capitalize;什么也不做(保持大写)。

根据请求,HTML为:

代码语言:javascript
复制
<tr> [...] <td class="cell c1">ALEXANDER MULLER</td> [...] </tr>
<tr> [...] <td class="cell c1">JOHN SMITH</td> [...] </tr>

CSS是:

代码语言:javascript
复制
td {
    text-transform: capitalize;
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-06-23 16:36:37

text-transform: capitalize;只修改每个单词的第一个字母,因此如果单词的第一个字母已经大写,文本转换将跳过该单词。

示例:

JoHN smith将成为JoHN Smith

除非你所有的单词都是小写的,否则不可能只使用CSS来实现标题大小写。

票数 23
EN

Stack Overflow用户

发布于 2014-09-15 21:46:17

我们可以使用一个技巧来做到这一点。但是要注意浏览器的兼容性。https://developer.mozilla.org/en-US/docs/Web/CSS/::first-letter

代码语言:javascript
复制
p{
  text-transform: lowercase;
 }

p:first-letter{
  text-transform: uppercase;
}

例如:

代码语言:javascript
复制
    this is some text. 

代码语言:javascript
复制
  This is SOME text.

代码语言:javascript
复制
  this IS some TEXT.

输出->这是一些文本

票数 8
EN

Stack Overflow用户

发布于 2009-06-23 16:47:56

你正在体验的是它是如何工作的。这是来自the spec

"capitalize将每个单词的第一个字符大写;其他字符不受影响。“

现在,您可以这样做(我假设您有一个带有列表项<li>标记的列表:

代码语言:javascript
复制
li:first-letter {
    text-transform: uppercase;
}

以及你的小写的li,但组合起来只会影响每行的第一个单词,所以你会得到:

代码语言:javascript
复制
John smith
David jones

我不相信这里有一个适合你的纯CSS解决方案。这是棘手的,因为像John McCain,Oscar de la Hoya,John Smith PhD,Jane Smith MD这样的名字,以及像danah boyd或e.e这样喜欢小写的人。卡明斯。当你尝试使用标题大小写时,总是有例外的。这些异常会让你头疼。如果你不能控制内容,内容会让你头疼。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1033664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档