zoukankan      html  css  js  c++  java
  • colspan width issue

    【问】

    I'm having trouble setting fixed widths on columns which use colspan.

    It seems that neither IE8, Firefox or Chrome can figure out how to correctly size columns with colspan.

    Try the following code to see the problem in action:

    <h2>One table with colspans, incorrect cell dimensions</h2>

    <table border="1">

    <tr>

    <td style="20px;">20</td>

    <td style="50px;" colspan="2">50</td>

    <td>a</td>

    <td>a</td></tr>

    <tr>

    <td style="50px;" colspan="2">50</td>

    <td style="20px;">20</td>

    <td>a</td>

    <td>a</td></tr>

    </table>

     

    <h2>Split tables, correct cell dimensions</h2>

    <table border="1">

    <tr>

    <td style="20px;">20</td>

    <td style="50px;">50</td>

    <td>a</td>

    <td>a</td></tr>

    </table>

    <table border="1">

    <tr>

    <td style="50px;">50</td>

    <td style="20px;">20</td>

    <td>a</td>

    <td>a</td></tr>

    </table>

    Can anyone explain why this might be happening, and if there is a workaround.

    EDIT:

    have tried doctypes

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

     

    【答】

     

    Because your column widths are contradicting. In row 1 you have columns widths 20, 50/2; in row 2 you have column widths 50/2, 20.

    Row 1, Column 1 is defined as 20.
    

    Row 1, Column 2 is defined as 50.
    

    Row 2, Column 1 is defined as 50.
    

    Row 2, Column 2 is defined as 20.
    

    You can't have overlapping colspans of different widths, the table cells need to line up. You're trying to draw this table:

    |-----|----------|
    

    |----------|-----|
    

    Which is not valid since the columns don't line up. In order to do this you need to add more columns:

    |-----|----.-----|
    

    |-----.----|-----|
    

    Where "." is a column that is hidden by the column span. Try this HTML:

    <!DOCTYPE HTML>
    

     

    <html>
    

        <head>
    

            <title>Test</title>
    

        </head>
    

        <body>
    

            <table border="1" style="table-layout: fixed;">
    

                <col style=" 20px;"/>
    

                <col style=" 30px;"/>
    

                <col style=" 20px;"/>
    

                <tbody>
    

                    <tr>
    

                        <td>20</td>
    

                        <td colspan="2">50</td>
    

                    </tr>
    

                    <tr>
    

                        <td colspan="2">50</td>
    

                        <td>20</td>
    

                    </tr>
    

                </tbody>
    

            </table>
    

        </body>
    

    </html>
    

     

    From: https://stackoverflow.com/questions/5373893/colspan-width-issue

     

  • 相关阅读:
    【面试必备】CSS盒模型的点点滴滴
    2013年终总结——求评点求指导
    【面试必备】javascript的原型和继承
    支持断点续传的文件上传插件——Huploadify-V2.0来了
    【面试必备】javascript操作DOM元素
    走进AngularJs(八) ng的路由机制
    走进AngularJs(七) 过滤器(filter)
    走进AngularJs(六) 服务
    HTML5+flash打造兼容各浏览器的文件上传方案
    免费的HTML5版uploadify送上
  • 原文地址:https://www.cnblogs.com/time-is-life/p/7396821.html
Copyright © 2011-2022 走看看