Manchmal benutze ich die folgenden:
@eval BORDER_SIZE_PLUS_2 2+2+"px"; /* GWT evaluates this at compile time! */
Merkwürdig ist, dass dies nur funktioniert, wenn Sie stellen keine Leerzeichen zwischen dem +
Operator und die Operanden. Außerdem können Sie in @eval keine Konstanten verwenden, die zuvor von @def definiert wurden. Sie können jedoch Konstanten verwenden, die als statische Felder in einem Ihrer Java-Klassen definiert sind:
@eval BORDER_SIZE_PLUS_2 com.example.MyCssConstants.BORDER_SIZE+2+"px";
Oder Sie könnten die Berechnung vollständig von Java ausgeführt werden lassen:
@eval WIDTH com.example.MyCssCalculations.width(); /* static function,
no parameters! */
@eval HEIGHT com.example.MyCssCalculations.height();
.style {
width: WIDTH;
height: HEIGHT;
}
Aber was würde ich wirklich wie zu tun ist, um Ihren Vorschlag sehr ähnlich:
@def BORDER_SIZE 2;
.style {
width: value(BORDER_SIZE + 2, 'px'); /* not possible */
height: value(BORDER_SIZE + 3, 'px');
}
ich glaube nicht, dass in GWT 2.0 möglich ist. Vielleicht finden Sie eine bessere Lösung - hier ist die Dev Guide Seite zu diesem Thema.
Sehr gute Frage BTW (+1) –