Meine Herren!
Für den Fall kannst du relative Maßangaben benutzen: % bietet sich hier an.
relative Angaben lösen das Problem auch nicht.
Relative Maßangaben beziehen sich ja auf etwas. In diesem Fall auf die Breite des Eltern-Elements. Du hättest also auch einfach dem Eltern-Element eine feste Breite geben können und im Stylesheet hättest du abstrakt Prozent-Angaben verwenden können.
Dann wäre die Kopplung etwas loser gewesen und den JavaScript-Teil hätte man vermeiden können. Auf M.s Beispiel übertragen.
Statt das alt-Attribut zu missbrauchen kannst du übrigens auch custom-Attribute selber schaffen: <img data-width="42" src="...">
So oder so bleibt natürlich eine unschöne Mischung von Geschäftslogik und Darstellung bestehen. Wenn Code-Eleganz auch eine gewisse Rolle spielt, würde ich hier ansetzen und mir überlegen, wieso PHP überhaupt die finale Breite des Diagramms berechnen muss.
“All right, then, I'll go to hell.” – Huck Finn