2010-04-14 15 views
10

He leído un artículo titulado "Tags First GWT", en el que el escritor sugiere usar GWT para el manejo de eventos y CSS para el diseño. Simplemente no sé si el beneficio de la bondad de compatibilidad entre navegadores de GWT supera la flexibilidad ofrecida por el diseño puro de CSS.Paneles de diseño GWT frente a diseño CSS

GWT

GWT 2.0 tiene algunos paneles de diseño elegante, pero para llegar a cambiar el tamaño adecuadamente que realmente necesita para construir el árbol completo panel de contención desde el panel de la raíz hacia abajo. Es una cosa de todo o nada, parece.

CSS

Usted puede utilizar el CSS a la disposición una aplicación demasiado, y me siento inclinado a hacer eso, aunque sólo sea para justificar mi compra de varios libros que promocionan el Evangelio 'marcado semántico'. La desventaja podría ser las incompatibilidades entre navegadores, cuya prevalencia todavía tengo que determinar.

¿Qué camino tomar?

¿Cuál es su opinión? ¿Son los problemas entre navegadores lo suficientemente malos y prevalentes como para justificar el abandono de mis libros de CSS y la construcción de paneles de diseño de GWT?

+0

Qué quiere decir cuando se dice http://www.w3.org/TR/2009/WD-css3-layout-20090402/ diseños CSS? – Anurag

+0

No específicamente. Me refiero a la gran cantidad de técnicas de CSS para flotar, posicionar, dimensionar, fluir, superponer y aparear con objetos de HTML. – David

Respuesta

8

Estoy de acuerdo con la recomendación del autor: use GWT para la lógica del lado del cliente, pero aún use HTML y CSS para la presentación.

La nueva UI Binder & Los patrones de IU declarativos realmente lo alientan a escribir su HTML y CSS. Es más fácil para los diseñadores y hace que su código sea mantenible. Es posible que desee leer GWT HTML layout conventions on SO - explica cómo mezclar Widgets y plain-html/css para obtener ventajas de ambos mundos.

UI Binder hace que sea fácil de usar CSS usando <ui:style>. Con <ui:style>, puede generar CSS que sea específico para ese archivo. GWT automáticamente ofuscar y optimizar su CSS. Además, si mal escribe el nombre de la clase css, le dará un error en tiempo de compilación (que es genial) en lugar de descubrirlo cuando se implementa la página.

Dentro del <ui:style>, puede poner cualquier CSS válido. UIBinder también tiene formas de incluir una hoja de estilo global. Además, las imágenes de fondo en CSS se pueden combinar automáticamente en sprites/data: uris para el rendimiento.

Para obtener más información, le recomiendo leer el UI Binder Guide, y luego seguir la aplicación de muestra Contactos. Es una excelente manera de comenzar.

Además, me gustaría recomendar el uso del MVP pattern para el diseño de su aplicación GWT. Hay varios buenos artículos y la aplicación GWT Contacts Sample es una excelente manera de aprenderlo.

+0

Usar etiquetas en esa carpeta de interfaz de usuario es muy extraño. Quiero decir, ¿dónde están los selectores? – David

+0

Actualicé mi publicación. es una opción totalmente opcional, y aporta una gran potencia a su CSS. Sin embargo, si no se siente cómodo al respecto, puede omitirlo e incluir un archivo simple-old-css. –

0

Los problemas del navegador cruzado son lo suficientemente malos como para buscar alivio en un marco de algún tipo, especialmente si no es realmente un diseñador/desarrollador front-end. Pero no abandonaría los libros CSS todavía. Le ayuda a comprender lo que está pasando por debajo de las coberturas cuando la abstracción de un marco comienza a filtrarse, y lo que puede hacer al respecto.

Google mismo dice "Usted no está limitado a widgets pre-enlatados tampoco. Todo lo que puede hacer con el DOM y JavaScript del navegador se puede hacer en GWT, incluida la interacción con JavaScript escrito a mano". Presumiblemente eso incluye el estilo, si sabes cómo hacerlo (como lo harás si has leído y comprendido todos esos libros de CSS).

+0

Es cierto que puede hacer cualquier cosa en GWT. Todo es una simple cuestión de programación. Pero aprendí esta técnica de CSS flotante de margen negativo, ¿sabes? Argh, no lo sé. – David