YUI Reset CSS Faz com que <strong><em>isso não funcione</em></strong>
Pergunta
Esta linha no YUI Redefinir CSS está causando problemas para mim:
address,caption,cite,code,dfn,em,strong,th,var {
font-style: normal;
font-weight: normal;
}
Isso faz meu em
não itálico e meu strong
não ousado.O que está bem.Eu sei como substituir isso em minha própria folha de estilo.
strong, b
{
font-weight: bold;
}
em, i
{
font-style: italic;
}
O problema surge quando tenho um texto que é ambos em
e strong
.
<strong>This is bold, <em>and this is italic, but not bold</em></strong>
Minha regra para strong
torna ousado, mas a regra da YUI para em
torna tudo normal novamente.Como faço para corrigir isso?
Solução
Se a sua declaração forte vier depois da da YUI, a sua deverá substituí-la.Você pode forçar assim:
strong, b, strong *, b * { font-weight: bold; }
em, i, em *, i * { font-style: italic; }
Se você ainda oferece suporte ao IE7, precisará adicionar !important
.
strong, b, strong *, b * { font-weight: bold !important; }
em, i, em *, i * { font-style: italic !important; }
Isso funciona - veja você mesmo:
/*YUI styles*/
address,caption,cite,code,dfn,em,strong,th,var {
font-style: normal;
font-weight: normal;
}
/*End YUI styles =*/
strong, b, strong *, b * {
font-weight: bold;
}
em, i, em *, i * {
font-style: italic;
}
<strong>Bold</strong> - <em>Italic</em> - <strong>Bold and <em>Italic</em></strong>
Outras dicas
Eu usaria esta regra para substituir a redefinição do YUI:
strong, b, strong *, b *
{
font-weight: bold;
}
em, i, em *, i *
{
font-style: italic;
}
Se, além de usar YUI reset.css, você também usar YUI base.css, estará tudo pronto com um conjunto padrão de estilos básicos para vários navegadores.
Tive um problema semelhante quando adicionei o YUI Reset ao topo do meu arquivo CSS padrão.Descobri que a melhor coisa para mim era simplesmente remover todos os
font-weight: normal;
declarações do YUI Reset.Não percebi que isso afetou algo "entre navegadores".
Todas as minhas declarações foram após a redefinição do YUI, então não sei por que elas não tiveram efeito.
Contanto que seus estilos sejam carregados após os redefinidos, eles deverão funcionar.Que navegador é esse?porque eu mesmo trabalho de maneira semelhante e não encontrei esse problema, me pergunto se há algo errado em meus testes.
As folhas de estilo de redefinição são melhor usadas como base.Se você não quiser redefini-los ou fortes, remova-os da folha de estilo.
Como Chris disse, você não precisa usar o CSS exato que eles fornecem religiosamente.Gostaria apenas de salvar uma cópia em seu servidor e editar de acordo com suas necessidades.
Eu sugeriria evitar qualquer coisa que envolva hackear os arquivos YUI.Você precisa ser capaz de atualizar bibliotecas externas no futuro e se o seu site depender de versões editadas, há uma boa chance de ele ficar confuso.Acho que esta é uma boa prática geral para qualquer biblioteca de terceiros que você usa.
Então eu pensei esse a resposta estava entre as melhores
Se, além de usar YUI reset.css, você também usar YUI base.css, estará tudo pronto com um conjunto padrão de estilos básicos para vários navegadores.
Entendo o que você está dizendo.Eu acho que você pode adicionar uma regra CSS como esta:
strong em { font-weight: bold; }
ou:
strong * { font-weight: bold; }
Achei que tinha uma solução ideal:
strong, b
{
font-weight: bold;
font-style: inherit;
}
em, i
{
font-style: italic;
font-weight: inherit;
}
Infelizmente, o Internet Explorer não suporta "herdar". :-(