html - 当span用于包含一个<input type ="text">时,为什么span默认设计成宽度小于其父元素的宽度

标签 html css

<body>
  <div>
    <input type="text">
  </div>
  <span>
    <input type="text">
  </span>
</body>

我的问题很简单。为什么 div 的宽度与其父级的宽度相同,而 span 的宽度却比其父级的宽度短?即如果 body 的宽度为 1000px,则 div 也有 1000px,但 span 只有 300px(因浏览器而异)

最佳答案

div 是 block 级元素,而 span 是内联元素。 block 级元素会占用父元素的宽度,而内联元素则不会。

例如,a 是一个内联元素。你不希望也不希望它占据整个父级:

Some text <a href="#">and an engaging link</a>.

但是,p 是 block 级元素。它占据整个父级(并且它不会容忍其他 block 级元素在它旁边):

<p>Some text</p>
<p>Other text -- not on the same line.</p>

关于html - 当span用于包含一个&lt;input type ="text">时,为什么span默认设计成宽度小于其父元素的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14028573/

相关文章:

CSS 图像叠加

html - 添加滚动以避免重叠

javascript - 滚动时如何制作视差侧边栏

javascript - 如何使用 PHP 值和输入值作为输入进行动态 JavaScript 调用

html - 如何在 css 中的各个部分之间获取图像

html - 为什么列表项没有填满滚动无序列表的宽度?

javascript - moment.js 中的 isValid() 和 _isValid 有什么区别?

html - CSS - 绝对定位元素受同级边距影响?

html - 如何集中一个 "short bio"?

html - 在 flash 顶部带有菜单下拉菜单的 iframe 使 flash 不可点击