É possível, diferente do que estou fazendo porque parece não funcionar, fazer isso? Eu quero ser capaz de ter subclasses que estão em uma classe para usar o CSS especificamente para essa classe. Subclasse.
CSS
.area1
{
border:1px solid black;
}
.area1.item
{
color:red;
}
.area2
{
border:1px solid blue;
}
.area2.item
{
color:blue;
}
HTML
<div class="area1">
<table>
<tr>
<td class="item">Text Text Text</td>
<td class="item">Text Text Text</td>
</tr>
</table>
</div>
<div class="area2">
<table>
<tr>
<td class="item">Text Text Text</td>
<td class="item">Text Text Text</td>
</tr>
</table>
</div>
Para que eu possa usar class = "item" para os elementos da classe css pai "area1", "area2". Eu sei que posso usar class = "area1 item" para fazer isso funcionar, mas não entendo por que tem que ser tão prolixo sobre isso. A subclasse css não deveria olhar em qual classe pai ela está para defini-la?
Nota: isso funciona no IE (usando 7 agora), mas não no FF, então estou assumindo que essa não é uma maneira padrão do CSS de fazer algo.
Para sua informação, quando você define uma regra como fez acima, com dois seletores encadeados:
Isso significa:
Tal como:
Infelizmente, não funciona no IE6, mas é isso que significa.
fonte
Seu problema parece ser a falta de espaço entre suas duas classes no CSS:
Deveria estar
fonte
você quer forçar apenas as crianças a serem selecionadas? http://css.maxdesign.com.au/selectutorial/selectors_child.htm
fonte
Basta colocar um espaço entre .area1 e .item, por exemplo:
este estilo se aplica a elementos com item de classe dentro de um elemento com área de classe1.
fonte
Basta colocar um espaço entre suas aulas
Aqui está uma referência muito boa para seletores CSS .
fonte
Na sequência da resposta de kR105 acima:
Meu problema era semelhante ao do OP (Pôster Original), só ocorria fora de uma tabela, então as subclasses não foram chamadas de dentro do escopo da classe pai (a tabela), mas fora dela, então tive que ADICIONAR seletores , como kR105 mencionado.
Aqui estava o problema: eu tinha duas caixas (divs), cada uma com o mesmo raio de borda (HTML5), preenchimento e margem, mas precisava torná-las em cores diferentes. Em vez de repetir esses 3 parâmetros para cada classe de cor, eu queria uma "superclasse" para conter raio de borda / preenchimento / margem, então apenas "subclasses" individuais para expressar suas diferenças (aspas duplas em torno de cada uma, pois não são realmente subclasses - veja meu post posterior). Funcionou assim:
HTML:
CSS:
Espero que alguém ache isso útil.
fonte
Essa é a espinha dorsal do CSS, a "cascata" do Cascading estilo .
Se você escrever suas regras CSS em uma única linha, será mais fácil ver a estrutura:
Usar várias classes também é um bom uso intermediário / avançado de CSS; infelizmente, há um bug bem conhecido do IE6 que limita esse uso ao escrever código de navegador cruzado:
IE6 IGNORA o primeiro seletor em uma regra multiclasse, então o IE6 aplica a regra .area1.larger como
O que significa que afetará TODOS os elementos .larger.
É um bug muito desagradável e infeliz (um de muitos) no IE6 que o força a praticamente nunca usar esse recurso do CSS se você quiser um arquivo CSS cross-browser limpo.
A solução, então, é usar prefixos de nome de classe CSS para evitar colisão com nomes de classe genéricos:
Também pode usar apenas uma classe, mas dessa forma você pode manter o CSS na lógica pretendida, embora saiba que .area1Larger afeta apenas .area1 etc.
fonte
A classe que você aplica no div pode ser usada como um ponto de referência para estilizar elementos com esse div, por exemplo.
Para ser super semântico, você deve mover a classe para a mesa.
fonte
você também pode ter duas classes dentro de um elemento como este
<div class = "item1 item2 item3"></div>
cada item da classe é sua própria classe
fonte
kR105 escreveu:
a borda e o texto da caixa seriam azuis, pois o estilo do .box2 atribui esses valores.
Também em minha postagem anterior, eu deveria ter enfatizado que adicionar seletores como fiz não é o mesmo que criar uma subclasse dentro de uma classe (a primeira solução neste tópico), embora o efeito seja semelhante.
fonte