CSS/DOM 中是什么阻止了带有 display: block 的输入框扩展到其容器的大小

2024-01-05

HTML/CSS 示例:

<div class="container">
    <input type="text" />
    <div class="filler"></div>
</div>

div.container {
    padding: 5px;
    border: 1px solid black;
    background-color: gray;
}

div.filler {
    background-color: red;
    height: 5px;
}

input {
    display: block;
}

http://jsfiddle.net/bPEkb/3/ http://jsfiddle.net/bPEkb/3/

Question

为什么输入框不扩展为具有相同的外部宽度,比如说div.filler?也就是说,为什么输入框不像其他块元素那样扩展以适应其容器width: auto; do?

我尝试检查 Firebug 中的“用户代理 CSS”,看看我是否可以在那里想出一些东西。没有运气。我找不到 CSS 中的任何具体差异,我可以专门链接到与常规行为不同的输入框div.filler.

除了好奇之外,我还想知道为什么要追根究底,找出一种设置宽度一次就忘记的方法。我目前明确设置两者宽度的做法input它包含的块元素似乎是多余的并且不够模块化。虽然我熟悉将输入元素包装在 div 中然后分配给输入元素负边距的技术,但这似乎是非常不可取的。

borkweb 和 Phrogz 都提供了利用border-box旧时代的盒子模型。谢谢你!我想重申我的问题的重点,我打算将其与针对我的实际问题提出的解决方案 https://stackoverflow.com/questions/1030793/input-with-displayblock-is-not-a-block-why-not:

规范会导致输入框的格式与普通块元素不同,例如div是? border-box 解决方案很棒,但它不能满足人们想要弄清楚为什么输入框首先是这样的以及为什么不能使它们的行为与普通框完全相同的愿望divs,现在不使用 border-box 模型。


好吧,由于原始问题的澄清......我做了一些挖掘并发现这些哀叹 http://meyerweb.com/eric/thoughts/2007/05/15/formal-weirdness/ and 本文 http://reference.sitepoint.com/css/replacedelements.

有几个要素(<input>, <select>, <button>, <img>, <object>, and <textarea>)被认为是被替换的元素其外观和尺寸由外部资源定义。 (例如操作系统、插件等)

被替换的元素可以具有内在的 尺寸 - 宽度和高度值 由元素定义 本身,而不是通过它 文档中的环境。为了 例如,如果图像元素有 width设置为auto,宽度 将使用链接的图像文件。 内在尺寸也定义了 用于的内在比率 确定计算尺寸 元素应该只有一维 被指定。例如,如果仅 为图像指定宽度 元素(例如,100px)和实际的 图像宽 200 像素,宽 100 像素高,元素的高度 将缩放相同的量,以 50 像素。

替换的元素也可以具有视觉效果 规定的格式要求 元素,不受 CSS 控制; 例如,用户界面控件 为表单元素呈现。

W3C 的 CSS 2.1“视觉格式化模型详细信息”部分讨论 http://www.w3.org/TR/CSS21/visudet.html#Computing_widths_and_margins计算替换元素和非替换元素的宽度。

总的来说...对于某些表单元素来说非常烦人(<textarea>, <button>, and <input>)。它可以/会改变吗?可能不会很快......直到它的核心发生改变,我们将不得不坚持使用黑客:(

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS/DOM 中是什么阻止了带有 display: block 的输入框扩展到其容器的大小 的相关文章

  • 将自定义字体与 wkhtmltopdf 一起使用

    我正在尝试在使用 wkhtmltopdf 生成的 PDF 中使用自定义字体 我读到您不能使用 google webfonts 并且 wkhtmltopdf 使用 truetype ttf 文件 谁能证实这一点吗 所以我从 google we
  • 在每个打印页上重复水印? JavaScript 或 CSS

    所以 我有这个发票页面 我正在页面后面添加水印 我需要为要打印的每一页重复水印 问题是 我不知道会有多少页 可以有任意数量的页面 我需要在每个页面后面显示水印 这些图像取自 Google Chrome 的打印模式 这是该页面的 html 你
  • 多列定义列表[重复]

    这个问题在这里已经有答案了 我有一个 dl 像这样 dl dt Quantity dd dt Size dd dt Rise dd dt Color dd dd dt dd dt dd dt dd dt dl 该列表是通过 php 动态生成
  • 单击按钮重复动画

    我想每次单击按钮时都重复动画 我尝试做某事像这样 https jsfiddle net 91raod7e const dist document querySelector dist document querySelector butto
  • ReactTable 修复了最后一行

    我正在使用 ReactTable 最后我需要创建一些摘要 当分页存在时 它每次都应该可见 可以用react table来实现吗 我可以通过创建下一个表来部分解决这个问题 但我没有找到如何隐藏标题的方法 另一个问题是调整列宽度时 它不会应用于
  • javascript中怪异模式的元素宽度?

    我一直在浏览所有流行的 js 库 但我找不到一个具有 DOM 元素宽度函数的库 该函数实际上可以解释 Internet Explorer 中的怪异模式 问题是 当启用怪异模式时 填充和边框不会计入宽度 据我所知 当省略 doctype 或将
  • 如何仅使用CSS设置某个角的边框半径

    如上所示 我可以只给顶部部分而不给底部提供半径 或者有时给底部而不是顶部提供半径吗 有没有办法只给一个角提供边界半径 Like border radius top left top right bottom right bottom lef
  • IE bug:具有不透明背景色的绝对定位元素

    我有一个绝对定位的 DIV 需要捕获 onclick 事件 事实证明 在 IE7 中 DIV 似乎没有诸如单击甚至光标之类的 足迹 例如 div width 200px height 200px position absolute bord
  • 自定义 WP 主题时,我应该将导航栏放在“”标签之前还是之后?

    我正在通过制作子主题来自定义 WP 主题 我将 Bootstrap 中的导航栏放入子主题目录中的 header php 文件中 但是 我不确定在哪里放置导航栏代码 我可以把它都放在前面and之后标记成功 例如 无论我选择哪一个 导航栏都显示
  • 将 Div 放置在另一个 DIV 下方

    我有两个 DIV 元素 其中之一具有绝对位置 主 DIV 的左下角 第二个 DIV 是隐藏的 只有单击链接才能显示 我需要第二个出现在第一个下方 但由于第一个 div 的位置是绝对的 第二个 div 出现在第一个 div 之上 HTML 代
  • html 电子邮件内的背景图像 css - Gmail 不支持

    我想向我的用户发送如下所示的带有背景图像 css 的 html 正文电子邮件 div style width 500px height 1000px background color black background image none
  • 在 ember-cli 中安装 Foundation 5

    我对 ember 相当陌生 对构建工具也很陌生 我目前正在使用通常的基础安装以及基础 cli 和指南针来编译我的 css 这有点痛苦 并且对于团队工作来说非常糟糕 我认为用 Bower 安装文件并使用会更好ember cli compass
  • div 中的中心文本?

    我有一个div 30px高和500px宽的 这div可以包含两行文本 一行在一行 并相应地设置样式 填充 但有时它只包含一行 我希望它居中 这可能吗 要水平居中 请使用text align center 要垂直居中 只能使用vertical
  • 滚动时的 CSS 背景模糊

    我有固定的背景图像 滚动时我希望图像变得模糊 我知道如何在 css 中进行模糊 但在特定的滚动位置进行 这是一个例子 https medium com good music f160ba9e6c52 https medium com goo
  • 如何在Yii框架中向Form添加类?

    我在 Yii 中有一个表单 我想向该表单添加一个类
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • CSS 到底如何计算相对尺寸

    我想更好地理解某些 CSS 行为 这与具体问题无关 我只是在调试网站时遇到的 让我们在固定位置的 div 中放置一个全宽图像 div img style width 100 src https via placeholder com 150
  • 为什么我的交互式图像仅在 Internet Explorer 上出现故障?

    我的问题 我为自己制作了一个图像地图 交互式图像 它在 Chrome safari 和 Firefox 上完美运行 然而 当我在可怕的互联网浏览器上尝试它时 它真的很糟糕 这些小点应该扩展到更大的盒子中 在互联网浏览器上它要么不起作用 要么
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style

随机推荐

  • 使用 Brunch 控制脚本串联的顺序

    使用 Brunch 时控制脚本 样式表连接顺序的最佳实践是什么 我的问题的一个简单版本涉及使用 Twitter Bootstrap 的应用程序 这需要 jQuery Bootstrap 要求首先加载 jQuery 最初我的供应商 目录中有以
  • 查看单个文件时,Xcode 快速帮助显示“无快速帮助”

    当我打开 Xcode 项目时 快速帮助功能工作得很好 但是当打开文件时 例如abc swift 不在打开的项目中 则不会出现文档 这是一个例子 安装该版本Command Line Tools为你的 Xcode Xcode menu gt O
  • 尝试序列化实体框架对象时出现 XML 序列化错误

    我有通过实体框架获取的实体 我使用的是 Code First 所以它们是 POCO 当我尝试使用 XmlSerializer 对它们进行 XML 序列化时 出现以下错误 方式 System Data Entity DynamicProxie
  • MySql select IN 子句字符串逗号分隔

    我需要按以下方式执行选择查询 select from my table where id NOT IN comma delimited string 实现这一目标的正确方法是什么 考虑到我控制发送字符串的客户端代码 是否有更好的方法 该字符
  • 根据R中的另一列删除重复日期

    我有一个时间序列 其中包含几个小时的多个条目 date wd ws temp sol octa pg mh daterep 1 2007 01 01 00 00 00 100 1 5 9 0 0 8 D 100 FALSE 2 2007 0
  • Magento:何时将变量传递给块,何时不传递?

    我最近发现使用分配方法在 toHtml 方法中将变量设置到块的强大功能 我的问题是 什么时候适合这样做 什么时候不适合 我正在创建一个新模块 在我看来 将所有变量分配给块并在视图文件中引用这些变量而不是设置类似的东西是非常好的 div di
  • 使用 Anaconda 安装 Pygame

    我正在尝试在 Mac 上安装 pygame 并遇到大量错误 我不能百分百确定这告诉了我什么 但它告诉了我很多 是不是说Pygame只兼容Python 3 5 因为 StackOverflow 上还有另一张票 在 Mac 上使用 anacon
  • 使用 gtag.js 获取客户端 ID

    谷歌发布gtag js https developers google com analytics devguides collection gtagjs 几个月前 作为 Google Analytics 跟踪的新方式 据我了解 最终取代了
  • Perl方法调用可以被拦截吗?

    你能在 Perl 中拦截一个方法调用 对参数做一些事情 然后执行它吗 是的 您可以拦截 Perl 子例程调用 我有一整章关于这类事情掌握 Perl http www masteringperl org 查看钩子 LexWrap http s
  • 如何将map转换为Spark的RDD

    我有一个数据集 它是一些嵌套映射的形式 它的 Scala 类型是 Map String LabelType Map Int Double 首先Stringkey 是每个样本的唯一标识符 value 是一个包含标签 为 1 或 1 的元组 以
  • Haxl 和 Stitch 中的并发数据访问

    这是我之前的后续question https stackoverflow com questions 27591599 are futures in scala really functional 据我了解Haxl http www cs
  • 如何将 Pillow EPS 调整为 JPG 质量

    我正在尝试使用 Pillow 将 EPS 图像转换为 JPEG 但结果质量较低 我正在尝试使用resize方法 但它被完全忽略了 我将 JPEG 图像的大小设置为 3600 4700 但结果图像有 360 470 尺寸 我的代码是 eps
  • Rails 对现有的 ActiveRecord 结果数组进行分页

    我通常在应用程序中使用 will paginate 进行分页 但我的搜索功能遇到了问题 我正在使用 Thinking Sphinx 进行全文搜索 它返回分页的结果 我遇到的问题是 在收到 Thinking Sphinx 的结果后 我需要将它
  • 使用带有子进程、Pipe、Popen 的 python 从 hdfs 读取/写入文件会出现错误

    我正在尝试在 python 脚本内读取 打开 和写入 hdfs 中的文件 但有错误 有人可以告诉我这里出了什么问题吗 代码 完整 sample py usr bin python from subprocess import Popen P
  • 我可以让堆太大吗?

    我明白 一个更大的堆意味着更长的 GC 暂停时间 https stackoverflow com questions 1651225 how to choose the jvm heap size 我对此表示同意 我的代码正在分析一些数据
  • 在c中将128分配给char变量

    输出是 128 的 32 位 2 的补码 即 4294967168 怎么样 include
  • 在 Spark Web UI 中无法看到已完成的作业

    我在用 bin spark submit运行我的 Spark 作业 它运行良好 但打开 Spark Web UI 我在已完成列表中看不到作业 bin spark submit name myapp master local conf spa
  • PyParsing 前瞻和贪婪表达式

    我正在使用 PyParsing 为查询语言编写解析器 并且我陷入了 我认为是 前瞻问题 查询中的一种子句类型旨在将字符串拆分为 3 个部分 字段名 运算符 值 其中字段名是一个单词 运算符是一个或多个单词 值是一个单词 带引号的字符串或带括
  • Xcode 8 故事板错误

    任何人都可以帮助我 我出了问题 我看不到我的故事板视图 子视图 图像视图 全部变成白色 并且显示错误 就像故事板文件一样 发生内部错误 编辑功能可能受到限制 我已经在 xcode 8 和 8 1 beta 最新 xcode 中打开我的项目
  • CSS/DOM 中是什么阻止了带有 display: block 的输入框扩展到其容器的大小

    HTML CSS 示例 div class container div