Powiedzmy, że reguła jest następująca:
.largeField {
width: 65%;
}
Czy istnieje sposób, aby jakoś odzyskać „65%”, a nie wartość piksela?
Dzięki.
EDYCJA: Niestety używanie metod DOM jest zawodne w moim przypadku, ponieważ mam arkusz stylów, który importuje inne arkusze stylów, w wyniku czego parametr cssRules kończy się wartością null lub undefined .
Takie podejście zadziałałoby jednak w najprostszych przypadkach (jeden arkusz stylów, wiele oddzielnych deklaracji arkuszy stylów w tagu head dokumentu).
Odpowiedzi:
Obawiam się, że nie ma wbudowanej drogi. Możesz zrobić coś takiego:
źródło
class="largeField"
do zakresu, aktualnie wybierasz pusty zestaw.Najłatwiejszy sposób
źródło
style="width:65%"
.).Jest to jak najbardziej możliwe!
Najpierw musisz ukryć () element nadrzędny. Zapobiegnie to obliczaniu pikseli przez JavaScript dla elementu podrzędnego.
Zobacz mój przykład .
Teraz ... zastanawiam się, czy jako pierwszy odkryję ten hack :)
Aktualizacja:
Jednowierszowy
Pozostawi ukryty element przed
</body>
tagiem, co możesz chcieć.remove()
.Zobacz przykład jednej linii .
Jestem otwarty na lepsze pomysły!
źródło
Dostęp do
document.styleSheets
obiektu można było uzyskać :źródło
styleSheets[0]
).for (var i=0; rules.length; i++)
działało? Nie powinno byćfor (var i=0; i<rules.length; i++)
Późno, ale dla nowszych użytkowników, spróbuj tego, jeśli styl css zawiera procent :
źródło
Wtyczka jQuery oparta na odpowiedzi Adamsa:
Zwróci „65%”. Zwraca tylko zaokrąglone liczby, aby działały lepiej, jeśli lubisz if (szerokość == '65%'). Jeśli użyłbyś odpowiedzi Adamsa bezpośrednio, to nie zadziałało (mam coś takiego jak 64.93288590604027). :)
źródło
Opierając się na doskonałym i zaskakującym rozwiązaniu timofey, oto implementacja czystego JavaScript:
Mam nadzieję, że to komuś pomoże.
źródło
{
na końcu pierwszej linii.Mam podobny problem z pobieraniem wartości globalnego arkusza stylów w jQuery , ostatecznie znalazłem to samo rozwiązanie, co powyżej .
Chciałem tylko połączyć te dwa pytania, aby inni mogli skorzystać z późniejszych ustaleń.
źródło
Możesz umieścić style, do których potrzebujesz dostępu z jQuery w:
Wtedy powinno być możliwe (choć niekoniecznie łatwe) napisanie funkcji js, która przeanalizuje wszystko w tagach stylu w nagłówku dokumentu i zwróci potrzebną wartość.
źródło
Możesz użyć funkcji css (width), aby zwrócić bieżącą szerokość elementu.
to znaczy.
Zobacz też: http://api.jquery.com/width/ http://api.jquery.com/css/
źródło
Nie ma nic w jQuery i nic prostego nawet w javascript. Biorąc odpowiedź timofey i działając z nią, stworzyłem tę funkcję, która działa, aby uzyskać dowolne właściwości:
źródło
Konwertuj z pikseli na procent za pomocą mnożenia krzyżowego .
Konfiguracja formuły:
1.) (element_width_pixels / parent_width_pixels) = (element_width_percentage / 100)
2.) element_width_percentage = (100 * element_width_pixels) / parent_width_pixels
Rzeczywisty kod:
źródło