Tôi sử dụng jqGrid với nhiều cột chứa thông tin boolean, được hiển thị dưới dạng hộp kiểm bên trong bảng (xem http://www.ok-soft-gmbh.com/VerticalHeaders/TestFixedO.htm làm ví dụ). Để hiển thị thông tin gọn hơn, tôi sử dụng tiêu đề cột dọc. Nó hoạt động rất tốt và hoạt động trong jqGrid trong tất cả các trình duyệt (xem thảo luận của tôi với Tony Tomov trong jqGrid forum http://www.trirand.com/blog/?page_id=393/feature-request/headers-with-vertical-orientation/), nhưng trong văn bản theo chiều dọc của IE bị mờ và không đủ đẹp (mở liên kết ở trên trong IE và bạn sẽ thấy chính xác ý tôi là gì). Tôi được hỏi từ người dùng tại sao văn bản được hiển thị quá lạ. Vì vậy, tôi đang nghĩ đến việc sử dụng thư viện SVG dựa trên JavaScript như SVG Web (http://code.google.com/p/svgweb/) hoặc Raphaël (http://raphaeljs.com/). SVG rất mạnh và rất khó tìm được một ví dụ điển hình. Tôi chỉ cần hiển thị văn bản dọc (-90 grad, từ dưới lên) và sử dụng nếu có thể mà không làm việc ở chế độ định vị tuyệt đối.Văn bản dọc bên trong tiêu đề bảng bằng thư viện SVG dựa trên JavaScript
Vì vậy, một lần nữa câu hỏi của tôi: tôi cần phải có một khả năng để hiển thị văn bản dọc (- 90 grad xoay) bên <td>
yếu tố của một tiêu đề bảng. Tôi muốn sử dụng thư viện SVG dựa trên JavaScript như SVG Web hoặc Raphaël. Giải pháp phải hỗ trợ IE6. Có ai có một ví dụ tham khảo tốt mà có thể giúp tôi làm điều này? Nếu ai đó viết một giải pháp toàn bộ vấn đề tôi sẽ hạnh phúc.
Để được chính xác ở đây là giải pháp hiện tại của tôi: Tôi xác định
.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 */;
}
xác định RotateCheckboxColumnHeaders
chức năng
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);
}
}
}
}
};
Và bao gồm một cuộc gọi như RotateCheckboxColumnHeaders(grid, 110);
sau khi tạo jqGrid.
nếu bạn đang tìm kiếm giải pháp tương đương CSS3 có thể là trang web này sẽ giúp bạn http://www.useragentman.com/IETransformsTranslator/ tôi có thể thử tạo lại lưới của bạn và thử trong IE6 – paul
@paul: Cảm ơn bạn đã tư vấn , nhưng tôi đã thử nghiệm 'DXImageTransform.Microsoft.Matrix' trước đây. Nó tạo ra kết quả tương tự như bộ lọc 'DXImageTransform.Microsoft.BasicImage (rotation = 3)' với cùng chất lượng.Nếu kích thước phông chữ là tương đối nhỏ everithing trông xấu. Hơn nữa, nếu một trong những cố gắng để quy mô trang, IE quy mô các hình ảnh xấu và không cố gắng để sản xuất các hình ảnh mới với chất lượng tốt hơn. Tất cả các trình duyệt khác tạo ra một kết quả hoàn hảo cũng có khả năng mở rộng hoàn hảo. Vì vậy, các problam ở lại mở ra. Ngay cả bản beta IE9 cũng không cho kết quả tốt hơn. – Oleg
Làm cho mọi thứ hoạt động cho IE là một chút khó khăn .... Chúng tôi thường có một cơ chế dự phòng dưới dạng hình ảnh png. Vì vậy, đặt cược tốt nhất của bạn có thể là sử dụng hình ảnh png nếu svg không làm việc .... – paul