Por que o Twitter Bootstrap usa pixels para o tamanho da fonte?

Respostas:

129

Bem, parece que eles estão se escondendo atrás da desculpa do zoom do navegador . É muito triste ver uma estrutura tão usada e influente ignorar completamente os problemas de acessibilidade e a pedra angular do design responsivo. Eles estão em uma posição de grande responsabilidade e, infelizmente, parecem não ter intenção de agir de acordo.

[Update] Então, hoje Mark Otto respondeu no tópico que mencionei acima. Previsivelmente, não há menção de acessibilidade e uso da frase 'pixel-perfect':

Ok, então aqui está um pouco de pano de fundo sobre as decisões do ano passado e planos para seguir em frente.

Pixels fornecem controle absoluto e renderização consistente em todos os navegadores.

Os designers ainda pensam e operam principalmente em pixels.

Os navegadores aumentam a escala de páginas inteiras hoje em dia, então não é um problema com o dimensionamento de tipo ou algo assim.

Aninhar ems historicamente tem sido uma dor e pode exigir matemática extra para valores de pixels calculados / pretendidos.

Misturar unidades de medidas é feio e meu TOC interno odeia. Usar unidades na altura da linha é geralmente desencorajado, mas fornece conhecimento imediato de qual é o valor calculado. Provavelmente, tentaremos evitar isso no futuro. No futuro, provavelmente usaremos ems para dimensionamento de tipos, talvez rems até, mas não para mais nada. Isso também é discutível em tamanhos de fonte para entradas e similares. Não é assim que as pessoas criam sites perfeitos.

Está um pouco acabado e, com sorte, coerente o suficiente. Vou tentar fazer um blog sobre essas mudanças conforme elas surjam, mas não tenho certeza de quão próximo o 3.0 está e o que isso implicará ainda.

Eu sugeriria que qualquer pessoa com fortes sentimentos sobre isso vá e marque este tópico com +1 .

[Atualização] O roteiro da V3 delineado na postagem do blog da versão V2.3 não faz menção à adição de suporte para ems.

[Atualização] Muito mais informações sobre Bootstrap V3 disponíveis na solicitação de pull aqui, incluindo o seguinte de Mark Otto:

Exploramos o uso de unidades rem sobre pixels, mas encontramos poucos benefícios para compensar as implicações de seu uso. O IE8 ainda precisaria de um substituto de pixel, e isso é um monte de linhas de código duplicadas. Além disso, usar rems em todos os lugares em vez de pixels agravaria esse problema. Misturar rems e pixels também não parece fazer sentido agora. No entanto, podemos e continuaremos a avaliar isso em versões futuras.

Então, mais recentemente (em seus comentários):

Duvido muito que estejamos enviando com rems neste momento. Mudar tudo - além do tamanho das fontes - é uma tarefa enorme e que traz poucos benefícios para compensar isso. Deixando de lado o dobro das linhas de código para tamanhos de fonte, suportar rems de qualquer outra forma parece tedioso na melhor das hipóteses. Dito isso, sempre podemos revisitar em uma versão futura. Por enquanto, estamos nos limitando aos pixels.

Tendo crescido insatisfeito com um grande número de recursos do Bootstrap, incluindo a falta de suporte em, eu sugiro fortemente olhar para Susy se você quiser apenas grades, ou Zurb Foundation 4 para toda a enchilada. Não deixe a popularidade do Bootstrap prejudicar seu julgamento. Qualquer um pode construir algo com o Bootstrap, que é exatamente o seu problema - ele é projetado para pessoas com o mínimo de experiência na web. Só porque há muitos McDonalds no mundo não significa que seja um lugar saudável para comer.

[Editar] OK. Isso foi uma coisa boba de se dizer. Desde que escrevi isso, usei o BS3 e ele melhorou consideravelmente seu jogo. Eu não deveria ter feito esse comentário descartável, mas ainda acredito que tomou uma decisão errada ao usar pixels para o tamanho da fonte. Assim como os problemas de acessibilidade, os ems são úteis de outras maneiras.

[Atualizar] Parece que rems será compatível com V4 (Mdo citado aqui ):

Para aqueles que estão acompanhando, poderemos mudar de pixels para REMs na v4 quando deixarmos de oferecer suporte ao IE8. Não posso fazer muito até então.

[Atualização de fevereiro de 17] Bootstrap 4 ainda está em Alpha, mas mostra o uso de rems em seus documentos de Tipografia , mas não mostra o uso de rems em seus documentos de layout .

Undistraction
fonte
4
O problema é que parece que não há ninguém aqui para explicar por que é mais "amigável para acessibilidade" usar EM mais do que PX. Quer dizer, ok, no papel parece óbvio, mas na vida real? Alguém tem exemplos REAIS de usuários presos em sites baseados em pixels? Com estatísticas reais e problemas reais que os pixels causam? Esta é a verdadeira questão neste debate, eu acho. A falta de prova é porque a maioria das pessoas usa o PX.
adriendenat 01 de
7
Fontes de nível de sistema operacional e nível de navegador são aumentadas por aqueles com problemas de visão. emé necessário para essas pessoas, portanto, "acessibilidade".
Steven Vachon
1
Há uma discussão aqui que explica por que aumentar o tamanho da fonte é melhor do que zoom, webaim.org/discussion/mail_thread?thread=5849 "Falei com alguém da CSUN no ano passado que apontou que ampliar a página inteira não é tão útil para ele. Ele tem visão muito baixa e precisa aumentar significativamente o tamanho do texto em uma página para lê-lo. No entanto, quando você usa o zoom de página, acaba tendo que rolar para a esquerda e para a direita para leia o texto e isso envelhece muito rápido. É muito fácil perder o seu lugar quando você tem que fazer isso. "
Tony
4
Os tamanhos baseados em Em também são essenciais para o desenvolvimento móvel. Os fabricantes de dispositivos gastam tempo e dinheiro determinando o tamanho de fonte de base ideal para legibilidade em seus dispositivos. Nós invalidamos toda essa pesquisa quando dizemos "font-size: 14px." O que isso significa no UltraAwesomeRetina3.0? Ou em uma tela de 52 "com pixels por polegada menores? Deixar o tamanho da fonte base para o fabricante é uma prática recomendada, pura e simples. Filamentgroup.com/lab/… blog.cloudfour.com/…
Jay Dansand
3
Como sou (vamos chamá-lo) fanático por EM, adoro o fato de você estar sempre atualizando essa resposta ... e mais ainda por ter apontado alternativas. +1 ;)
e-sushi
11

Não deixe a popularidade do Bootstrap prejudicar seu julgamento. Qualquer um pode construir algo com o Bootstrap, que é exatamente o seu problema - ele é projetado para pessoas com o mínimo de experiência na web. Só porque há muitos McDonalds no mundo não significa que seja um lugar saudável para comer.

Você pode argumentar para não deixar isso turvar seu julgamento de uma forma negativa. É uma estrutura sólida e, se você se preocupar em investir tempo em como usá-la de maneira eficaz, a maior parte do seu argumento cairá sobre ela.

Embora seja frequentemente usado por pessoas com experiência mínima - e não há nada de errado com isso - também é usado por pessoas com muita experiência.

No mínimo, é uma ferramenta de prototipagem inestimável. Na melhor das hipóteses, é totalmente personalizável. Você pode selecionar e escolher, modificar, adicionar a - é por isso que é chamado de 'estrutura'.

Tenho usado-o de maneira eficaz em alguns de meus projetos por mais de dois anos - é tão enxuto quanto você deseja. Usei apenas o framework de formulário, apenas as grades, todo o código-base e o personalize para atender às minhas necessidades. De muitas maneiras, ele "melhorou" meu jogo, levando-me mais adiante no pré-processamento, usando variáveis, aprimorando a maneira como estruturo projetos.

Sim, existem alguns problemas. pxpara tamanhos de fonte e usando Less são dois. No entanto, como é totalmente de código aberto, você pode encontrar opções para remediar ambos facilmente.

Eu investiguei a Foundation e gostei do que vi, mas estou na infeliz posição de ter que apoiar o IE8, como muitos desenvolvedores estão. A Foundation retirou o suporte para o IE8, tornando-o um 'proibido' para mim. Apesar disso, eu não estou prestes a demitir um quadro inteiro, mais especificamente algo que é livre de usar e livre para modificar com base apenas em algumas questões!

Heck, em um projeto, eu levantei partes do Foundation e partes do Bootstrap e adicionei meu próprio código personalizado - essa é a beleza do código aberto.

Matthew Trow
fonte
6
Isso é totalmente justo e para ser honesto, com o Bootstrap 3, acho que realmente intensificou seu jogo. Em retrospecto, foi uma coisa meio boba de se dizer, mas nasceu da frustração e ainda acho que a maioria dos sites que vejo que usa Bootstrap o usa de forma muito preguiçosa. É uma ótima ferramenta para prototipagem e para páginas voltadas para o público - áreas administrativas etc. Também pode ser uma ótima ferramenta para sites voltados para o público se a pessoa que a usa entender como estilizar além dos padrões. Como qualquer ferramenta, ela é facilmente abusada e suponho que a facilidade de uso é o que resulta na quantidade de (ab) uso.
Undistraction 01 de
2
Sim, eu ouço você - às vezes você fica tão furioso com a codificação, que ataca :) Pelo menos, com o bootstrap 3.0, quando abusado, existem alguns padrões em vigor. O mesmo se aplica à Fundação. Há muito que aprender com ambos. Em última análise, com o tempo, "lançar o seu próprio" é o caminho a seguir.
Matthew Trow
2
Postar uma resposta para comentar sobre outra resposta é um pouco confuso ... (apenas dizendo)
e-sushi
É bom ver algum equilíbrio trazido a isso :) Bootstrap funciona bem para muitas pessoas, experientes e novatos.
Aaria Carter-Weir
Isso não responde à pergunta.
Greg Schmit
6

Se você ainda prefere Bootstrap com suporte em e rem, pode dar uma olhada nisso - https://github.com/ivayloc/twbs-rem-em, não há necessidade de fazer nenhum cálculo para converter pixels em unidades rem ou em, há um recurso @mixinspara isso - @include rem(property, values)- também fallback para px e para conversão em que você pode usar em(value).

ivayloc
fonte
Não estou mais usando o TBS, pois descobri que o Foundation é muito mais bem pensado, mas isso parece um bom compromisso.
Undistraction
1

Embora eu use o Bootstrap extensivamente, há algumas áreas em que a acessibilidade fica em segundo plano. Acho que há compensações inevitáveis ​​com uma plataforma que é usada tão extensivamente.

Eu entendo completamente porque eles optaram por reter pixels para o tamanho da fonte. Os problemas de herança com em's para fontes de um framework são um pesadelo total.

rems são uma opção alternativa, mas o suporte do navegador ainda é problemático.

Você pode criar seu próprio rems mixin e substituir cada linha de less que usa a variável de tamanho de fonte base.

Essa é a beleza do bootstrap - e de estruturas semelhantes - é uma base sólida para trabalhar.

Sim, eu mencionei que há elementos no bootstrap do Twitter que não são tão acessíveis - um pequeno exemplo, o uso de 'display: none' em vez de clip. Tenho certeza de que há um motivo válido para isso - e, novamente, você pode modificar isso facilmente se quiser.

O bootstrap não é perfeito, mas duvido que algum dia tenha a intenção de ser a resposta final a todos os seus requisitos. É uma base - um 'bootstrap' - aprenda e utilize-o apropriadamente, acrescente, misture tudo - no mínimo, é uma estrutura incrível para prototipar ou montar um site rápido. Indo além, há uma base realmente sólida que pode ser aplicada a qualquer site.

user2584840
fonte
1
Acho que uma das ironias do Bootstrap é que ele faz muito mais do que 'inicializar' seu aplicativo. É prescritivo em muitos níveis, incluindo o layout. Além da preguiça, a razão pela qual tantos sites são tão obviamente baseados em bootstrap é que não é tão fácil romper com os padrões. Sim, há um punhado de variáveis ​​para personalizar aspectos, mas as hediondas questões de especificidade tornam a substituição de outros aspectos uma enorme dor de cabeça. Talvez o Bootstrap 3 seja melhor. Pessoalmente, estou gostando do Foundation 4. Parece que sou eu quem está no comando, e não a estrutura.
Undistraction
0

Eu acho que é por causa da primeira abordagem do desktop. Twitter Bootstrap é responsivo amigável, mas abordagem de "degradação elegante".

gocsp
fonte