我正在写一份报告,工作人员在PHP网站上浏览,完成后打印出来.这一切都相当简单;然而,当它打印出来时,我希望它的尺寸比工作人员使用的46英寸宽屏小,这样tables就可以清晰地显示在每一页上...

我的normal CSS是这样的:

div#reportPage {
    display: flex;
    flex-direction: column;
    align-items: center;
}

table#report {
    border-collapse: collapse;
    margin-bottom: 25px;
}

table#report>thead>tr>th,
table#report>tbody>tr>td {
    border: 1px solid white;
    padding: 5px;
}

table#report>thead>tr>th.pt {
    font-size: 1.25em;
}

th.dn::after {
    white-space: pre;
    content: "\A Alt Name";
    font-size: 0.8em;
    font-style: italic;
}

th.prov>p {
    font-size: 0.8em;
    font-style: italic;
    margin: 0px;
    padding: 2px;
}

PHP/HTML

function weeklyTable($patient)
{
    include "system/connect.php";
    try {
        $regData = $conn->query("SELECT * FROM `medications` WHERE `status` = 1 AND `patient` = '$patient' AND `type` = 1 ORDER BY `name` ASC")->fetchAll();
        echo "<table id='report'>";
        echo "<thead><tr><th colspan=99 class='pt'>$patient - Standard Meds</th></tr>
                     <tr><th class='dn'>Drug Name</th><th>Rx #</th><th class='prov'>Provider<p>Department</p></th><th>Dose/Pill</th>
                     <th>Q/F</th><th>TOD</th><th>Su</th><th>M</th><th>Tu</th><th>W</th><th>Th</th><th>F</th><th>Sa</th></tr></thead>";
        foreach ($regData as $rx) {
            if ($rx['type'] == 1) {
            }
        }
        echo "</table>";

        $regData = $conn->query("SELECT * FROM `medications` WHERE `status` = 1 AND `patient` = '$patient' AND `type` = 2 ORDER BY `name` ASC")->fetchAll();
        echo "<table id='report'>";
        echo "<thead><tr><th colspan=99 class='pt'>$patient - Advanced Meds</th></tr>
                     <tr><th class='dn'>Drug Name</th><th>Rx #</th><th class='prov'>Provider<p>Department</p></th><th>Dose/Pill</th>
                     <th>Q/F</th><th>TOD</th><th>Su</th><th>M</th><th>Tu</th><th>W</th><th>Th</th><th>F</th><th>Sa</th></tr></thead>";
        foreach ($regData as $rx) {
            if ($rx['type'] == 1) {
            }
        }
        echo "</table>";

        $regData = $conn->query("SELECT * FROM `medications` WHERE `status` = 1 AND `patient` = '$patient' AND `type` = 3 ORDER BY `name` ASC")->fetchAll();
        echo "<table id='report'>";
        echo "<thead><tr><th colspan=99 class='pt'>$patient - OTC Meds</th></tr>
                     <tr><th class='dn'>Drug Name</th><th>Rx #</th><th class='prov'>Provider<p>Department</p></th><th>Dose/Pill</th>
                     <th>Q/F</th><th>TOD</th><th>Su</th><th>M</th><th>Tu</th><th>W</th><th>Th</th><th>F</th><th>Sa</th></tr></thead>";
        foreach ($regData as $rx) {
            if ($rx['type'] == 1) {
            }
        }
        echo "</table>";
        echo "<br/><br/>";
    } catch (PDOException $e) {
        echo "PDOError: {$e->getMessage()}";
        die();
    } catch (Exception $e) {
        echo "ExceptionError: {$e->getMessage()}";
    }
}

我还在做桌子之类的东西,所以如果你看到里面有什么愚蠢的东西,请不要担心,我真的复制并粘贴了第一个多次.

所以我的"正常"font-size是1em(除了少数例外)...如果我想在ALL个项目上以0.75的修改量(原始字体大小的75%)打印,包括1.25em和0.8em的项目-除了重新编码css之外,还有没有一种干净的方法可以做到这一点(我已经在做@media print了,所以请不要认为我忘记了这一点)?

此外,无需担心注入-这是我们方面的所有输入,并在那里验证/prepared.

推荐答案

这是dandavis在 comments 中给出的答案,但他们从未将其添加为答案:

body { font-size: 75%; }

除非在页面的较小部分使用绝对单位,否则有效.我也会给你的body标签一个body的id,这样你就可以制定简单而强大的规则来级联你的默认值,比如

#body table { font-size: 66%; }

Select 器的ID部分使其超越行驶.

Javascript相关问答推荐

序列查找器功能应用默认值而不是读取响应

D3多线图显示1线而不是3线

调用removeEvents不起作用

jQuery提交按钮重新加载页面,即使在WordPress中使用preventDefault()

React Code不在装载上渲染数据,但在渲染上工作

在Vite React库中添加子模块路径

v—自动完成不显示 Select 列表中的所有项目

无法检测卡片重叠状态的问题

使用JQuery单击元素从新弹出窗口获取值

如何避免页面第一次加载时由于CSS样式通过JavaScript更改而出现闪烁

当id匹配时对属性值求和并使用JavaScript返回结果

单个HTML中的多个HTML文件

环境值在.js文件/Next.js中不起作用

如何在不影响隐式类型的情况下将类型分配给对象?

NG/Express API路由处理程序停止工作

有没有办法通过使用不同数组中的值进行排序

JQuery使用选项填充HTMLSELECT并设置默认结果,默认结果显示为空

在D3.js中创建具有旋转手柄的可拖动、可调整大小的框?

是否在图表中计算线上的点坐标?

在openstreemap/leaflet中,当鼠标在 map 上移动时,如何在小工具提示中实时显示坐标