HTML中的行内元素和框元素详解
定义
传统的块级元素定义中只是说明了在文档流中形成了一个块,在前后加换行,这里有些笼统。 其实框元素是指宏观上的框元素,它包括3种类型:1.本身就是块级元素 2.dispaly被设置为类block 3.由于某些元素的包含关系迫使其形成块级元素。前2类比较容易理解,第3类稍后举例时候回说明。
而,行内元素也是指宏观上的行内元素,分类和上面一样。
注意,以上块级元素和行内元素都没有在table中,如果加入table会产生很多匿名块级元素或者匿名行内元素,更何况现在布局已经很少有table了。
例子
1、对于块级元素,前2类就不必举例了,属于正常情况,那么第三类具体是什么情况呢?
1)块级元素的所有子元素都是块级元素
<div>
<p>this is p1</p>
<p>this is p2</p>
<section>this is section</section>
</div>
那么div下面的p和section都各自占一行。正常显示。
2)块级元素里面包含块级元素和匿名文本
<div>
some
<p>this is p</p>
text
<p>this other p</p>
<span>this is span</span>
other text
</div>
按照官方说法,“if a block container box (such as that generated for the DIV above) has a block-level box inside it (such as the P above), then we force it to have only block-level boxes inside it.” 然而事实上并不是如此,只有在块级块周围的匿名文本元素才会产生块级效果,如上面的some和text显示为块级元素,二other text显示为行内元素。
3)行内元素包含块级
p{
display:inline;
}
span{
display:block;
}
<p>
some
<em>this is em</em>
<span>this is span</span>
text
</p>
上面的some和this isem显示在一行,thisis span和text各占一行。如果 一个行内
2、行内元素也只说明第三种情况
块级元素内包含行内元素和匿名文本
<p>
some
<em>em</em>
text
</p>
上面代码中some em text 显示在一行,这也就是匿名文本在行内元素周围显示为行内元素的效果,并且,这些匿名行内元素会继承他父级块元素的属性。这里特别说明一点,“white-space”属性不会产生任何匿名的行内元素。
总结
行内元素和块元素的定义对于布局有较大的影响,还有一个特殊的块级元素li,这个元素不仅产生主框,还会多出一个额外的序列编号,这2个是行内元素,但是整体显示为一个块级元素,可以更具list-type-style和list-style-position来确定mark box的位置。
参考:http://www.w3.org/TR/CSS21/visuren.html#containing-block
HTML中的行内元素和框元素详解的更多相关文章
- HTML span标签:用来组合文档中的行内元素
在DIV+CSS切图布局重构技术中,除了常常使用div标签外也常常使用span标签布局,通常也可以通过对span标签对象设置不同样式实现我们要的美化效果.这里主机吧主要讲的是span标签的定义和用法. ...
- html中的行内元素和块级元素小结
一.首先我们总结下行内元素和块级元素有哪些: 行内元素: <a>标签可定义锚<abbr>表示一个缩写形式<acronym>定义只取首字母缩写<b>字体加 ...
- HTML中元素的position属性详解
HTML中元素的position属性详解 转载自:https://blog.csdn.net/wangzunkuan/article/details/81540935 HTML中DOM元素有5种定 ...
- jquery移除、绑定、触发元素事件使用示例详解
这篇文章主要介绍了jquery移除.绑定.触发元素事件使用示例详解,需要的朋友可以参考下. unbind(type [,data]) //data是要移除的函数 $('#btn').unbind(&q ...
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- 第15.41节、PyQt(Python+Qt)入门学习:输入部件QComboBox组合框功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 Designer中输入工具部件中的Combo Box组合框与 ...
- 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)
1.简介 在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助. 2.select 下拉框 2.1Select ...
- 《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...
- 《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...
- STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解)
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) 前面 ...
随机推荐
- hdu3622
hdu3622 题意 每回合给定两个坐标点,可以选择一个放置炸弹,自己决定炸弹的半径,问 n 个回合后,使炸弹半径最小值最大. 分析 存在对立关系:每回合只能选择一个地方放置炸弹.i 表示 第一个位置 ...
- Eclipse导入项目常见问题----facet版本问题04
问题如下: 解决办法 右击项目,找到最下面的properties,在搜索facet jdk版本问题(有个红色感叹号)01:http://blog.csdn.net/baidu_37107022/art ...
- nodeJs中npm详解
npm 是 Node.js 的模块依赖管理工具.作为开发者使用的工具,主要解决开发 node.js 时会遇到的问题.如同 RubyGems 对于 Ruby 开发者和 Maven 对于 Java 开发者 ...
- 音视频编解码问题:javaCV如何快速进行音频预处理和解复用编解码(基于javaCV-FFMPEG)
前言: 前面我用了很多章实现了javaCV的基本操作,包括:音视频捕捉(摄像头视频捕捉和话筒音频捕捉),推流(本地音视频或者摄像头话筒混合推流到服务器),转流(rtsp->rtmp),收流(录制 ...
- 非滤波单目视觉slam笔记1
非滤波单目视觉slam 主要分为以下8部分 数据类型 数据关联 初始化 位姿估计 地图维护 地图生成 失效恢复 回环检测 数据类型 直接法(稠密,半稠密) 基本原理是亮度一致性约束,\(J(x,y) ...
- Vue2 全家桶仿 微信App 项目,支持多人在线聊天和机器人聊天
前言 这个项目是利用工作之余写的一个模仿微信app的单页面应用,整个项目包含27个页面,涉及实时群聊,机器人聊天,同学录,朋友圈等等,后续页面还是开发中.写这个项目主要目的是练习和熟悉vue和vuex ...
- 版本控制工具svn的安装与简单使用
版本控制工具多用于多人协作开发项目中,这不同于个人开发项目,想把自己代码怎样放置都可以,而且删除了代码很难查找. 版本控制工具类似于个人处理钱的过程,放于自己口袋管理类似于个人开发情形,如果自己钱丢了 ...
- ListView实现下拉刷新和上拉加载功能
1 public class RefreshListView extends ListView implements OnScrollListener { private View mHeaderVi ...
- scanner--inputstreamreader--console对比
1 JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的输入流,再桥接至字符流从字符流中读入数据.示例代码如下: ...
- PHP大批量插入mysql数据库的优化
<?php /** * Created by PhpStorm. * User: hanks * Date: 6/2/2017 * Time: 6:03 PM */ //PHP大批量插入mysq ...