32766

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Update Dezember 2011: Dieser Bug ist in Opera 11.60 behoben

Das ist eine etwas interessante Zahl. Google liefert einige Bug-bezogene Threads. Der Grund, warum sie mir auffiel, ist, dass ich viele E-Mails wie diese bekomme:

Der AnythingSlider funktioniert nicht in Opera!!!

Sie hatten Recht... aber es schien ein ziemlich neues Problem zu sein und ich konnte nie herausfinden, warum. Es stellt sich heraus, dass alles auf 32766 zurückzuführen ist.

Ich bekam früher E-Mails von Leuten, die den AnythingSlider benutzten und etwa 80 Folien hinzufügten und er funktionierte nicht mehr. Der Grund war immer, dass das innere

    -Element, das alle Folien umschloss, zu schmal war, um ihre 80 Folien unterzubringen. Es war auf eine feste Breite von 9999px eingestellt. Die richtige Antwort wäre gewesen, den Wrapper auf die Breite einer Folie multipliziert mit der Anzahl der Folien zu setzen (über JavaScript). Aber aus reiner Faulheit fügte ich einfach eine weitere "9" zur Breite hinzu, wodurch der Wrapper auf 99999px kam. Dies war die Änderung, die Opera kaputt machte.

    Anscheinend kann Opera keine Breiten größer als 32766px verarbeiten. Es gibt einen Thread in den Opera-Foren, was bedeutet, dass ich hier nicht allein bin.

    Leser Erdei Csaba hat mich darauf aufmerksam gemacht

    32766px ... ist die höchste vorzeichenbehaftete 16-Bit-Zahl (32767) - 1.

    Opera muss diese Werte als vorzeichenbehaftete 16-Bit-Zahlen speichern. Und anscheinend werden höhere positive Werte (> 32767) als negative Werte verarbeitet. Die CSS1-Spezifikation verbot ausdrücklich negative Breitenwerte, aber die neueren Spezifikationen sagen nichts wirklich darüber aus. Sie gehen wahrscheinlich davon aus, dass sie nichts sagen mussten, weil es offensichtlich ziemlich lächerlich ist, eine negative Breite zu haben.

    Kurz gesagt: Die maximale Breite eines Elements in Opera beträgt 32766px, und das sollte wahrscheinlich behoben werden.