html - 了解内联元素?
问题描述
请参阅下面的 HTML:
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<span class="child">
<input type="text" name="submit" id="submit">
<input type="text" name="search" id="search">
</span>
</body>
</html>
和下面的CSS:
#search
{
display:inline;
margin:100px;
}
它似乎确实尊重顶部和底部边距,如下所示:
为什么要尊重顶部和底部边距?这个问题似乎表明内联元素不应该尊重顶部和底部边距:为什么缺少顶部和底部边距?
另外,我想了解何时使用 div 以及何时使用 span 并想出了这个:
- 如果一组元素包含至少一个块级元素,则使用 DIV。这迎合了元素组包含块级元素和内联元素的场景,也迎合了元素组仅包含块级元素的场景。
- 如果元素组包含所有内联元素,则使用 SPAN。
解决方案
从规范
这些属性对不可替换的内联元素没有影响。
input
是一个替换的内联元素(https://html.spec.whatwg.org/multipage/rendering.html#replaced-elements)
我想了解何时使用 a
div
以及何时使用 aspan
没有通用规则,您需要知道的唯一规则是永远不要将block
元素放入inline
元素中。这将导致一些意想不到的和非直观的行为
推荐阅读
- django - 多数据库 - 每个数据库写入自身并从自身读取
- r - 用小时过滤时间戳的最佳方法
- c# - 权限拒绝:需要 android.permission.READ_PHONE_STATE
- android - 在此适配器中添加 AdView
- spring-boot - 将 Spring Boot 与 Spark 最新集成的问题
- javascript - Formvalidation 中的 JavaScript 错误消息
- php - 错误:在从 AngularJS 上传的 PHP 中“尝试获取非对象的属性”
- javascript - Bootstrap 4 - 使用 Javascript 显示模式
- mysql - 如何在 Mac 上使用 MAMP 在 mysql 中禁用严格模式
- c# - 将元素添加到数组