Radio sam ovako jedan calculator koji je trebao biti responzivan. http://bozoou.com/calculator/
E sad, kako bi vi pristupili rješavanju responzivnosti ovako nečega??
Ja sam išao sve matematikom i JS-om, a pitam se…jeli moglo drugačije??
Krenuo sam od visine ili širine elementa u kojem će se kreirati calculator (mainBox). Znajući omjer visine i širine calculatora, mogao sam iz jednog uvijek dobiti drugu dimenziju, zadržavajući taj omjer width/height fiksnim.
Zatim sam dimenzije svakom elementu računao u omjeru na te vanjske gabarite. Tu sam se prvi put susreo sa situacijom da sam htio i da font bude veći unutar većeg gumbića, tako da sam i font-size računao prema veličini polja gdje će se slova nalaziti.
Čak niti margina između buttona nije fiksna, nego je i ona responzivna. Tu je nastala mala problematika, …jer margina može biti 1px, ili 2px…itd. Nema između. Isto tako i dimenzije gumbića mogu biti samo okrugli brojevi. Tako da sam morao u konačnici prilagoditi vanjske dimenzije mainBoxu prema konačnim dobivenim dimenzijama buttonsa i margina. Jer je ispadalo da se to ne moze samo od sebe poklopiti, mainBox bi uvijek odstupao za par pixela.
Tako izračunate veličine elementima nisu same po sebi responzive, pa sam još ugradio funkciju na onresize, koja bi incijalzirala svaki put novi calculator kad bi došlo do promjene veličine nosećeg elementa, mainBox-a.
Moje pitanje je, dali je ovakav pristup opravdan za ovakvu situaciju…ili bi znali to rješiti elegantnije isključivo css-om??
Hvala!