代码之家  ›  专栏  ›  技术社区  ›  avernet

如何设置窗体控件的宽度,使它们都具有相同的宽度?

  •  6
  • avernet  · 技术社区  · 14 年前

    请考虑以下示例:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
            <style type="text/css">
                div { width: 15em }
                input, textarea, select { width: 100%;
                    -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box }
            </style>
        </head>
        <body>
            <form>
                <div>
                    <input value="Input">
                </div>
                <div>
                    <textarea>Text area</textarea>
                </div>
                <div>
                    <select>
                        <option>One</option>
                        <option>Two</option>
                        <option>Three</option>
                    </select>
                </div>
            </form>
        </body>
    </html>
    

    在支持 border-box 框大小调整,根据需要呈现:

    Correct rendering http://img.skitch.com/20100522-c75mhdut2q32yc7u5r2tkft1n4.png

    然而,在IE 6/7上,这被渲染为:

    IE 6/7 rendering http://img.skitch.com/20100522-f5pkgnwwceaak3t8fqq2w16gfm.png

    如何在IE 6/7中获得与其他浏览器相同的渲染效果,而无需使用像素设置大小?

    4 回复  |  直到 14 年前
        1
  •  1
  •   Community leo1    7 年前

    这在CSS中是不可能的。我做了一些调查,发现以前也问过同样的问题 here . 解决方法是使用这个 boxsizing.htc 文件并将以下行添加到HTML头部:

    <!--[if lt IE 8]><style>input, textarea { behavior: url("boxsizing.htc"); }</style><![endif]-->
    
        2
  •  2
  •   reisio    14 年前

    解决方案是使用CSS和JavaScript来替换浏览器供应商串通起来难以设计样式的表单控件。select只是一个带有onmouseup事件的下拉菜单。JS驱动的文本编辑器(丰富而简单),可以替换大量在线的文本区域。为此,甚至还有伦敦银行同业拆借利率。( Example )

        3
  •  1
  •   mVChr    14 年前

    一个快速的解决方法可能是使用IE6/7浏览器 select { *width:102.5%; _width:102.5%; } 但如果太宽,这可能无法与像素对齐。

        4
  •  0
  •   eKek0    14 年前

    也许这能帮助你: CSS3 support for Internet Explorer 6, 7, and 8 . 从页面:

    IE-CSS3是提供 Internet Explorer支持多个 最流行的新款式 即将推出的CSS3标准。