Javascript 对链接中的每个单词应用大写字母

Javascript 对链接中的每个单词应用大写字母,javascript,html,css,capitalization,Javascript,Html,Css,Capitalization,我想重新创建在使用CSS字体和下拉式大写时看到的菜单效果 我知道我可以用 p.introduction:first-letter { font-size : 300%; } 这会给我第一个单词的第一个字符更大,但我想把它应用到每个单词上。我猜CSS(3)是没有办法做到这一点的。我的最佳选择是javascript吗?我已经在页面上找到了Moo,所以这将是我首选的方法 我不想为我的链接添加额外的HTML来实现这一点 谢谢为什么不在菜单上试试这个呢: li {text-transform: uppe

我想重新创建在使用CSS字体和下拉式大写时看到的菜单效果

我知道我可以用

p.introduction:first-letter {
font-size : 300%;
}
这会给我第一个单词的第一个字符更大,但我想把它应用到每个单词上。我猜CSS(3)是没有办法做到这一点的。我的最佳选择是javascript吗?我已经在页面上找到了Moo,所以这将是我首选的方法

我不想为我的链接添加额外的HTML来实现这一点


谢谢

为什么不在菜单上试试这个呢:

li {text-transform: uppercase;}
li:first-letter { font-size:150%; }
看起来这会有所帮助,尽管它是针对jQuery的,而不是Moo。

您可以使用toUpperCase();javascript函数使所有字母大写。例如:

var str="This is my 1st new tutorial 123";
var a1 = str.toUpperCase();
document.write(a1);
因此,在您的例子中,我将获取您希望大写的所有元素的内容,并将toUpperCase()函数应用于字母

Mootools版本: HTML:

这是一个

这不是大写字母(这是指在一段开头有一个大写字母,有三行或四行)。这是小盘股

最简单的方法是找到一个小大写字体,并大写每个字。遗憾的是,我在google web font api上找到的唯一一种大写字体可能没有正确的字符:


基于这些其他答案,我不确定我是否理解这个问题。但是,根据我的理解,如果你想要确切的效果,这必须用JS来完成。不过没什么好抱怨的

这将在每个单词的第一个字母周围添加一个跨度,并对其应用一个类。你可以做任何你想在你的css中的第一个字母之后

  $$('p.introduction').each(function(el) {
    var text = el.textContent || el.innerText;
    el.innerHTML = text.replace(/\b(\w)([^\b]*?)/g, function(match, first, remainder) {
      return ['<span class="first-letter">', first, '</span>', remainder].join('');
    });
  });
$$('p.introduction')。每个(函数(el){
var text=el.textContent | | el.innerText;
el.innerHTML=text.replace(/\b(\w)([^\b]*?)/g,函数(匹配,第一个,剩余){
return['',first',rements].join('');
});
});
试试这个:

字体变体:小大写字母


它适用于所有浏览器。

文本转换:大写
,但这并不能让你达到目的。你是否试图将所有字母大写?@kjy112不,大写只会将每个单词的第一个字母大写。我曾尝试使用javascript而不是css。@hemlock哈哈,没什么大不了的,但现在我知道cssClose中现在有一个大写字母,但字体变体是:小大写字母起作用,但字体需要合适。不过,这是迄今为止最接近的答案。我会看看是否有人可以推荐一种字体。只有当你嵌入的字体在实际的字体文件中有小的大写字母时。
$$('#mylist li').each(function(el) {
    console.log(el.getElement('a').innerHTML.toUpperCase());
});
  $$('p.introduction').each(function(el) {
    var text = el.textContent || el.innerText;
    el.innerHTML = text.replace(/\b(\w)([^\b]*?)/g, function(match, first, remainder) {
      return ['<span class="first-letter">', first, '</span>', remainder].join('');
    });
  });