相关疑难解决方法(0)

用显示输入:块不是一个块,为什么不呢?

为什么display:block;width:auto;我的文本输入不像div那样填充容器宽度?

我的印象是div只是一个具有自动宽度的块元素.在下面的代码中,div和输入不应该有相同的尺寸吗?

如何获得填充宽度的输入?100%宽度不起作用,因为输入具有填充和边框(导致最终宽度为1像素+5像素+ 100%+ 5像素+ 1像素).固定宽度不是一个选项,我正在寻找更灵活的东西.

我更喜欢直接回答变通方法.这似乎是一个CSS怪癖,理解它可能会有用.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <title>width:auto</title>

        <style>
        div, input {
            border: 1px solid red;
            height: 5px;
            padding: 5px;
        }
        input, form {
            display: block;
            width: auto;
        }
        </style>
    </head>

    <body>
        <div></div>
        <form>
            <input type="text" name="foo" />
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我应该指出我已经可以使用包装器解决方法做到这一点.除了与页面语义和CSS选择器关系的这种联系之外,我试图理解问题的本质以及是否可以通过改变INPUT本身的性质来克服它.

好的,这很奇怪!我发现解决方案是简单地添加max-width:100%到输入width:100%;padding:5px;.然而,这引发了更多问题(我将在另一个问题中提出),但似乎宽度使用普通的CSS框模型,max-width使用Internet Explorer边框模型.真奇怪.

好吧,最后一个似乎是Firefox 3中的一个错误.Internet Explorer 8和Safari 4将最大宽度限制为100%+填充+边框,这是规范所要做的.最后,Internet Explorer做对了.

天啊,这真棒!在玩这个游戏的过程中,在尊敬的大师Dean EdwardsErik Arvidsson的帮助下,我设法将三个独立的解决方案拼凑在一起,在具有任意填充和边框的元素上实现真正的跨浏览器100%宽度.见下面的答案.此解决方案不需要任何额外的HTML标记,只需要一个类(或选择器)和旧版Internet Explorer的可选行为.

html css

150
推荐指数
3
解决办法
7万
查看次数

如何使输入元素占据所有剩余的水平空间?

这是代码:

<div style="width:400px">
    some text..
    <input type="text" />
    <button value="click me" />
</div>
Run Code Online (Sandbox Code Playgroud)

如何使输入元素展开以填充所有剩余空间,同时保持在同一条线上?如果我把它100%放到它自己的线上......

html css

32
推荐指数
1
解决办法
2万
查看次数

为什么不"显示:阻止"和"宽度:自动"拉伸按钮来填充容器?

当我设置display: block;width: auto;按下按钮时,我希望按钮可以拉伸以填充容器,就像其他块元素一样.出于某种原因,它没有,至少在最新的Chrome中没有.

当谷歌搜索时,我发现很多人都在问同样的问题,他们对"我如何拉伸按钮来填充容器"的答案感到满意不是我感兴趣的.(我完全能够以任何方式拉伸我的按钮.)检查按钮属性,包括浏览器默认强加的按钮属性也没有帮助我.

我想了解,是什么导致按钮被忽略display: block; width: auto;并根据其内容保持水平大小.


这是我的意思:

button {
  display: block;
}
Run Code Online (Sandbox Code Playgroud)
<button style="width: auto;">button with `display:block; width:auto;`</button>
<button style="width: 100%;">button with `display:block; width:100%`</button>
Run Code Online (Sandbox Code Playgroud)

我希望按钮width:auto;也可以伸展.


只是为了绝对清楚,这不是重复输入显示:块不是一个块,为什么不呢?或任何类似的问题,除非只有答案描述如何拉伸有问题的元素.

编辑:它可能与CSS/DOM中的内容重复,它阻止了带有display:block的输入框扩展到其容器的大小.另一方面,这个问题根本没有提到按钮.你需要阅读答案,找出它也适用于按钮.

html css

20
推荐指数
1
解决办法
9334
查看次数

标签 统计

css ×3

html ×3