html窗口化页面后排版混乱,html - 样式在打印中变得混乱 - 堆栈内存溢出

本文介绍如何使用媒体查询@media print处理HTML页面在窗口化打印时的排版混乱问题。通过调整CSS样式,如设置页边距、背景色、页面大小和旋转等,确保内容在打印时保持整洁。特别提到了针对不同浏览器的兼容性和解决IE缩小页面的问题。
摘要由CSDN通过智能技术生成

媒体查询可根据设备的方向进行匹配:

@media print and (orientation: landscape) {

/* landscape styles */

}

@media print and (orientation: portrait) {

/* portrait styles */

}

以这种方式工作。

要么

也许您可以尝试在线尝试过的此自定义CSS。

这是适用于大多数浏览器(Chrome,Firefox,IE9 +)的正确CSS。

首先将主体页边距设置为0,因为否则页边距将大于您在“打印”对话框中设置的页边距。 还设置背景颜色以使页面可视化。

body {

margin: 0;

background: #CCCCCC;

}

页边,边框和背景是可视化页面所必需的。

填充必须设置为所需的打印边距。 在打印对话框中,您必须设置相同的边距(在此示例中为10mm)。

div.portrait, div.landscape {

margin: 10px auto;

padding: 10mm;

border: solid 1px black;

overflow: hidden;

page-break-after: always;

background: white;

}

A4页面的尺寸为210mm x 297mm。 您需要从尺寸中减去打印边距。 并设置页面内容的大小:

div.portrait {

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个问题的原因可能是程序存在堆栈溢出的情况。可以使用工具如Valgrind来检查程序的内存使用情况,以便找出问题所在。 另外,如果您想在全屏模式下使用GLX,可以使用以下步骤: 1. 打开显示设备。 2. 创建一个窗口并将其设置为全屏模式。 3. 创建一个OpenGL上下文并将其与窗口关联。 4. 绘制图形。 5. 关闭OpenGL上下文和窗口。 以下是一个简单的示例程序: ``` #include <X11/Xlib.h> #include <GL/glx.h> int main() { Display *display = XOpenDisplay(NULL); Window root = DefaultRootWindow(display); GLint att[] = { GLX_RGBA, GLX_DEPTH_SIZE, 24, GLX_DOUBLEBUFFER, None }; XVisualInfo *vi = glXChooseVisual(display, 0, att); GLXContext ctx = glXCreateContext(display, vi, NULL, GL_TRUE); Colormap cmap = XCreateColormap(display, root, vi->visual, AllocNone); XSetWindowAttributes swa; swa.colormap = cmap; swa.event_mask = ExposureMask | KeyPressMask; Window win = XCreateWindow(display, root, 0, 0, 800, 600, 0, vi->depth, InputOutput, vi->visual, CWColormap | CWEventMask, &swa); XMapWindow(display, win); XStoreName(display, win, "My GLX Window"); glXMakeCurrent(display, win, ctx); // 绘制图形 glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); glXSwapBuffers(display, win); sleep(5); // 等待5秒钟 glXMakeCurrent(display, None, NULL); glXDestroyContext(display, ctx); XDestroyWindow(display, win); XCloseDisplay(display); return 0; } ``` 这个程序将创建一个800x600的窗口,并在其绘制一个黑色的背景。窗口将在5秒钟后关闭。请注意,此示例程序仅用于演示目的,实际应用程序可能需要更多的代码来处理输入事件、渲染3D场景等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值