近改项目的时候发现html元素与css样式之间有些其妙的特性,准备挖掘,没想到牵扯出来很多知识点,东西比较杂且零碎,因为知识比较分散。
两类元素:行内元素(inline)和块级元素(block)
行内元素
代表元素:a img span input label button textarea
它们的特性:
1、元素宽高由元素内容决定,定义宽高无效(解决办法:display:inline-block或者只设置position:absolute属性而不进行定位)
2、相邻行内元素同在一行显示,直到一行排满了才会换行
3、行内元素可以嵌套其他行内元素但是不能嵌套块级元素
4、设置margin、padding的上下边距无效,只有设置左右边距才生效
特别:置换元素
html还有一些置换元素,这些元素本身就有内在的尺寸,如img、input、select、textarea、button这些元素。这些元素虽然是行内元素,但是由于它们拥有内在的宽高,故它们与其他inline元素相比又有特殊之处,就是可以定义宽高且生效。这就如同设置了display:inline-block一样的效果。
块级元素
代表元素:div h1~h6、p、li、table、tr、ol、dl
它们的特性:
1、每个块级元素都独占整行,宽度默认为父元素的宽度,高度默认为元素内容的高度
2、可以定义宽高,即使定位再小的宽度也会独占一行
3、可以嵌套行内元素及块级元素
4、设置所有的margin及padding任何边距都生效
5、改变独占一行的特性,解决办法为设置display:inline-block
文按照display分类。三者可以互相转化——设置display属性值:inline、inline-block、block
包含textarea、span、a、img、input、select等。
行内元素特征:
(1)设置宽高无效
(2)对margin仅设置左右方向有效,上下无效;padding设置上下左右都有效,即会撑大空间,行内元素尺寸 由内含的内容决定,盒模型中 padding, border 与块级元素并无差异,都是标准的盒模型,但是 margin 却只有水平方向的值,垂直方向并没有起作用。行内元素的水平方向的padding-left,padding-right,margin- left,margin-right 都产生边距效果,但是竖直方向的padding-top,padding-bottom,margin-top,margin-bottom都 不会产生边距效果。padding设置上下左右都有效,即会撑大空间但是不会产生边距效果。
(3)不会自动进行换行
(4)元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
行内块状元素特征:
(1)不自动换行
(2)能够识别宽高
(3)默认排列方式为从左到右
div、p、ul、h1等标题元素、ol、form、table等。
块状元素特征:
(1)能够识别宽高
(2)margin和padding的上下左右均对其有效
(3)可以自动换行
(4)多个块状元素标签写在一起,默认排列方式为从上至下
补充说明:
在HTML5中,程序员可以自定义标签,在任意定义标签中,加入display:block;即可,当然也可以是行内或行内块状。
可变元素为根据上下文语境决定该元素为块元素或者内联元素。
* applet - java applet
* button - 按钮
* del - 删除文本
* iframe - inline frame
* ins - 插入的文本
* map - 图片区块(map)
* object - object对象
* script - 客户端脚本
1、文档流(Document flow):浮动元素会脱离文档流,并使得周围元素环绕这个元素。而inline-block元素仍在文档流内。因此设置inline-block不需要清除浮动。当然,周围元素不会环绕这个元素,你也不可能通过清除inline-block就让一个元素跑到下面去。
2、水平位置(Horizontal position):很明显你不能通过给父元素设置text-align:center让浮动元素居中。事实上定位类属性设置到父元素上,均不会影响父元素内浮动的元素。但是父元素内元素如果设置了display:inline-block,则对父元素设置一些定位属性会影响到子元素。(这还是因为浮动元素脱离文档流的关系)。
3、垂直对齐(Vertical alignment):inline-block元素沿着默认的基线对齐。浮动元素紧贴顶部。你可以通过vertical属性设置这个默认基线,但对浮动元素这种方法就不行了。这也是我倾向于inline-block的主要原因。
4、空白(Whitespace):inline-block包含html空白节点。如果你的html中一系列元素每个元素之间都换行了,当你对这些元素设置inline-block时,这些元素之间就会出现空白。而浮动元素会忽略空白节点,互相紧贴.
分享成果,随喜正能量】人可以无知,但不可以无趣。在自己的心上种一颗快乐的种子,坚定、快乐的做自己的事,更让大家不那么无趣。
《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。
教程共两册,八十四讲。今日的内容是专题八“VBA与HTML文档”的第二节上半部分:HTML文档常用元素汇总
3)HTML 注释 <!-- 与 -->
注释标签 <!-- 与 --> 用于在 HTML 插入注释。可以将注释插入 HTML 代码中,这样可以提高其可读性,使代码更易被人理解。浏览器会忽略注释,也不会显示它们。开始括号之后(左边的括号)需要紧跟一个叹号,结束括号之前(右边的括号)不需要。
注释可以按下面的格式写:
<!--注释:文档头部,文档相关消息,并不提供文档内容-->
4)段落 <p>
段落是通过 <p> 标签定义的。浏览器会自动地在段落的前后添加空行。(<p> 是块级元素)
在上面的例子中我们已经用到了表述段落的符号<p>,我们如果提取网页小说的数据,新闻等页面的消息,文本都是一段一段的,这样的页面,我们就可以通过<p>标签实现。当运用ie/webbrowser方式提取这类网页的时候,历遍所有段落p元素即可。
使用空的段落标记 <p></p> 去插入一个空行是个坏习惯。可以用 <br /> 标签代替它!(但是不要用 <br /> 标签去创建列表。)
5)超链接 <a>
使用 <a> 标签在 HTML 中创建链接。
超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,您可以点击这些内容来跳转到新的文档或者当前文档中的某个部分。当您把鼠标指针移动到网页中的某个链接上时,箭头会变为一只小手。
有两种使用 <a> 标签的方式:通过使用 href 属性 - 创建指向另一个文档的链接也可以通过使用 name 属性 - 创建文档内的书签。
超链接是我们最常见的页面元素,基本的门户网站都有他,点了以后,可以跳转到另一个页面。一般语法格式:
<a href=”跳转的URL” target=” _blank/_self”>显示的超链接文本</a>
Target属性,表示的是当我们点击超链接,是在原页面进行跳转(_self)还是新建页面进行跳转(_blank)。
为了说明这种超链接,我们更正一下“HTML基础学习-1.html”的内容:
<html>
<head> <!--注释:文档头部,文档相关消息,并不提供文档内容-->
<title>
VBA应用提高篇
</title>
</head>
<body> <!--注释:文档主体-->
<h1>学习VBA语言</h1>
<p>为了更好的掌握VBA的各个知识点,您可以先参考我的第一套教程:VBA代码解决方案</p>
<a href="https://mbd.baidu.com/newspage/data/landingshare?pageType=1&isBdboxFrom=1&context=%7B%22nid%22%3A%22news_9520815886500285610%22%2C%22sourceFrom%22%3A%22bjh%22%7D" target=" _blank">显示学习的网页</a>
</body>
</html>
讲上述代码另存为“HTML基础学习-2.html”内容截图:
打开这个文件:
点击链接:
查看一下源码:
1)标题 <h1> - <h6>
2)水平线 <hr />
3)注释 <!-- 与 -->
4)段落 <p>
5)超链接 <a>
以上各个元素我们要熟练的掌握,才能在分析网页的时候可以随心所欲。下一讲我们继续讲解HTML网页的元素构成。
本节知识点回向:
什么是HTML文档的框架结构是怎样的?说出以下个元素的标签:标题,水平线,注释,段落,超链接 。
本节参考文件:HTML基础学习-1.html;HTML基础学习-2.html
我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:
【分享成果,随喜正能量】人生在世,会遇到一些好事,还会遇上些坏事。好事我承受得起,坏事也承受得住。就这样坦荡荡做个寻常人也不坏。
*请认真填写需求信息,我们会在24小时内与您取得联系。