Utilizo jqGrid con muchas columnas que contienen información booleana, que se muestran como casillas de verificación dentro de la tabla (consulte http://www.ok-soft-gmbh.com/VerticalHeaders/TestFixedO.htm como ejemplo). Para mostrar información de forma más compacta, uso encabezados verticales de columna. Funciona muy bien y funciona en jqGrid en todos los navegadores (vea mi discusión con Tony Tomov en el foro jqGrid http://www.trirand.com/blog/?page_id=393/feature-request/headers-with-vertical-orientation/), pero en IE el texto vertical está borroso y no se ve lo suficientemente agradable (abra el enlace de arriba en IE y verá exactamente lo que quiero decir). Los usuarios me preguntaron por qué el texto se mostraba de forma tan extraña. Así que estoy pensando en usar una biblioteca SVG basada en JavaScript como SVG Web (http://code.google.com/p/svgweb/) o Raphaël (http://raphaeljs.com/). SVG es muy poderoso y es difícil encontrar un buen ejemplo. Solo necesito mostrar el texto vertical (-90 grad, de abajo hacia arriba) y usarlo si es posible sin trabajar en modo de posicionamiento absoluto.Texto vertical dentro de encabezados de tabla utilizando una biblioteca SVG basada en JavaScript
Así que una vez más mi pregunta: Necesito tener una posibilidad para mostrar el texto vertical (- rotación de 90 grad) en el interior <td>
elementos de un encabezado de la tabla. Quiero utilizar una biblioteca SVG basada en JavaScript como SVG Web o Raphaël. La solución debe ser compatible con IE6. ¿Alguien tiene un buen ejemplo de referencia que podría ayudarme a hacer esto? Si alguien publica una solución completa del problema, sería feliz.
Para ser exactos aquí está mi solución actual: defino
.rotate
{
-webkit-transform: rotate(-90deg); /* Safari 3.1+, Chrome */
-moz-transform: rotate(-90deg); /* Firefox 3.5+ */
-o-transform: rotate(-90deg); /* Opera starting with 10.50 */
/* Internet Explorer: */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); /* IE6, IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)" /* IE8 */;
}
definen RotateCheckboxColumnHeaders
función
var RotateCheckboxColumnHeaders = function (grid, headerHeight) {
// we use grid as context (if one have more as one table on tnhe page)
var trHead = $("thead:first tr", grid.hdiv);
var cm = grid.getGridParam("colModel");
$("thead:first tr th").height(headerHeight);
headerHeight = $("thead:first tr th").height();
for (var iCol = 0; iCol < cm.length; iCol++) {
var cmi = cm[iCol];
if (cmi.formatter === 'checkbox') {
// we must set width of column header div BEFOR adding class "rotate" to
// prevent text cutting based on the current column width
var headDiv = $("th:eq(" + iCol + ") div", trHead);
headDiv.width(headerHeight).addClass("rotate");
if (!$.browser.msie) {
if ($.browser.mozilla) {
headDiv.css("left", (cmi.width - headerHeight)/2 + 3).css("bottom", 7);
}
else {
headDiv.css("left", (cmi.width - headerHeight)/2);
}
}
else {
var ieVer = jQuery.browser.version.substr(0, 3);
// Internet Explorer
if (ieVer !== "6.0" && ieVer !== "7.0") {
headDiv.css("left", cmi.width/2 - 4).css("bottom", headerHeight/2);
$("span", headDiv).css("left", 0);
}
else {
headDiv.css("left", 3);
}
}
}
}
};
e incluyen una llamada como RotateCheckboxColumnHeaders(grid, 110);
después de crear jqGrid.
si está buscando una solución equivalente a CSS3 puede ser que este sitio lo ayude http://www.useragentman.com/IETransformsTranslator/ podría tratar de recrear su cuadrícula y probarlo en IE6 – paul
@paul: Gracias por su asesoramiento , pero ya probé 'DXImageTransform.Microsoft.Matrix' antes. Produce los mismos resultados que el filtro 'DXImageTransform.Microsoft.BasicImage (rotation = 3)' con la misma calidad.Si el tamaño de la fuente es relativamente pequeño, todo se ve mal. Además, si intenta escalar la página, escale la imagen mala y no intente producir la nueva imagen con la mejor calidad. Todos los demás navegadores producen resultados perfectos que también son perfectos y escalables. Entonces el problam se queda abierto. Incluso IE9 beta no da los mejores resultados. – Oleg
Hacer que las cosas funcionen para IE es un poco desafiante ... Generalmente tenemos un mecanismo de reserva en forma de imagen png. Por lo tanto, su mejor opción podría ser utilizar imágenes png si svg no funciona ... – paul