Note that there are some explanatory texts on larger screens.

plurals
  1. POLarge dynamically sized html table with a fixed scroll row and fixed scroll column
    primarykey
    data
    text
    <p><strong>I need to display a large table on a web page and need to prevent the first column and first row from scrolling.</strong> I'd like to dynamically set the vertical size of this table (between some static size header/footer page content) to make it as tall as possible without forcing the browser window to have a vertical scrollbar.</p> <pre><code> browser window\/ +--------------------------------------------------------------+ /\ | /\ /\ /\ /\ /\ /\ /\ /\ | fixed static | web page header fields and text | | size | \/ \/ \/ \/ \/ \/ \/ \/ |__\/__ | +----&lt;&lt;&lt;table-scrollbar&gt;&gt;&gt;&gt;&gt;----------------+ | /\ |+--------------+--------+--------+--------+--------+-------+ | | || | |colspan | | | fixed | | | || fixed | fixed | fixed | fixed | fixed | more&gt; | | | |+--------------+--+--+--+---+----+--+--+--+--------+-------++ | | || fixed | | | | | | | | | | || | | |+--------------+--+--+--+---+----+--+--+--+--------+-------+t | | || fixed | | | | | | | | | | |a | | |+--------------+--+--+--+---+----+--+--+--+--------+-------+b | | || fixed | | | | | | | | | | |l | | |+--------------+--+--+--+---+----+--+--+--+--------+-------+e | set || fixed | | | | | | | | | | || | dynamic || multi-line | | | | | | | | | | |s | size at |+--------------+--+--+--+---+----+--+--+--+--------+-------+c | runtime || fixed | | | | | | | | | | |r | | |+--------------+--+--+--+---+----+--+--+--+--------+-------+o | | || fixed | | | | | | | | | | |l | | |+--------------+--+--+--+---+----+--+--+--+--------+-------+l | | || fixed | | | | | | | | | | |b | | || | | | | | | | | | | |a |+--------------+--+--+--+---+----+--+--+--+--------+-------+r | | || fixed, moreV | | | | | | | | | | || | | |+--------------+--+--+--+---+----+--+--+--+--------+-------++ |__\/__ | /\ /\ /\ /\ /\ /\ /\ /\ | /\ | web page footer fields and text | fixed static | \/ \/ \/ \/ \/ \/ \/ \/ | | size +--------------------------------------------------------------+ \/ </code></pre> <p>this only needs to work in modern browsers, using all/any: html, css, javascript, jquery</p> <p>order of importance: </p> <ul> <li>complex table with many form fields, hidden values, javascript collapsing of rows, etc. which I'll add later </li> <li>1st row will have colspans </li> <li>rows will have variable height</li> <li>1st row: fixed from vertical scroll, but can scroll horizontally</li> <li>1st column: fixed from horizontal scroll, but can scroll vertical</li> <li>dynamically size this "table" to fill the screen between the static size header/footer html</li> <li>location of the scroll bars (as depicted in my awesome ascii art above) isn't critical.</li> </ul> <p>here is a very basic html sample of the screen, without any of the scroll/sizing features:</p> <pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"&gt; &lt;HTML&gt; &lt;HEAD&gt; &lt;TITLE&gt;big scrolling table example&lt;/TITLE&gt; &lt;/HEAD&gt; &lt;BODY&gt; &lt;form name="MyForm" method="POST" action=""&gt; &lt;!-- static size header junk--&gt;&lt;!-- static size header junk--&gt;&lt;!-- static size header junk--&gt; &lt;table border="1" width="100%" cellspacing="1" cellpadding="0" align="center"&gt; &lt;tr&gt; &lt;td width="35%" align="left"&gt;header junk left&lt;/td&gt; &lt;td &gt;- HEADER JUNK MIDDLE -&lt;/td&gt; &lt;td width="35%" align="right"&gt;header junk right&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;br&gt; &lt;table border="0" width="95%" cellspacing="1" cellpadding="0" align="center"&gt; &lt;tr&gt; &lt;td width="60%" align="left"&gt;header junk left&lt;/td&gt; &lt;td width="40%" align="right"&gt;check it out! &lt;input type="checkbox" onchange="alert('your javascript here');" value="Y" name="checkitout"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;!-- big table here!!--&gt;&lt;!-- big table here!!--&gt;&lt;!-- big table here!!--&gt;&lt;!-- big table here!!--&gt; &lt;table border="1" width="95%" cellspacing="1" cellpadding="0" align="center"&gt; &lt;tr&gt; &lt;td&gt;fixed can be long&lt;br&gt;or short&lt;/td&gt; &lt;td colspan="4"&gt;scroll A&lt;/td&gt; &lt;td colspan="2"&gt;scroll B&lt;/td&gt; &lt;td &gt;scroll C&lt;/td&gt; &lt;td colspan="4"&gt;scroll D&lt;/td&gt; &lt;td colspan="2"&gt;scroll E&lt;/td&gt; &lt;td &gt;scroll F&lt;/td&gt; &lt;td colspan="4"&gt;scroll G&lt;/td&gt; &lt;td colspan="2"&gt;scroll H&lt;/td&gt; &lt;td &gt;scroll I&lt;/td&gt; &lt;td colspan="4"&gt;scroll J&lt;/td&gt; &lt;td colspan="2"&gt;scroll K&lt;/td&gt; &lt;td &gt;scroll L&lt;/td&gt; &lt;td colspan="4"&gt;scroll M&lt;/td&gt; &lt;td colspan="2"&gt;scroll N&lt;/td&gt; &lt;td &gt;scroll O&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;fixed 2&lt;/td&gt; &lt;td&gt;1 1 1 1 1 A&lt;/td&gt;&lt;td&gt;2 2 2 2 2 A&lt;/td&gt;&lt;td&gt;3 3 3 3 3 A&lt;/td&gt;&lt;td&gt;4 4 4 4 4 A&lt;/td&gt; &lt;td&gt;1 B&lt;/td&gt;&lt;td&gt;2 B&lt;/td&gt; &lt;td &gt;1 C&lt;/td&gt; &lt;td&gt;1 D&lt;/td&gt;&lt;td&gt;2 D&lt;/td&gt;&lt;td&gt;3 D&lt;/td&gt;&lt;td&gt;4 D&lt;br&gt;more...&lt;/td&gt; &lt;td&gt;1 E&lt;/td&gt;&lt;td&gt;2 E&lt;/td&gt; &lt;td &gt;1 F&lt;/td&gt; &lt;td&gt;1 1 1 G&lt;/td&gt;&lt;td&gt;2 2 G&lt;/td&gt;&lt;td&gt;3 G&lt;/td&gt;&lt;td&gt;4 4 4 4 G&lt;/td&gt; &lt;td&gt;1 H&lt;/td&gt;&lt;td&gt;222 H&lt;/td&gt; &lt;td &gt;1 I&lt;/td&gt; &lt;td&gt;1 J&lt;/td&gt;&lt;td&gt;2 J&lt;/td&gt;&lt;td&gt;3 J&lt;/td&gt;&lt;td&gt;4 J&lt;/td&gt; &lt;td&gt;1 K&lt;/td&gt;&lt;td&gt;2 2 K&lt;br&gt;more..&lt;br&gt;more..&lt;/td&gt; &lt;td &gt;1 L&lt;/td&gt; &lt;td&gt;1 M&lt;/td&gt;&lt;td&gt;22 M&lt;/td&gt;&lt;td&gt;333 M&lt;/td&gt;&lt;td&gt;4444 M&lt;/td&gt; &lt;td&gt;1 N&lt;/td&gt;&lt;td&gt;2 N&lt;/td&gt; &lt;td &gt;1 1 1 1 1 1 1 O&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;fixed 3&lt;/td&gt; &lt;td&gt;1 1 1 1 1 A&lt;/td&gt;&lt;td&gt;2 2 2 2 2 A&lt;/td&gt;&lt;td&gt;3 3 3 3 3 A&lt;/td&gt;&lt;td&gt;4 4 4 4 4 A&lt;/td&gt; &lt;td&gt;1 B&lt;/td&gt;&lt;td&gt;2 B&lt;/td&gt; &lt;td &gt;1 C&lt;/td&gt; &lt;td&gt;1 D&lt;/td&gt;&lt;td&gt;2 D&lt;/td&gt;&lt;td&gt;3 D&lt;/td&gt;&lt;td&gt;4 D&lt;br&gt;more...&lt;/td&gt; &lt;td&gt;1 E&lt;/td&gt;&lt;td&gt;2 E&lt;/td&gt; &lt;td &gt;1 F&lt;/td&gt; &lt;td&gt;1 1 1 G&lt;/td&gt;&lt;td&gt;2 2 G&lt;/td&gt;&lt;td&gt;3 G&lt;/td&gt;&lt;td&gt;4 4 4 4 G&lt;/td&gt; &lt;td&gt;1 H&lt;/td&gt;&lt;td&gt;222 H&lt;/td&gt; &lt;td &gt;1 I&lt;/td&gt; &lt;td&gt;1 J&lt;/td&gt;&lt;td&gt;2 J&lt;/td&gt;&lt;td&gt;3 J&lt;/td&gt;&lt;td&gt;4 J&lt;/td&gt; &lt;td&gt;1 K&lt;/td&gt;&lt;td&gt;2 2 K&lt;br&gt;more..&lt;br&gt;more..&lt;/td&gt; &lt;td &gt;1 L&lt;/td&gt; &lt;td&gt;1 M&lt;/td&gt;&lt;td&gt;22 M&lt;/td&gt;&lt;td&gt;333 M&lt;/td&gt;&lt;td&gt;4444 M&lt;/td&gt; &lt;td&gt;1 N&lt;/td&gt;&lt;td&gt;2 N&lt;/td&gt; &lt;td &gt;1 1 1 1 1 1 1 O&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;fixed 4&lt;/td&gt; &lt;td&gt;1 1 1 1 1 A&lt;/td&gt;&lt;td&gt;2 2 2 2 2 A&lt;/td&gt;&lt;td&gt;3 3 3 3 3 A&lt;/td&gt;&lt;td&gt;4 4 4 4 4 A&lt;/td&gt; &lt;td&gt;1 B&lt;/td&gt;&lt;td&gt;2 B&lt;/td&gt; &lt;td &gt;1 C&lt;/td&gt; &lt;td&gt;1 D&lt;/td&gt;&lt;td&gt;2 D&lt;/td&gt;&lt;td&gt;3 D&lt;/td&gt;&lt;td&gt;4 D&lt;br&gt;more...&lt;br&gt;more...&lt;br&gt;more...&lt;br&gt;more...&lt;/td&gt; &lt;td&gt;1 E&lt;/td&gt;&lt;td&gt;2 E&lt;/td&gt; &lt;td &gt;1 F&lt;/td&gt; &lt;td&gt;1 1 1 G&lt;/td&gt;&lt;td&gt;2 2 G&lt;/td&gt;&lt;td&gt;3 G&lt;/td&gt;&lt;td&gt;4 4 4 4 G&lt;/td&gt; &lt;td&gt;1 H&lt;/td&gt;&lt;td&gt;222 H&lt;/td&gt; &lt;td &gt;1 I&lt;/td&gt; &lt;td&gt;1 J&lt;/td&gt;&lt;td&gt;2 J&lt;/td&gt;&lt;td&gt;3 J&lt;/td&gt;&lt;td&gt;4 J&lt;/td&gt; &lt;td&gt;1 K&lt;/td&gt;&lt;td&gt;2 2 K&lt;br&gt;more..&lt;br&gt;more..&lt;/td&gt; &lt;td &gt;1 L&lt;/td&gt; &lt;td&gt;1 M&lt;/td&gt;&lt;td&gt;22 M&lt;/td&gt;&lt;td&gt;333 M&lt;/td&gt;&lt;td&gt;4444 M&lt;/td&gt; &lt;td&gt;1 N&lt;/td&gt;&lt;td&gt;2 N&lt;/td&gt; &lt;td &gt;1 1 1 1 1 1 1 O&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;fixed 5&lt;/td&gt; &lt;td&gt;1 1 1 1 1 A&lt;/td&gt;&lt;td&gt;2 2 2 2 2 A&lt;/td&gt;&lt;td&gt;3 3 3 3 3 A&lt;/td&gt;&lt;td&gt;4 4 4 4 4 A&lt;/td&gt; &lt;td&gt;1 B&lt;/td&gt;&lt;td&gt;2 B&lt;/td&gt; &lt;td &gt;1 C&lt;/td&gt; &lt;td&gt;1 D&lt;/td&gt;&lt;td&gt;2 D&lt;/td&gt;&lt;td&gt;3 D&lt;/td&gt;&lt;td&gt;4 D&lt;br&gt;more...&lt;/td&gt; &lt;td&gt;1 E&lt;/td&gt;&lt;td&gt;2 E&lt;/td&gt; &lt;td &gt;1 F&lt;/td&gt; &lt;td&gt;1 1 1 G&lt;/td&gt;&lt;td&gt;2 2 G&lt;/td&gt;&lt;td&gt;3 G&lt;/td&gt;&lt;td&gt;4 4 4 4 G&lt;/td&gt; &lt;td&gt;1 H&lt;/td&gt;&lt;td&gt;222 H&lt;br&gt;H&lt;br&gt;H&lt;br&gt;H&lt;br&gt;H&lt;/td&gt; &lt;td &gt;1 I&lt;/td&gt; &lt;td&gt;1 J&lt;/td&gt;&lt;td&gt;2 J&lt;/td&gt;&lt;td&gt;3 J&lt;/td&gt;&lt;td&gt;4 J&lt;/td&gt; &lt;td&gt;1 K&lt;/td&gt;&lt;td&gt;2 2 K&lt;br&gt;more..&lt;br&gt;more..&lt;/td&gt; &lt;td &gt;1 L&lt;/td&gt; &lt;td&gt;1 M&lt;/td&gt;&lt;td&gt;22 M&lt;/td&gt;&lt;td&gt;333 M&lt;/td&gt;&lt;td&gt;4444 M&lt;/td&gt; &lt;td&gt;1 N&lt;/td&gt;&lt;td&gt;2 N&lt;/td&gt; &lt;td &gt;1 1 1 1 1 1 1 O&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;fixed 6&lt;br&gt;6&lt;br&gt;6&lt;br&gt;6&lt;/td&gt; &lt;td&gt;1 1 1 1 1 A&lt;/td&gt;&lt;td&gt;2 2 2 2 2 A&lt;/td&gt;&lt;td&gt;3 3 3 3 3 A&lt;/td&gt;&lt;td&gt;4 4 4 4 4 A&lt;/td&gt; &lt;td&gt;1 B&lt;/td&gt;&lt;td&gt;2 B&lt;/td&gt; &lt;td &gt;1 C&lt;/td&gt; &lt;td&gt;1 D&lt;/td&gt;&lt;td&gt;2 D&lt;/td&gt;&lt;td&gt;3 D&lt;/td&gt;&lt;td&gt;4 D&lt;br&gt;more...&lt;/td&gt; &lt;td&gt;1 E&lt;/td&gt;&lt;td&gt;2 E&lt;/td&gt; &lt;td &gt;1 F&lt;/td&gt; &lt;td&gt;1 1 1 G&lt;/td&gt;&lt;td&gt;2 2 G&lt;/td&gt;&lt;td&gt;3 G&lt;/td&gt;&lt;td&gt;4 4 4 4 G&lt;/td&gt; &lt;td&gt;1 H&lt;/td&gt;&lt;td&gt;222 H&lt;/td&gt; &lt;td &gt;1 I&lt;/td&gt; &lt;td&gt;1 J&lt;/td&gt;&lt;td&gt;2 J&lt;/td&gt;&lt;td&gt;3 J&lt;/td&gt;&lt;td&gt;4 J&lt;/td&gt; &lt;td&gt;1 K&lt;/td&gt;&lt;td&gt;2 2 K&lt;br&gt;more..&lt;br&gt;more..&lt;/td&gt; &lt;td &gt;1 L&lt;/td&gt; &lt;td&gt;1 M&lt;/td&gt;&lt;td&gt;22 M&lt;/td&gt;&lt;td&gt;333 M&lt;/td&gt;&lt;td&gt;4444 M&lt;/td&gt; &lt;td&gt;1 N&lt;/td&gt;&lt;td&gt;2 N&lt;/td&gt; &lt;td &gt;1 1 1 1 1 1 1 O&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;!-- static size footer junk--&gt;&lt;!-- static size footer junk--&gt;&lt;!-- static size footer junk--&gt;&lt;!-- static size footer junk--&gt; &lt;table border="1" width="100%" cellspacing="1" cellpadding="0" align="center"&gt; &lt;tr&gt; &lt;td width="35%" align="left"&gt;footer junk left&lt;/td&gt; &lt;td &gt;- FOOTER JUNK MIDDLE -&lt;/td&gt; &lt;td width="35%" align="right"&gt;footer junk right&lt;/td&gt; &lt;/tr&gt; &lt;/form&gt; &lt;/BODY&gt; &lt;/HTML&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload