Jump to content


Photo

Alterar Cor Da Primeira Palavra Do Conteúdo De Uma Tag


  • Faça o login para participar
11 replies to this topic

#1 Cajado

Cajado

    Turista

  • Usuários
  • 58 posts
  • Sexo:Não informado

Posted 26/11/2009, 08:08

Olá pessoal,
é o seguinte, tenho uma div, ou um parágrafo, ou h1, etc... e queria deixar a primeira palavra do conteúdo dessa tag com uma cor diferente. Exemplo:

Este é um exemplo.

Tenho de fazer isso de forma automática. Pensei em usar CSS, usando pseudo-elementos, mas só serve para a primeira letra ou primeira linha da tag. Então creio que haja solução usando javascript.

Se alguem puder ajudar.
Desde já agradeço.

#2 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 26/11/2009, 14:52

Boa tarde, tudo bem?

Não sei se entendi bem, mas lá vai:

HTML
<div><span class="vermelho">Palavra</span> com uma cor diferente</div>

CSS
span.vermelho {
    color: #ff0000;
}
Um abraço, qualquer coisa posta novamente.

Edição feita por: Willian Gustavo Veiga, 26/11/2009, 14:53.

Posted Image

#3 Cajado

Cajado

    Turista

  • Usuários
  • 58 posts
  • Sexo:Não informado

Posted 27/11/2009, 11:56

Bem essa solução eu já sabia, e aliás é a mais óbvia, mas o que acontece é que preciso de um sisteminha para definir automaticamente isso... creio q com javascript tenha como fazer...

Vamos lá pessoal, me ajudem aê....
Não manjo de JS, mas sei que isso é moleza pra vcs...
(y)

#4 brunoXP

brunoXP

    EFEI EÔ

  • Conselheiros
  • 2226 posts
  • Sexo:Masculino
  • Localidade:Campinas/Itajubá

Posted 27/11/2009, 19:14

Acho que seria mais fácil fazer isso aí com PHP, não?
Bruno Toffolo
· Conselho / WebFórum

#5 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 28/11/2009, 07:00

É fácil. Recupere o texto (recomendo deixá-lo em uma tag); 'quebre-o', separando a primeira palavra; adicione uma tag nessa primeira palavra para estilizar e depois é só colocar de volta na página. Veja um exemplo:
<style type="text/css" media="screen">

	.vermelho {color:red;}

</style>



<p id="texto">Esse é um exemplo para o Fórum WMO!</p>



<script type="text/javascript">

	var par = document.getElementById('texto');

	var primeiro = par.innerHTML.substring(0, par.innerHTML.indexOf(' '));

	var resto = par.innerHTML.substring(par.innerHTML.indexOf(' '));

	var transforma = "<span class='vermelho'>"+primeiro+"</span> ";

	par.innerHTML = transforma+resto;

</script>

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#6 Cajado

Cajado

    Turista

  • Usuários
  • 58 posts
  • Sexo:Não informado

Posted 29/11/2009, 09:24

Maravilha! Valeu Alex, funfou perfeitamente! ;)(y)

Só um detalhe que acabei esquecendo...
Teria como definir este script por classe, ou invés de id? Porque precisarei repetir este processo em várias partes de uma mesma página....

#7 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 30/11/2009, 09:06

Tem sim. Troque o document.getElementById() por essa função: http://forum.wmonlin...ntsbyclassname/
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#8 Cajado

Cajado

    Turista

  • Usuários
  • 58 posts
  • Sexo:Não informado

Posted 02/12/2009, 20:31

Humm Alex...
tentei fazer o q sugeriu mas não deu certo...

#9 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 02/12/2009, 22:12

Poste aqui a sua tentativa.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#10 Cajado

Cajado

    Turista

  • Usuários
  • 58 posts
  • Sexo:Não informado

Posted 03/12/2009, 08:26

Aí está a tentativa:

<script type="text/javascript">
        var par = function getElementsByClassName('texto') {
        var elements = document.getElementsByTagName("*");
        var result = [];

        for (var i = 0, len = elements.length; i < len; i++) {
                if (elements[i].className == 'texto') {
                        result.push(elements[i]);
                }
        }

        return result;
};
        var primeiro = par.innerHTML.substring(0, par.innerHTML.indexOf(' '));
        var resto = par.innerHTML.substring(par.innerHTML.indexOf(' '));
        var transforma = "<span class='verde'>"+primeiro+"</span> ";
        par.innerHTML = transforma+resto;
</script>


#11 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 04/12/2009, 19:06

Tente assim:
<script type="text/javascript">
	function getElementsByClassName(sClassName) {
		var elements = document.getElementsByTagName("*");
	    var result = [];

	    for (var i = 0, len = elements.length; i < len; i++) {
	    	if (elements[i].className == sClassName) {
	        	result.push(elements[i]);
	        }
	    }

	    return result;
	}

	var par = getElementsByClassName('texto');

	for (var i=0; i < par.length; i++)
	{
		var primeiro = par[i].innerHTML.substring(0, par[i].innerHTML.indexOf(' '));
		var resto = par[i].innerHTML.substring(par[i].innerHTML.indexOf(' '));
		var transforma = "<span class='vermelho'>"+primeiro+"</span> ";
		par[i].innerHTML = transforma+resto;
	}
</script>

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#12 Cajado

Cajado

    Turista

  • Usuários
  • 58 posts
  • Sexo:Não informado

Posted 05/12/2009, 09:48

Valeu Alex... nesse natal vou te mandar um panetonne (g)




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq