css - CSS内联边距问题
问题描述
希望是一个简单的。
我在我的项目中非常专注于 CSS 方面的事情,但是我遇到了块与内联元素的问题,我真的不想继续前进,因为我知道它是学习 CSS 的基础。所以误会...
我有一个内联的 span 元素。
<span>Please Login With Your Details Below</span>
这个跨度上有一个margin-left
40px 显示
但是,如果我将视口缩小到足够小,它就会这样做
问题:所以在新行上它不会保留边距......
但是,如果我将其更改span
为display:block
它会这样做
这就是我想要的。
但是,我在https://www.impressivewebs.com/difference-block-inline-css/上阅读了有关内联元素的内容
将忽略顶部和底部边距设置,但将应用左右边距以及任何填充
所以可能是我完全误读了它,但据我所知,它应该应用左边距。有人可以解释为什么没有吗?
谢谢
解决方案
当用户代理决定内联内容不适合包含块时,它将内联内容拆分为多个内联框,以适应正确显示所需的包装而不溢出包含块(如果可能)。
因此,在您的示例中,Please Login With Your Details Below
当您缩小视口时会溢出包含元素,因此被分成两个内联框:
Please Login With Your Details
和Below
。
根据W3C 建议:
当一个内联框被分割时,边距、边框和填充在分割发生的地方(或在任何分割处,当有多个分割时)没有视觉效果。
他们提供了这个特定的示例来演示您遇到的情况:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<TITLE>Example of inline flow on several lines</TITLE>
<STYLE type="text/css">
EM {
padding: 2px;
margin: 1em;
border-width: medium;
border-style: dashed;
line-height: 2.4em;
}
</STYLE>
</HEAD>
<BODY>
<P>Several <EM>emphasized words</EM> appear here.</P>
</BODY>
</HTML>
- 边距插入“强调”之前和“单词”之后。
- 填充插入在“强调”之前、上方和下方以及“单词”之后、上方和下方。在每种情况下,三个边都呈现虚线边框。
推荐阅读
- import - 如何从父目录中的模块导入(Python)
- java - 插入数据库时如何查找意外令牌的原因?
- javascript - 更改每个函数的增量作为变量运行
- javascript - 从 JavaScript 数组中获取接下来的两个进行中的元素
- sql-server - 带有 IN 运算符的条件 where 子句不起作用
- python - 使用 ECB 模式加密解密字节时遇到问题
- .htaccess - 如何将 https://www.hhl.com/articlename.html?a=b 重定向到 https://www.hhl.com/articlename/?a=b
- iis - 存在 ADFS 401 问题的 SSO
- python - 列表和数组的形状以及如何在输入和输出中使用它们
- python - 如何找到 n 维 numpy 数组的第 i 个最大元素的索引?