Digamos que la regla es la siguiente:
.largeField {
width: 65%;
}
¿Hay alguna manera de recuperar el '65% 'de alguna manera, y no el valor de píxel?
Gracias.
EDITAR: Desafortunadamente, el uso de métodos DOM no es confiable en mi caso, ya que tengo una hoja de estilo que importa otras hojas de estilo y, como resultado, el parámetro cssRules termina con un valor nulo o indefinido .
Este enfoque, sin embargo, podría funcionar en la mayoría de los casos sencillos (una hoja de estilo, múltiples declaraciones de estilos separada dentro de la cabeza de la etiqueta del documento).
Respuestas:
No hay forma incorporada, me temo. Puedes hacer algo como esto:
fuente
class="largeField"
al intervalo, actualmente está seleccionando un conjunto vacío.La forma más fácil
fuente
style="width:65%"
).¡Esto es definitivamente posible!
Primero debe ocultar () el elemento padre. Esto evitará que JavaScript calcule píxeles para el elemento secundario.
Mira mi ejemplo .
Ahora ... me pregunto si soy el primero en descubrir este truco :)
Actualizar:
Un trazador de líneas
Dejará un elemento oculto antes de la
</body>
etiqueta, que es posible que desee.remove()
.Vea un ejemplo de una sola línea .
¡Estoy abierto a mejores ideas!
fuente
Podrías acceder al
document.styleSheets
objeto:fuente
styleSheets[0]
).for (var i=0; rules.length; i++)
funcionaría? ¿No debería serfor (var i=0; i<rules.length; i++)
Tarde, pero para los usuarios más nuevos, intente esto si el estilo CSS contiene un porcentaje :
fuente
Un complemento de jQuery basado en la respuesta de Adams:
Devolverá '65% '. Solo devuelve números redondeados para que funcione mejor si te gusta if (ancho == '65%'). Si hubiera usado la respuesta de Adams directamente, eso no había funcionado (obtuve algo como 64.93288590604027). :)
fuente
Sobre la base de la excelente y sorprendente solución de timofey, aquí hay una implementación pura de Javascript:
Espero que sea de ayuda para alguien.
fuente
{
al final de la primera línea.Tengo un problema similar al obtener valores de la hoja de estilo global en jQuery , finalmente se me ocurrió la misma solución que la anterior .
Solo quería vincular las dos preguntas para que otros puedan beneficiarse de los hallazgos posteriores.
fuente
Puede poner los estilos a los que necesita acceder con jQuery en:
Entonces debería ser posible (aunque no necesariamente fácil) escribir una función js para analizar todo dentro de las etiquetas de estilo en el encabezado del documento y devolver el valor que necesita.
fuente
Puede usar la función css (ancho) para devolver el ancho actual del elemento.
es decir.
Véase también: http://api.jquery.com/width/ http://api.jquery.com/css/
fuente
No hay nada en jQuery y nada sencillo incluso en javascript. Tomando la respuesta de timofey y ejecutándola, creé esta función que funciona para obtener las propiedades que desee:
fuente
Convierta de píxeles a porcentaje mediante la multiplicación cruzada .
Configuración de fórmula:
1.) (element_width_pixels / parent_width_pixels) = (element_width_percentage / 100)
2.) element_width_percentage = (100 * element_width_pixels) / parent_width_pixels
El código real:
fuente