`
CshBBrain
  • 浏览: 638652 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
B7d9bf34-126e-301f-819e-81f2615b5a2a
开源WebSocket服务...
浏览量:142237
Group-logo
HTML5移动开发
浏览量:135608
社区版块
存档分类
最新评论

HTML块级元素与行级元素

 
阅读更多

转自:http://gkecenter.blog.163.com/blog/static/181380305201291745234195/

 

一.两种类型

HTML中的大部分元素都可分为两种类型:块级元素和行级元素。这些元素的类型是通过文档类型定义(DTD)来指明。块级元素会从新的一行出现,行 级元素则不会。块级元素的前后都会有插入的断行,所以如果不用CSS则没法让两个块级元素并列在一起。

 

二.块级元素

块级元素一般作为容器出现,用来组织结构,但并不全是如此。有些块级元素,如<form>只能包含块级元素。其他的块级元素则可以包含 行级元素如<P>.也有一些则既可以包含块级,也可以包含行级元素。如,<div>,<li>

三.行级元素

行级元素一般是包含语义意义的元素。行级元素一般只能包含文字或其他行级元素。行级元素不能被应用下列属性:

width

height

max-width

max-height

min-width

min-height

如果你想改变这些属性,应该应用给它的属于块级元素的父元素。

四.Spring Brother

有些元素既可以是块级元素,也能成为行级元素。例如<ins> 和<del>。当这两个元素直接出现在<body>中时,它们就是块级元素。如果作为<P>的子元素,他们就是行级 元素,此时不能包含其他的块级元素。

五.CSS中的类型

CSS中的盒子也有块级和行级之分,也包括其他类型,如,列表和表格等。HTML中的块级元素会产生块级盒子,行级元素会产生行级盒子。在CSS 中,可以用display控制盒子的类型。如,把一个行级元素转换成块级元素。注意,这种转换并不能改变元素本质。即使你把它转换成了 块级元素,你也不能让它包含其他的块级元素,你转换的只是CSS的盒子的外观。

通常没有必要改变元素的盒子类型,下列情况一般有改变盒子的需求:

水平的列表菜单

不断行的标题

隐藏元素

六.盒子类型的变化

对于应用了浮动或绝对定位的元素,如此类样式:float:left,position:absolute,position:fixed。这类元 素的盒子类型显然改变了。它们都变成了块级元素,因此display属性一般都被忽略。

七.盒子的消失

如果对元素应用display:none,它(包括它的子元素)将会被隐藏起来。对它应用的float,position属性也不再有意义。因为它将不会产生任何的盒子。

 

一.行内元素和块级元素有哪些?

块级元素
<address> information on author
<blockquote> long quotation
<button> push button
<caption> table caption
<dd> definition description
<del> deleted text
<div> generic language/style container
<dl> definition list
<dt> definition term
<fieldset> form control group
<form> interactive form
<h1> heading
<h2> heading
<h3> heading
<h4> heading
<h5> heading
<h6> heading
<hr> horizontal rule
<iframe> inline subwindow
<ins> inserted text
<legend> fieldset legend
<li> list item
<map> client-side image map
<noframes> alternate content container for non frame-based rendering
<noscript> alternate content container for non script-based rendering
<object> generic embedded object
<ol> ordered list
<p> paragraph
<pre> preformatted text
<table> table
<tbody> table body
<td> table data cell
<tfoot> table footer
<th> table header cell
<thead> table header
<tr> table row
<ul> unordered list
行内元素
<a> anchor
<abbr> abbreviated form
<acronym> acronym
<b> bold text style
<bdo> I18N BiDi over-ride
<big> large text style
<br> forced line break
<button> push button
<cite> citation
<code> computer code fragment
<del> deleted text
<dfn> instance definition
<em> emphasis
<i> italic text style
<iframe> inline subwindow
<img> Embedded image
<input> form control
<ins> inserted text
<kbd> text to be entered by the user
<label> form field label text
<map> client-side image map
<object> generic embedded object
<q> short inline quotation
<samp> sample program output, scripts, etc.
<select> option selector
<small> small text style
<span> generic language/style container
<strong> strong emphasis
<sub> subscript
<sup> superscript
<textarea> multi-line text field
<tt> teletype or monospaced text style
<var> instance of a variable or program argument

大家可以发现,上面有些元素有重复,为什么呢,是因为HTML中存在可变元素。
可变元素为根据上下文语境决定该元素为块元素或者内联元素。
  ◎ applet - java applet
  ◎ button - 按钮
  ◎ del - 删除文本
  ◎ iframe - inline frame
  ◎ ins - 插入的文本
  ◎ map - 图片区块(map)
  ◎ object - object对象(当浏览器不支持时,则显示为块级)
  ◎ script - 客户端脚本 
但是就我个人而言,我更愿意把它们当做行内元素,因为一般情况下,不会解释为块级元素

二.行内元素与块级元素有什么不同?

块级元素和行内元素的区别是,块级元素会占一行显示,而行内元素可以在一行并排显示。

通过样式控制,它们可以相互转换。

1.尺寸-块级元素和行内元素之间的一个重要的不同点

设置宽度width 无效。
设置高度height 无效,可以通过line-height来设置。
设置margin 只有左右margin有效,上下无效。
设置padding 只有左右padding有效,上下则无效。

注:这里说的无效, 是指,它对其它元素的排列没有影响。也就是说,对于设置的margin,padding行内元素文档流里的上下元素来说,他们的间距不会因为上下margin或者上下padding而产生间距。但是就他本身而言,对于上下margin与padding是有效的。

上面写的有点绕了,我也是尽量表达。请参照下图,如果还是不清楚,请动手自己写一下,就能明白了。

HTML中行内元素与块级元素有哪些及区别 - 小脚丫 - celine_窝窝家妞妞

 

2.text-align属性是两者表现的又以不同之处

这个特性描述了如何使一个块元素的行内内容对齐。
注意一点,w3c标准里说这个属性是用来对齐行内内容的,所以,不应该对块级内容起作用。
解释一下,行内内容是说由行内元素组成的内容,
这样,我们对这个特性的认识应该就清楚了。但是,问题来了,虽然标准里这么规定,那么是不是所有浏览器都遵守呢?答案是否定的。啊? 又是IE!!
IE6/7及IE8混杂模式中,text- align:center可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。

分享到:
评论

相关推荐

    浅谈CSS块级元素与行内元素(内联元素)的区别和联系

    在css盒子模型中,我们提到了html元素中的块元素(block element)和内联元素(inline element)。那么它们究竟是什么呢? 其实,这两种元素都是html规范中的概念。块元素(block element)一般是其他元素的容器元素...

    CSS块级元素与行级元素详解

    而有了css以后,我们可以改变这种html的默认布局模式,把块元素摆放到你想要 的位置上去。而不是每次都愚蠢的另起一行。需要指出的是,table标签也是块元素的一种,table based layout和css based layout从一般使用...

    行内元素和块级元素 displayDemo.html

    NULL 博文链接:https://maoting.iteye.com/blog/1722563

    04_文本相关属性_行级块级元素内容居中问题.html

    04_文本相关属性_行级块级元素内容居中问题.html

    HTML中的块级、行级元素,特殊字符,嵌套规则

    行级元素与之相反,它的内容决定它的宽高度,至于特殊字符就当成是文字来看 &lt;!DOCTYPE html&gt; &lt;html lang=en&gt; &lt;head&gt; &lt;meta charset=UTF-8&gt; &lt;meta name=viewport content=width=device-...

    前端日记01_行内元素和块级元素

    从html的角度看标签分为行级元素/内联元素(inline)、块级元素(block)、行级块元素(inline-block)、其他元素。 行级元素: 设置宽高属性无效 与其他行级元素在一行,不设置高度时,默认高度为文字高度 设置margin:...

    关于css 行元素和块元素 相互转换 居中

    一、块级元素 行内元素 div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。 您...

    CSS设置HTML元素的高度与宽度的各种情况总结

    块级元素和行级元素在设置宽高度时会遇到很多琐碎的问题,这里我们通过分类讨论的方式来进行CSS设置HTML元素的高度与宽度的各种情况总结,需要的朋友可以参考下

    html5shiv.min.js

    在html导入这个js文件(有行级元素需要转换成块级元素)

    网页布局入门教程 如何用CSS进行网页布局

    一、基础概念 ...常见块级元素:div、lu、li、d、dt、p……)和行级元素(能在同一行内显示,不会改变HTML文档结构。常见行级元素:span、strong、img、input……)组成。2、浮动(Floats):3、绝对定位(Absol

    Java面试宝典2020修订版V1.0.1.doc

    7、行级标签转块级标签,块级标签转行级标签 13 二、Java基础部分 13 1、java中有哪些基本类型? 13 2、java为什么能够跨平台运行? 13 3、String是基本数据类型吗?我可不可以写个类继承于String? 14 4、谈谈&和&&...

Global site tag (gtag.js) - Google Analytics