Blog
Cufon no Internet Explorer 9
Aviso rápido: se você também utiliza o Cufon para exibir para seus usuários fontes que eles não possuem no computador e o Internet Explorer 9 não está exibindo absolutamente nada, basta que você atualize a versão do arquivo cufon-yui.js para a 1.09i. Simples assim.
Evento .click() do jQuery não funciona em conteúdo do Fancybox
Usando a versão 1.2 do fancybox enfrentei um problema, aparentemente sem razão: associava um .click() por jQuery a um link e ele não tinha o comportamento esperado.
Depois de muito tentar (acho que) percebi o que acontecia. Ao usar conteúdo inline no fancybox, ele copia os elementos para formar a janela que se espera. Associando normalmente um comportamento a qualquer elemento, você associa ao original, a cópia não herda. Ou seja, no meu caso o link que era exibido não tinha mais associado o comportamento que eu queria.
A solução é associar na hora em que a janela é aberta, pela chave ‘callbackOnShow’ (na versão 1.2). No meu caso ficou assim:
Firefox mudando o idioma de sites Drupal multilíngua
Estou desenvolvendo um site em drupal para o público argentino. Como o site será administrado por brasileiros tive que deixar as duas línguas disponíveis, sendo que o usuário anônimo só veria a versão em espanhol.
Depois de tentar todas as configurações possíveis e imagináveis não conseguia descobrir porque o site não aparecia em espanhol no Firefox. Todos os outros browsers exibiam o site em espanhol e o firefox teimava em mostrar em português. Limpei cache de todos os lados e nada, adicionei “Espanhol” nas línguas do navegador, coloquei-a como preferencial (acima do Português) e funcionou. Tirei e voltou a mostrar o site em Português. De alguma forma o drupal estava disponibilizando pro Firefox a versão que ele dizia ser a melhor pro usuário. É uma coisa inteligente, se o usuário tem um navegador que prefere sites em português e existe uma versão disponível em português é essa que tem que ser mostrada, mas não era o que o meu cliente precisava.
Descobri como o drupal disponibilizava isso para o navegador: no arquivo “languages.inc” dentro da pasta “includes” existem três linhas (61,62 e 63 na versão 6.qualquer-coisa que estou usando) que fazem o serviço:
if ($language = language_from_browser()) {
return $language;
}
Comentei e o firefox passou a exibir o site em espanhol, como eu precisava.
Qualquer alteração no core do drupal não é recomendada, mas dessa vez foi inevitável. Se alguém tiver alguma outra solução ou sugestão, pode colocar nos comentários que faço um update aqui.
Float e overflow – Altura de elemento com filhos flutuantes
Acho que todo mundo já passou por isso: você está fazendo um css rapidinho, um elemento tem uma imagem de fundo e alguns elementos como filho. Você dá um refresh pra ver como está ficando e a imagem de fundo simplesmente não “estica” o suficiente.
Se você tem um elemento html e os últimos filhos dele estão flutuando, isto é, tem no css um “float: left;” ou “float: right;”, a altura do elemento pai será calculada até o fim dos últimos elementos sem flutuação. Pra resolver existem algumas maneiras:
- Overflow: se você colocar um “overflow: hidden;” no elemento pai resolve, mas você terá problemas se (1) o elemento tiver altura ou largura – ele vai cortar tudo o que ultrapassar a altura e/ou largura determinada – ou (2) se você precisar que algum elemento filho “vaze”, por exemplo, tenha um margin-top negativo. Essa é a minha favorita.
- Display: table: não é a mais legal, mas funciona. Em algumas versões antigas do Firefox dava problema, mas resolveram.
- Adicionar um elemento no final do elemento pai: faz seu html ter um lixo não semântico sem significado lá, uma div vazia, por exemplo, mas vai quebrar o galho caso nada mais funcione.
Passo aqui pra postar coisinhas rápidas, mas são as coisas que vejo dando dor de cabeça pra galera.
UPDATE: nos comentários o Moacir comentou sobre o clearFix, que me pareceu uma solução bem interessante. Há muito tempo dava problema, mas foram modificando até dar certo em todos os navegadores. Valeu Moacir!
$(document).height() e Chrome? Use o $(window).load()
Acabei de ter um problema que me tomou mais tempo do que o necessário. As alturas retornadas pelo método $(document).height() do JQuery eram diferentes no Firefox e no Chrome (no IE 7 também deu problema), quando chamadas dentro do $(document).ready(). Pesquisando, descobri que isso acontece porque o $(document).ready() é carregado quando o DOM está pronto e não necessariamente todos os elementos. Para executar alguma coisa depois que absolutamente tudo está no lugar o jeito é usar o $(window).load().
Pro que eu precisei, ficou assim:
$(window).load(function(){
$("#menu").css('width', $(document).height());
});
Dica rápida, mas “se eu soubesse antes o que sei agora, não seria esse ser que chora” ou “odeio perder tempo com babaquice”.
Drupal na Locaweb – soluções rápidas
Algumas dicas para quem está migrando uma solução Drupal para um servidor de produção na Locaweb. continue lendo