【问题标题】:Dynamically resize divs in a table using CSS使用 CSS 动态调整表格中 div 的大小
【发布时间】:2017-02-04 20:37:56
【问题描述】:

我已经搜索过这个站点,似乎动态调整组件大小的最佳方法是通过 CSS“位置”和“宽度/高度”参数。

我有一个部分看起来像这样的应用:

它目前正在通过 Javascript ($(window).width(), $(window).height()) 调整大小,我想通过 CSS 正确地做到这一点。

这是我的表格布局:

<table class="table">
    <tr >
        <td >
            <div id="chartdiv1" ></div>
        </td>
        <td rowspan="3">
            <div id="Simulation" ></div>
            <div id="SimLabels" style="border: dashed; z-index: 1; width: 190px; position: relative; ">
                <input type="checkbox" onchange="redrawSim()" checked="checked" id="BedMassLabel"><strong style="color: #4bb2c5;">Bed Mass (kg)</strong><br />
                <input type="checkbox" onchange="redrawSim()" checked="checked" id="H2OBedLabel"><strong style="color: #EAA228;">H2O in Fluid Bed (kg)</strong><br />
                <input type="checkbox" onchange="redrawSim()" checked="checked" id="BedTempLabel"><strong style="color: #c5b47f;">Temperature of Bed (C)</strong><br />
                <input type="checkbox" onchange="redrawSim()" checked="checked" id="evapRateLabel"><strong style="color: #579575;">Evaporation Rate (?)</strong>
            </div>
        </td>
    </tr>
    <tr >
        <td>
            <div id="chartdiv2" ></div>
        </td>
    </tr>
    <tr >
        <td >
            <div id="chartdiv3" ></div>
        </td>
    </tr>    
</table>

我尝试了许多位置、宽度和高度的组合,但似乎无论我为宽度/高度设置多少百分比,布局都有自己的想法。

应该提一下,我同时使用了 MVC 和 Twitter Bootstrap,所以我的 html 可能受此影响。有人可以帮我修复我的 html,以便它通过动态大小复制上面的设计吗?

【问题讨论】:

    标签: html css asp.net-mvc twitter-bootstrap html-table


    【解决方案1】:

    为了布局目的,最好使用&lt;div&gt; 元素而不是表格。检查此SO Post 了解其背后的原因。

    由于您使用的是 Twitter Bootstrap,因此您最好的选择是使用 Bootstrap 的出色(和核心功能)grid system

    这是使用 Bootstrap 2.3 的快速设置:

    <div class="row">
        <div class="span3">
            <div class="row">
                <div class="span12">
                    <div id="chartdiv1" ></div>
                </div>
            </div>
            <div class="row">
                <div class="span12">
                    <div id="chartdiv2" ></div>
                </div>
            </div>
            <div class="row">
                <div class="span12">
                    <div id="chartdiv3" ></div>
                </div>
            </div>
        </div>
        <div class="span9">
           <div id="Simulation" ></div>
        </div>
    </div>
    

    或使用 Bootstrap 3 RC1:

    <div class="row">
        <div class="col-lg-3">
            <div class="row">
                <div class="col-lg-12">
                    <div id="chartdiv1" ></div>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-12">
                    <div id="chartdiv2" ></div>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-12">
                    <div id="chartdiv3" ></div>
                </div>
            </div>
        </div>
        <div class="col-lg-9">
           <div id="Simulation" ></div>
        </div>
    
    </div>
    

    【讨论】:

    • 好的,我也试过了,我的网格系统问题是让我的第二列跨越 3 行......那,我的标签 div 需要与我的模拟 div 在同一个单元格中,有没有办法在网格中做到这一点?最重要的是,我在调整大小时仍然遇到类似的问题,当我将控制图的高度设置为“33%”时,它们都会超出页面的大小。
    • 检查我的编辑,这应该会让你走上正轨。请记住,每个
      包含 12 列,即使它的宽度更小,这就是为什么对于 3 个子行,我创建一个 12 列的大 div 跨越包含在 3-布局左侧的列。
    • 编辑:添加了
      以阐明更多布局。
    • 啊,非常感谢!不过,这看起来确实有点令人困惑,你能告诉我在这个 div 布局中我将在哪里插入我当前的 div 吗?
    • 没关系,你又在我前面编辑了哈哈我试试看,谢谢!
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签