Padrões de código e ao melhor práticas em Front-end

Visão geral

Este documento armazenar diretrizes para formulários web construído pela an imaginative Technology (engenharia front-end) práticas da Isobar us e isto é prontamente acessível para algum um o que deseja perseguir o evolução iterativo de nossas ao melhor práticas. Circunstâncias tenha algo feedback favor deixando um comentário durante post de apresentações do nosso blog.As chave motivações disto documento são: 1) consistia de senha 2) melhores práticas. Pela manter consistência nos estilos e convenção do código, nos podemos diminuir o fardo de manter senha legado e mitigar o ameaça de problemas futuros. Ao aderir às melhor práticas, nos asseguramos emprego carregamento otimizado, potência e senha de loucura manutenção.

Você está assistindo: Marcação não aparece na linha do tempo


Diretrizes gerais

Pilares do desenvolvimento Front-end

Separação de apresentação, conteúdo e comportamento..

Práticas Gerais

Identação

Para todos as linguagens, nos obrigamos emprego uso da identação através dos soft tabs (usando caracteres de espaço). Apertando Tab no seu editor de texto ele deve ser equivalente a quatro espaços.

Legibilidade vs Compactação

Nós preferimos naquela legibilidade ~ por invés de economizar durante tamanho são de arquivo. A diversificado de espaçamento excluir encorajada, bem como art em ASCII, enquanto for apropriado. Não há necessidade nenhuma dá desenvolvedor compactada o HTML alternativa CSS, alternativa obfuscar o JavaScript. Nós utilizaremos processos enquanto lado são de servidor para automático minificar e comprimir tudo os arquivos do lado são de cliente.


Marcação

O primeiro ingrediente de qualquer lado web é a língua de marcado HTML. Der Linguagem de marcado de Hiper texto (do inglês HTML) sim uma história sórdida, mas começou uma nova nós últimos anos. Depois de ~ uma longa experimentar de 1 variante sediada em XML (XHTML), naquela indústria aceitou o que HTML denominada o futuro da web.

A marcação define a estrutura e os elementos a partir de documento, oferecendo um contente estruturado. Naquela marcação não tem intencionalmente de conjuntos o intuitivo do contente da página, além dos o conceito rudimentares, como cabeçalhos, parágrafos e listas. Os atributos de apresentações do HTML foram dados obsoletos e emprego estilo ele deve ter estar contido fazendo folhas de estilo.

HTML5

HTML5 denominada uma nova versão são de HTML e são de XHTML. Emprego rascunho a partir de especificações são de HTML5 definir uma única linguagem que pode ser escrita em HTML e XML. Isto é procura solúvel problemas encontrado em iterações antes de do HTML, que endereçam as precisa de uma aplicação web, uma áreas previamente algum coberta pelo HTML.

Nós testaremos uau marcação alcançar a ferramenta de validação da W3C, para garantia sua está bem formação. Senha 100% válido que é fundamental, mas der validação certamente ajuda na manutenção dá código, boa como na deles depuração. Isobar que garante senha 100% válido, em parceiro investe em ~ experiêcia adentraram navegadores adicionando consistente.

Modelo

Para documento HTML5 nós utilizamos emprego modelo H5BP modificado porque o as necessidades são de projeto. Repósitorio enquanto GitHub.

Todo marcação deve está dentro codificada em UTF-8, por ser o mais amigável para internacionalização, e isto, ele deve ter estar tanto enquanto cabeçalho da página quanto no cabeçalho de resposta da requisição HTTP.

Ajustando der codificação de sinal usando o elemento .

Em HTML5, apenas um use:

Diretrizes gerais de Marcação

Abaixo are as regras em geral de estruturação do HTML. Profissionais tem que ser lembrados de alavancada marcação semântica, eu imploro seu perdão representa o significado do conteúdo a estar criado.

Use o elemento

porque o parágrafos ao invés de dual .Faça ministérios uso de (lista de definição) e , quando apropriado.Listas tem que ser imundo representadas através dos uma , , alternativamente , nunca um conjunto de
ou . algum use ministérios atributo size nós seus campos. O atributo size excluir relativo vir tamanho da a fonte do área de texto. ~ por invés disso, use der propriedade width a partir de CSS. Escreva comentários no fechadas de
aclamação qual denominada o elemento que isso é sendo completando (id ou class). A ajudará enquanto existir muitos fatores aninhados e muitos identação. Tabelas algum devem ser utilizadas para layouts de página. acabar o uso no elementos , e (e ministérios atributo scope) enquanto apropriado.Marcação de tabela com a sintaxe correto (, , , scope).Tabela cabeçalho 1Tabela cabeçalho 2
Dados da mesa 1Dados da mesa 2
Utilize inicial maiúsculas porque o cabeçalhos e títulos. Nunca use somente caixa alta ou baixo na excepcional de títulos, utilize naquela propriedade CSS text-transform:uppercase/lowercase para isso.

Notação de atributos

contudo da especificação a partir de HTML5 conjuntos aspas em volta de atributos gostar de opcional, para manter a consistência, tudo os atributos ter que utilizar aspas.

Este denominada o meu parágrafo de um carta especial.


CSS

O segundo elemento de uma página web excluir a em formação de apresentação contida na Folha de estilo em Cascata (do inglês CSS). Naquela implementação boa sucedida de CSS nós navegadores deu um direção abrangente sobre o lado visual de seus sites naquela uma geração inteira de especialistas web.

Assim gostar a em formação da página denominações semânticamente descrito pela marcação HTML, o CSS define todos os aspecto de apresentações atráves da retratado de suas propriedades visuais. CSS é poderoso, lá suas caraterísticas são misturadas e combinadas por identificadores que direção o layout e as características visuais da página, formando camada de regra de estilo (a "cascata").


Principios visão global de Codificação

Carregue dele CSS por de arquivo externos, utilizando o menor número de arquivo possível, e sempre de dentro a partir de elemento da página.Use o elemento Incluindo a folha de estiloNunca utilize estilo em fileira (inline)

Isso é ruim, mim digo

algum inclua estilos em linha (inline) no documento, nem grupo . Fica adicionando difícil rastrear as regras. grupo que acontecer uma apenas um vez dentro de um documento tem que utilizar ID, os muito de devem usar classes.

Modelo CSS ns caixas

Conhecimento íntimo, compreendo do CSS e ter uma boa base no modelo de caixa do navegador, são necessário para vencer os fundamentos cerca de os layouts CSS.

*
Modelo CSS de caixas em 3D diagrama através dos Jon Hicks.

CSS Validação

Geralmente não utilizamos ministérios validador da W3C.

Formatação são de CSS

Mantenha der formatação dos seletores CSS em uma mesma linha e cada propriedade em sua própria linha. Together declarações ter que ser identadas.

Insira um reforço alcançar 2 alternativamente 4 espaço para estilo relacionados ou filhos. A permite uma mestre visual hierárquica e torna mais fácil (para algumas pessoas) naquela leitura da folha de estilos.

.post-list li acolor:#A8A8A8; .post-list li a:hover color:#000; text-decoration:none; .post-list li .author a, .post-list li .author a:hover color:#F30; text-transform:uppercase;

No circunstâncias de um ambiente alcançar vários desenvolvedores, CSS em uma única linha ele deve ser evitado através causar problemas alcançar o ao controle de versão dá arquivo.

Alfabetizar

Se você ao um obcecado por performance, alfabetize as apresentou do CSS, portanto você aumenta as possibilities de maiores padrões repetitivos estarem presentes para auxiliar na compressão GZIP.

Classes vs. IDs

Você somente deve dado atributos ID para um elemento se ele for único. Eles ter que ser aplicados só para naquela elemento e adicionando nenhum outro. Aulas podem ser aplicado em múltiplos grupo quando estes compartilhado as mesmas apresentou de estilo. Grupo que devem luz e funcionar da mesma formato podem ter ministérios mesmo sobrenome de classe.

Categoria 1Categoria 2Categoria 3

Convenção de nomenclatura ao seletores

Prefira sempre deu-se nome a o que pela natureza são de que é, ~ por invés dá que ele parece, seja naquela um ID alternativa uma classe. Por exemplo, um denominação de classe bigBlueText porque o uma observação especial em uma laterais é o que totalmente sem sentido se tiver sido alterado para ter um texto menor com a cores vermelha. Usando ns convenção acrescido inteligente como noteText é bem melhor, porque quando ocorrerem mudança visuais, emprego nome continuação seguirá a ir sentido.

Seletores

Os Seletores CSS grau 3 atualmente um novo ajustar de seletores CSS o que são extremamente úteis para atingir um detectar elemento.

Pseudo-classes

Pseudo-classes permitir que você estilize dinamicamente um conteúdo. Algumas pseudo-classes existem desde a o CSS1 (:visited, :hover, etc.) e no CSS2 (:first-child, :lang). No decorrer CSS3, 16 novo pseudo-classes foi ~ adicionadas a culiversidade e são especial úteis para estilar dinamicamente um conteúdo.

Combinadores & Atributos Seletores

Combinadores fornecem abreviação para naquela seleção de fatores que elas descendentes, filhos, ou irmãos.

Atributos Seletores eles são ótimos para localizar elementos que possuam um atributo específico e/ou um valor específico. Conhecimento de expressão regulares ajudam alcançar os atributos seletores.

Especificidade

Navegadores calculam naquela especificidade para destina quais regras do CSS devem ser aplicadas. Se dois seletores aplicam uma regra para o mesmo elemento, ministérios que tiver abranger maior especificidade vence.

IDs sim uma específico maior são de que os de seletores de atributo, e seletores de aulas têm maior especificidade a partir de que qualquer consistia de elementos de seleção. Sempre tente usar IDs para conseguir um aumento a especificidade, sim momentos em que podemos tentar executar uma governado CSS a um elemento e ela que funciona, não importa ministérios que tentamos. Isso acontece provavelmente porque a especificidade são de seletor usado é inferior ~ por outro e as propriedades do mais alto estão tomando precedência sobre essa que você enosis aplicar. Dental é acrescido comum enquanto se trabalha alcançar uma folha de estilos maior e complexa, e geralmente que é um grande problema quando se comporte-se de projetos menores.

Calculando especificidade

Ao trabalhar com uma longe e complicado folha de estilos, sempre denominações útil conhecer como calculada o valioso de característica de um seletor para guardar o seu tempo e eu não ligo os sua seletores mais eficientes.

Especificidade é calculada contando vários componente do seu CSS e elas expressos nesta formato (a,b,c,d):

Elemento, pseudo Elemento: d = one – (0,0,0,1)Classe, Pseudo-classe, Attributo: este c = one – (0,0,1,0)ID: ns = 1 – (0,1,0,0)Estilo em linha (inline): naquela = 1 – (1,0,0,0)

No entanto, capaz melhor usa uma calculadora de especificidade:

Usando !important você em vez de substituir todas as especificidades, que importa o quão alto for. Nós evitamos usá-lo por aquela motivo. Na maioria ns vezes algum é necessário, idênticas se você necessário substituir um seletor em uma folha de estilo que não tem acesso. Coloquiais existem outras forma de substituir um seletor sem usa !important. Se possível, evite-o.

Pixels vs. Ems

Nós usamos px como unidade de medir para definir o font-size, porque oferece emprego controle absolutamente sobre o texto. Nos percebemos que a unidade de meça em se tornou difundido para acomodar o cin Explorer 6, já que que redimensiona pixel alcançar base em texto. Enquanto entanto, agora tudo os básico navegadores (incluindo IE7 e IE8) suportam texto redimensionado abranger unidade baseada em pixel e/ou zoom na ao lado inteira. Desde a que ministérios IE6 adquirindo considerado obsoleto, denominada preferível alavancada tamanho em pixels. A unidade line-height ~ deve está dentro usada, porque algum herda um estimado percentual dá seu elemento pai, contudo é sediada no multiplicador do font-size.

Correto#selector font-size: 13px;line-height: 1.5; /* 13 * 1.5 = 19.5 ~ Arredonde para 20px. */Incorreto/* Equivalente a um font-size de 13px e 20px de line-height, mas apenas um se emprego tamanho critério de texto a partir de navegador porque o 16px. */#selector font-size: 0.813em;line-height: 1.25em;

Internet investigador Bugs

Inevitavelmente, quando todos os noutro navegadores aparecer funcionar corretamente, qualquer borda do cin Explorer irá apresentar o que bug absurdo, retardando emprego tempo de desenvolvimento. Devido a nós encorajamos naquela solução de problemas e a construção de um senha que irá funcionar em tudo de navegadores sem modificações especiais, às vezes é necessário alavancada comentários condicionais if IE gostar de ganchos em nossas folhas de estilos. Leia mais em paulirish.comCorrigindo ministérios IE .box float: left; margin-left: 20px; .ie6 .box margin-left: 10px; Se amigo estiver usando HTML5 (e ministérios HTML5 Boilerplate) nos encorajamos o uso da bibliotecas JavaScript Modernizer e este padrão:

Abreviação

Em geral, denominações preferível a abreviação do CSS pela causa da sua concisão e probabilidade de mais tarde voltar e adicionado em valores que já ser estar presentes, como é o circunstancias do margin e padding. Desenvolvedores ter que estar cientes dá acrónimo TRBL, denotando naquela ordem em o que os nas páginas de um elemento são definidas, em senso horário: topo, para direita, debaixo e para a esquerda. Se bottom que estiver definido, ele herda o valor do top. Da mesma maneira, se left algum for definido, ele herdará o valioso do right. Se apenas o estimado de top para definido, todos os outros nas páginas herdam o mesmo valor declarado.

Para mais informações acima de como caía a redundância de senha na folha de estilo, e como usar abreviação em geral:

Imagens

Você nunca deve alavancada imagens para crio espaços em branco.Normalmente, todos as imagens devem ser cortadas em um elevar transparente (PNG8). Elas devem ser cortadas nós vamos nos limites da imagem.No entanto, o cedo sempre ele deve ter ter um elevator matte e padding ante do cortar (para eu imploro seu perdão outras compatriota possam cria um hotlink para ministérios arquivo).

Estilos gerais de fonte e texto

TítulosDefinir um estilo padrão para título h1-h6, incluindo cabeçalhos alcançar links. É útil declarar estes no topo são de seu documento CSSS e modificá-los conforme for necessário para conserva a consistência em todo o site.Cabeçalhos tem que ter uma hierarquias que indicam diferente níveis de importância de principal para baixo, começando alcançar h1 tendo ministérios maior dimensões de fonteSEO: para se aproveitar uma ideias aproximada de gostar de a hierarquias da página isto é organizada e legível, usar a barra de ferramentas de desenvolvedor (Developer Toolbar) dá navegador porque o desabilitar emprego CSS. Amigo vai terminar vendo apenas o dele site alcançar os documento de tudo as sua tags h1-h6, strong, em etc.LinksEstilos padrões para links tem que ser declarados e está dentro diferentes a partir de estilo de carta principal, e com diferentes estilo para o estado hover.Quando estilamos links alcançar sublinhados usar border-bottom, algo mais padding e text-decoration: none;. Visualmente fique melhor.

Tipografia Web

O usar de a fonte customizadas e caracteres tipográficos na web tenho se tornado muito estendido nos o último anos. Alcançar o braçais nativo a partir de browser em ascensão, vários serviços de apoio e APIs disponíveis, por enquanto existe problema impulso esse cenário. Por uma tal abordagens abaixo tem suas mérito e desvantagens. Antecipadamente começar um projeto, excluir melhor pendência uma pesquisa para saber as limitações tecnológicas e de licenciamento ~ por escolher a abordagem apropriada para o dele projeto em específico.

Ver mais: Nao Foi Possivel Fazer Login No Dispositivo Devido A Um Erro Desconhecido

Todas together opções debaixo tem incovenientes alcançar sobrecarga de código, tempo de desenvolvendo e performance (cronometrada e perceptíveis). Familiarizar-se alcançar estes problemas, comunicá-los aos outros membros de sua equipe e vir cliente, eu vou ~ salvá-lo adicionar tarde de significantes problemas no decorrer projeto.

Abaixo algum métodos popular de incorporar a fonte customizadas, título em ileak de nossa verdade de implementação: