Venho pesquisando pesquisas sobre mídia e ainda não entendo como segmentar dispositivos de determinados tamanhos.
Quero poder segmentar computadores, tablets e dispositivos móveis. Eu sei que haverá algumas discrepâncias, mas seria bom ter um sistema genérico que possa ser usado para direcionar esses dispositivos.
Alguns exemplos que encontrei:
# Mobile
only screen and (min-width: 480px)
# Tablet
only screen and (min-width: 768px)
# Desktop
only screen and (min-width: 992px)
# Huge
only screen and (min-width: 1280px)
Ou:
# Phone
only screen and (max-width:320px)
# Tablet
only screen and (min-width:321px) and (max-width:768px)
# Desktop
only screen and (min-width:769px)
Quais devem ser os pontos de interrupção para cada dispositivo?
css
mobile
media-queries
tablet
betamax
fonte
fonte
Respostas:
Na IMO, estes são os melhores pontos de interrupção:
Edit : Refinado para funcionar melhor com 960 grades:
Na prática, muitos projetistas convertem pixels em ems, em grande parte b / c ems oferece melhor zoom. No zoom padrão
1em === 16px
. Multiplique pixels por1em/16px
para obter ems. Por exemplo320px === 20em
,.Em resposta ao comentário,
min-width
é padrão no design "móvel primeiro", no qual você começa projetando para as telas menores e depois adiciona consultas de mídia cada vez maiores, trabalhando em telas cada vez maiores. Independentemente de você preferirmin-
,max-
ou combinações delas, conhecer a ordem de suas regras, lembre-se de que, se várias regras corresponderem ao mesmo elemento, as regras posteriores substituirão as regras anteriores.fonte
min-width: 320px
css substituísse omin-width: 801px
?Não segmente dispositivos ou tamanhos específicos!
A sabedoria geral não é direcionar dispositivos ou tamanhos específicos , mas reformular o termo 'ponto de interrupção':
Você pode usar o responsivepx.com para encontrar os pontos de interrupção 'naturais', como em 'pontos de interrupção estão mortos' por Marc Drummond .
Use pontos de interrupção naturais
Os 'pontos de interrupção' tornam-se o ponto real no qual o design do seu celular começa a 'quebrar', ou seja, deixa de ser utilizável ou visualmente agradável. Depois de ter um bom site móvel funcionando, sem consultas de mídia, você pode deixar de se preocupar com tamanhos específicos e simplesmente adicionar consultas de mídia que lidam com viewports sucessivamente maiores.
Se você não está tentando fixar um design em um tamanho exato de tela, essa abordagem funciona removendo a necessidade de segmentar dispositivos específicos . A integridade do próprio design em cada ponto de interrupção garante que ele se mantenha em qualquer tamanho. Em outras palavras, se um menu / seção de conteúdo / o que quer que pare de ser usado em um determinado tamanho, crie um ponto de interrupção para esse tamanho , não para um tamanho de dispositivo específico.
Veja o post de Lyza Gardner sobre pontos de interrupção comportamentais , e também o post de Zeldman sobre Ethan Marcotte e como o design responsivo da web evoluiu a partir da ideia inicial.
Usar marcação semântica
Além disso, o mais simples e mais semântica da estrutura DOM com
nav
,header
,main
,section
,footer
etc. (evitando abominações comodiv class="header"
com internos aninhadosdiv
marcas) o mais fácil será a resposta engenheiro, especialmente evitando carros alegóricos usando CSS disposição da grade (de Sarah Drasner gerador grade é um ótima ferramenta para isso) e flexbox para organizar e reordenar de acordo com o seu plano de projeto de RWD.fonte
Se você deseja segmentar um dispositivo, basta escrever
min-device-width
. Por exemplo:Para o iPhone
Para comprimidos
Aqui estão alguns bons artigos:
fonte
@media only screen and (min-device-width: 1024){}
ou algo assim para substituir essas alterações. Alternativamente, você poderia fazer@media only screen and (MAX-device-width: 1024){}
se você começou com um design de mesa e deseja fazer alterações somente para coisas menores que 1024.Eu usei este site para encontrar a resolução e desenvolvi CSS por números reais. Meus números variam bastante das respostas acima, exceto que o meu CSS realmente atinge os dispositivos desejados.
Além disso, tenha esse código de depuração logo após a consulta de mídia, por exemplo:
Adicione esse item de depuração em todas as consultas de mídia e você verá qual consulta está sendo aplicada.
fonte
Os melhores pontos de interrupção recomendados pelo Twitter Bootstrap
fonte
Consultas de mídia para pontos de interrupção comuns do dispositivo
fonte
fonte
Não é uma questão de contagem de pixels, é uma questão de tamanho real (em mm ou polegadas) de caracteres na tela, que depende da densidade de pixels. Portanto, "largura mínima:" e "largura máxima:" são inúteis. Uma explicação completa desse problema está aqui: o que exatamente é a proporção de pixels do dispositivo?
As consultas "@media" levam em consideração a contagem de pixels e a proporção de pixels do dispositivo, resultando em uma "resolução virtual", que é o que você deve levar em consideração ao criar sua página: se a fonte tiver 10 px de largura fixa e a " resolução horizontal virtual "é de 300 px, serão necessários 30 caracteres para preencher uma linha.
fonte
Atualmente, o mais comum é ver dispositivos de tela retina, em outras palavras: dispositivos com alta resolução e uma densidade de pixels muito alta (mas geralmente menor que 15 cm do tamanho físico). É por isso que você precisará da retina exibir consultas de mídia especializadas em seu CSS. Este é o exemplo mais completo que eu poderia encontrar:
Fonte: Site CSS-Tricks
fonte
Como existem muitos tamanhos de tela variados que sempre mudam e, provavelmente, sempre o melhor caminho a seguir é basear seus pontos de interrupção e consultas de mídia em seu design.
A maneira mais fácil de fazer isso é pegar o design completo da área de trabalho e abri-lo no seu navegador da web. Encolha a tela lentamente para torná-la mais estreita. Observe para ver quando o design começa a "quebrar" ou parece horrível e apertado. Nesse ponto, seria necessário um ponto de interrupção com uma consulta de mídia.
É comum criar três conjuntos de consultas de mídia para desktop, tablet e telefone. Mas se o seu design fica bem nos três, por que se preocupar com a complexidade de adicionar três consultas de mídia diferentes que não são necessárias? Faça isso conforme a necessidade!
fonte
Um recurso extra é que você também pode usar consultas de mídia no atributo de mídia da
<link>
marca.Com isso, o navegador fará o download de todos os recursos CSS, independentemente do atributo de mídia . A diferença é que, se a consulta de mídia do atributo media for avaliada como falsa , o arquivo .css e seu conteúdo não serão bloqueados pela renderização.
Portanto, é recomendável usar o atributo de mídia na
<link>
tag, pois garante uma melhor experiência do usuário.Aqui, você pode ler um artigo do Google sobre esse problema https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-blocking-css
Algumas ferramentas que ajudarão você a automatizar a separação do seu código css em arquivos diferentes, de acordo com suas consultas de mídia
Webpack https://www.npmjs.com/package/media-query-plugin https://www.npmjs.com/package/media-query-splitting-plugin
PostCSS https://www.npmjs.com/package/postcss-extract-media-query
fonte
O comportamento não muda na área de trabalho. Mas em tablets e celulares, expanda a barra de navegação para cobrir a grande imagem do logotipo. Nota: Use a margem (superior e inferior) o quanto for necessário para a altura do logotipo.
Para o meu caso, 60px em cima e em baixo funcionou perfeitamente!
Verifique a barra de navegação aqui .
fonte
fonte
Estou usando o seguinte para fazer o meu trabalho.
fonte
fonte