Posts com a tag: "XHTML"

É correto abrir links em novas janelas?

Não, não é correto. À primeira vista, é comum acharmos que  a decisão de abrir links em novas janelas depende do site e do seu público. É normal imaginar que visitantes habituados a clicar em vários links estão mais acostumados a abri-los em novas janelas e visitantes que clicam menos são mais propensos a abrir links em uma nova janela para poder permanecer no site e navegar por ele depois. No entanto, isso não é verdade.

E aí? Na minha janela ou na sua? E aí? Na minha janela ou na sua?

Os usuários não gostam de lidar com dezenas de abas abertas involuntariamente e alguns visitantes tendem a se irritar rapidamente ao verem o botão “Voltar” desabilitado. Além disso, alguns visitantes podem não perceber que uma nova janela foi aberta e igualmente se frustarem com o botão “Voltar” desabilitado. Isso vai contra os bons princípios de usabilidade e experiência do usuário e nós, web designers, temos obrigação de defender tais princípios.

Continuar lendo »

Rodapé sempre no fim da página (sem javascript)

Para o novo site da Hiperquímica(que ainda não foi ao ar) precisei de uma solução para manter o rodapé sempre no fim da página, independente da quantidade de conteúdo que viria antes. Uma pesquisa rápida no Google me levou até algumas alternativas que utilizavam javascript[bb] (não me agradaram nem um pouco) e outras que utilizavam somente CSS.

As alternativas com CSS em sua maioria utilizavam duas propriedades para o rodapé: “position:absolute” e “bottom:0″. O problema dessa solução é que se redimensionarmos a janela do navegador, o rodapé sobrepõe o conteúdo, veja um exemplo dessa aplicação.

Procurando em sites gringos, encontrei uma solução interessante no qrayg.com. Adaptei o arquivo e disponibilizei um exemplo com código-fonte mais enxuto, confira!

O arquivo com exemplo dessa solução está bem simples, então acredito que não haverá dúvidas. Mas se precisarem de algum esclarecimento, é só comentar!

Definindo a linguagem padrão do estilo aplicado no HTML

Geralmente inserimos folhas de estilo externas ou utilizamos o atributo style para inserir informações de estilo no HTML. A tag link é a opção mais utilizada e recomendada para inserir folhas de estilo externas, por exemplo:

<link href="cute.css" rel="stylesheet" type="text/css"/ >

Repare que nesse caso é informada qual a linguagem utilizada no estilo, através do type=”text/css”. Agora se você está utilizando o atributo style para estilos inline, o user agent pode não saber qual a linguagem utilizada no estilo aplicado. Ou se uma empresa desenvolver uma nova linguagem de estilos e um novo mime-type por exemplo, seria difícil impor e assegurar o funcionamento na plataforma de distribuição que temos hoje. Entretanto, existe uma maneira.

Se você precisar especificar uma linguagem padrão para todos os estilos aplicados no seu site, você pode utilizar uma meta tag no cabeçalho da sua página:

<meta http-equiv="Content-Style-Type" content="text/css"/>

E você pode inserir essa informação no header HTTP:

Content-Style-Type: text/css

Caso você utilize um servidor Apache, a partir da versão 2.0 você pode usar mod_headers e mod_setenvif no arquivo geral de configuração ou trabalhar a nível de diretório através do .htaccess:

SetEnvIf response Content-Type [text/html|application/xhtml+xml] html-content=1
Header add “Content-Style-Type: text/css” env=html-content

Vale lembrar que essas configurações não são ativadas por padrão na base de configuração do Apache[bb], se você quiser utilizá-las, deve ativá-las manualmente.

Obs: Este artigo é a tradução de um post do blog da W3C. Incluí alguns links para ajudar que, em alguns casos, podem refletir a minha opnião e de outros autores. Se houver dúvidas, comente!

Utilizando seletores de atributo no Internet Explorer 6

Uma das maiores utilidades dos seletores de atributo talvez seja estilizar formulários sem a utilização de classes. Entretanto, essa é uma técnica pouquíssima utilizada pois o Internet Explorer 6 e suas versões inferiores não interpretam o uso de seletores CSS.

Para estilizar o botão submit de um formulário utilizando seletores de atributo, podemos escrever o CSS da seguinte maneira:

input[type=submit] { propriedades }

Mas como o IE6 não interpreta esse código, geralmente aplica-se uma classe no submit do formulário ao invés de utilizar os seletores.


<form>
<label for="username">Nome</label><input type="text" id="username" />
<input type="submit" class=”submitButton” />
</form>

Pesquisando sobre seletores de atributo, encontrei este link no Shayna.com com um javascript que simula o uso de seletores de atributo no IE6. Basicamente, ele faz o que eu disse anteriormente, inclui uma classe para cada um dos elementos input existentes na página.

Para utilizá-lo, copie esse código e salve como ie6css.js.


function changeClasses(currentdoc) {
var inputElements = currentdoc.getElementsByTagName('input');
for (var i=0; i<inputElements.length; i++) {
if(inputElements[i].type == “submit”) {
inputElements[i].className = inputElements[i].className + ” submit”;
} else if (inputElements[i].type == “checkbox”) {
inputElements[i].className = inputElements[i].className + ” checkbox”;
} else if (inputElements[i].type == “radio”) {
inputElements[i].className = inputElements[i].className + ” radio”;
} else if (inputElements[i].type == “text”) {
inputElements[i].className = inputElements[i].className + ” textbox”;
}
}
}

E inclua esse código no cabeçalho da sua página:


<head>
<!--[if lt IE 6]><script type=”text/javascript” src=”assets/js/ie6css.js” ></script><![endif]–>
</head>
<body onload=”changeClasses(document)”>

</body>

Na verdade, o javascript só elimina o nosso trabalho de incluir uma classe para os elementos. Ele busca todos os input do html e inclui classes relativas ao tipo de cada input.

  • Para type=”submit” inclui uma classe submitbutton;
  • Para type=”checkbox” inclui uma classe checkbox;
  • Para type=”radio” inclui uma classe radio;
  • Para type=”text” inclui uma classe textbox;

Assim sendo, você precisa aplicar um estilo para cada uma das classes no seu arquivo CSS. Por exemplo:

input[type=submit],
input.submitbutton { propriedades }

Particularmente eu acho mais fácil incluir as classes manualmente, até porque se o internauta estiver com o javascript[bb] desabilitado corre-se o risco de perder alguma formatação.

Mas, de repente, pode ser útil em alguma situação específica.

Tag br pra quê?

É sério, eu não consigo enxergar muita utilidade para a tag <br />. Pelo menos não tanto quanto alguns desenvolvedores enxergam.

Pular uma linha após o input do form? Ajuste o CSS do input para “display:block”.

Deixar a imagem sem nenhum texto ao lado? Idem anterior, “display:block” para a imagem.

Alinhar o texto verticalmente? Simples, especifique um padding para o container desse texto ou em casos mais específicos use o vertical-align.

Aumentar a altura da div? Propriedade height.

Título e subtítulo com o mesmo link do texto? Deixe de preguiça e faça do jeito certo, um link para cada elemento, e claro, utilize as tags adequadas para cada um deles.

Ás vezes parece mais prático utilizar um <br />, mas na hora de atualizar pode ser que você tenha que alterar o HTML e o CSS, sendo que você poderia mexer apenas no CSS. Eu sei que é uma coisa mínima, mas isso é separar conteúdo de apresentação, um dos princípios dos padrões web standards.

Até hoje consegui encontrar apenas uma aplicação plausível para a tag <br />. Poesias[bb], pois é necessário delimitar os versos.

No meio do caminho tinha uma pedra <br />
tinha uma pedra no meio do caminho <br />
tinha uma pedra <br />
no meio do caminho tinha uma pedra.

Se alguém conhecer outra utilização semântica para a tag <br /> avise, eu não lembro de mais nenhuma.

E antes que digam. Sim, eu sou chato pra escrever qualquer HTML. :-)

Topo