Digamos que a regra seja a seguinte:
.largeField {
width: 65%;
}
Existe uma maneira de obter '65% 'de volta de alguma forma, e não o valor do pixel?
Obrigado.
EDIT: Infelizmente, o uso de métodos DOM não é confiável no meu caso, pois tenho uma folha de estilo que importa outras folhas de estilo e, como resultado, o parâmetro cssRules acaba com um valor nulo ou indefinido .
Essa abordagem, no entanto, funcionaria na maioria dos casos simples (uma folha de estilo, várias declarações de folha de estilo separadas dentro da tag head do documento).
Respostas:
Receio que não haja uma maneira embutida. Você pode fazer algo assim:
fonte
class="largeField"
ao intervalo, atualmente você está selecionando um conjunto vazio.Maneira mais facil
fonte
style="width:65%"
).Isso é definitivamente possível!
Você deve primeiro ocultar () o elemento pai. Isso impedirá que o JavaScript calcule pixels para o elemento filho.
Veja meu exemplo .
Agora ... Eu me pergunto se sou o primeiro a descobrir esse hack :)
Atualizar:
One-liner
Ele deixará um elemento oculto antes da
</body>
tag, o que você pode desejar.remove()
.Veja um exemplo de one-liner .
Estou aberto a ideias melhores!
fonte
Você pode acessar o
document.styleSheets
objeto:fonte
styleSheets[0]
).for (var i=0; rules.length; i++)
funcionaria? Não deveria serfor (var i=0; i<rules.length; i++)
Atrasado, mas para usuários mais novos, tente fazer isso se o estilo css contiver uma porcentagem :
fonte
Um plugin jQuery baseado na resposta de Adams:
Retornará '65% '. Só retorna números arredondados para funcionar melhor se você gostar do if (largura == '65%'). Se você tivesse usado a resposta de Adams diretamente, isso não funcionou (eu tenho algo como 64.93288590604027). :)
fonte
Com base na solução excelente e surpreendente da timofey, aqui está uma implementação Javascript pura:
Espero que seja útil para alguém.
fonte
{
no final da primeira linha.Eu tenho um problema semelhante em Obter valores de folha de estilo global em jQuery , eventualmente eu vim com a mesma solução acima .
Só queria cruzar as duas perguntas para que outras pessoas possam se beneficiar de descobertas posteriores.
fonte
Você pode colocar estilos que precisa acessar com jQuery em:
Então, deve ser possível (embora não necessariamente fácil) escrever uma função js para analisar tudo dentro das tags de estilo no cabeçalho do documento e retornar o valor de que você precisa.
fonte
Você pode usar a função css (largura) para retornar a largura atual do elemento.
ie.
Veja também: http://api.jquery.com/width/ http://api.jquery.com/css/
fonte
Não há nada em jQuery e nada simples mesmo em javascript. Pegando a resposta de timofey e executando com ela, criei esta função que funciona para obter todas as propriedades que você deseja:
fonte
Converter de pixels em porcentagem usando multiplicação cruzada .
Configuração da fórmula:
1.) (element_width_pixels / parent_width_pixels) = (element_width_percentage / 100)
2.) element_width_percentage = (100 * element_width_pixels) / parent_width_pixels
O código real:
fonte