O media
recurso de consulta CSS3 levou a muitas possibilidades interessantes em termos de desenvolvimento de sites que se ajustam a diversos tamanhos e dispositivos de tela.
No entanto, na prática, estou começando a entender que o media
recurso de consulta CSS3 e todo o movimento "Responsive Web Design" podem não cumprir sua promessa.
O problema que vejo é que, no final do dia, os desenvolvedores da Web se preocupam principalmente com o fato de seus usuários estarem visualizando conteúdo por meio de um computador, tablet ou dispositivo móvel. Mas o CSS3 fornece apenas um meio para detectar a resolução da tela . Em teoria, detectar a resolução da tela parece ser uma ótima maneira de se ajustar a vários dispositivos diferentes. Mas na prática ...
Suponha que tenhamos uma função Javascript simples que apenas gera a largura da tela:
function foo()
{
alert(screen.width);
}
No meu Blackberry Touch, isso gera:
768
No meu Samsung Galaxy, isso gera:
800
Então ... hum, neste momento, a resolução dos principais smartphones está chegando bem perto das resoluções no nível da área de trabalho. A capacidade de detectar se um usuário está visualizando seu site por meio de um smartphone, tablet ou computador parece ser cada vez mais difícil se tudo o que você passa é a resolução da tela.
Isso me leva a questionar toda a sabedoria por trás de todo o movimento CSS3 "Responsive Web Design", com base em consultas de mídia. Parece que o media
recurso de consulta é mais adequado para se adaptar a uma janela de redimensionamento do navegador em uma tela da área de trabalho, em vez de vários dispositivos móveis.
Outra técnica possível para detectar dispositivos móveis ou tablets é usar a detecção de recursos, verificando se o ontouchstart
evento é suportado. Mas mesmo isso está se tornando pouco confiável, pois muitas telas da área de trabalho começam a suportar o toque.
Pergunta: Então ... como desenvolvedor da Web, se não posso confiar no RWD ou na detecção de recursos, o agente do usuário cheira (como notoriamente não confiável como sempre) é realmente a melhor opção para detectar dispositivos móveis?
device-width
muito ruim?