探讨行内元素转换为块级元素

行内元素和块级元素对于前端来说是一个很重要的概念。在CSS中,只有块级元素有物理属性,而元素则有三种形态:

1. 块级元素:有物理属性,width,height写值起作用,而且要占据一行。
2. 行内元素:没有物理属性。但是margin,padding值有用。不占据一行,后边可以有兄弟元素。
3. 即是块又是行内,根据兄弟元素决定。

一般来说,将行内元素和块级元素进行转换的话是给其加上display这个属性。行内→块级,display:block;块级→行内,display:inline;

这也是大家都熟知的一种方式。而我今天看到了使用float将行内元素转换为块级元素。是否可以呢?我们尝试一下。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="charset=utf-8"/>
 5     <title></title>
 6     <style type="text/css">
 7         p{
 8             background-color:yellow;
 9         }
10         a{
11             background-color: silver;
12         }
13     </style>
14 </head>
15 <body>
16     <p>test_1</p>
17     <p>test_2</p>
18     <p>test_3</p>
19     <a href="#">我是链接</a>
20 </body>
21 </html>

p是我们常用的块级元素,而a是我们常用的行内元素。黄色占据了文档流的一行,银色仅占据了内容的那一片区域。

我们再给它们加上物理属性上去。

<style type="text/css">
		p{
			background-color:yellow;
			width: 100px;
			height: 100px;
		}
		a{
			background-color: silver;
			width: 100px;
			height: 100px;
		}
</style>

  1-1

我们可以看到块级元素<p>受到了影响,而<a>元素则没有受到影响。

我们再给<a>元素添加一个浮动的属性。

<style type="text/css">
		p{
			background-color:yellow;
			width: 100px;
			height: 100px;
		}
		a{
			background-color: silver;
			float: left;
			width: 100px;
			height: 100px;
		}
</style>

  1-2

我们可以看到<a>元素在添加了float属性后,我们原来设置的width和height生效了。如果我们再<a>元素后再添加一个<a>元素,效果如下。

1-3

结论:float就是隐性的把行内元素转化为块元素,对内的话拥有了物理特性。对外则还是是行内元素的属性,不占据一行。

既然float能让行内转换为块级。那么,用position是否也可以呢?

<style type="text/css">
		p{
			background-color:yellow;
			width: 100px;
			height: 100px;
		}
		a{
			background-color: silver;
			position: absolute;
			width: 100px;
			height: 100px;
		}
</style>

  我们发现使用了position以后呈现的效果和“1-2”是一样的。就是说position也可以使行内元素转换为块级元素。至于要使用absolute。这是因为absolute会使得元素脱离文档结构,这一点和float是一样的。再者如果这里设置了两个<a>元素的话,第一个<a>会被第二个<a>元素盖住。有多个的话则遵循“后来者居上”的原则。

所以说,不管是float还是position,使用它们都可以将行内元素转换为隐式的块级元素,不过随之带来的坏处就是会影响兄弟元素。

时间: 2024-10-21 05:45:09

探讨行内元素转换为块级元素的相关文章

html入门(转义字符、行内样式和块级元素、定位、锚点、跑马灯标签、图片标签、表格标签的讲解)

一.转义字符由特殊字符包裹的文本 会当做标签去解析 对应不换行空格 对应全角空格 em是字体排印学的计量单位,相当于当前指定的点数.其占据的宽度正好是1个中文宽度,而且基本上不受字体影响.<对应< >对应> 二.行内元素和块级元素1.块级标签默认情况下,每一个块级元素都是独占一行的即元素的前后都会换行 都有 align 属性,例如: p标签 段落标签 h1~6标签 标题标签 hr标签   水平分割线标签 div标签 块级元素 2.行内标签 不会换行可以和其他的标签或文本在一行内显示

行内元素与块级元素

一.行内元素与块级元素 块级元素列表 <address> 定义地址 <caption> 定义表格标题 <dd> 定义列表中定义条目 <div> 定义文档中的分区或节 <dl> 定义列表 <dt> 定义列表中的项目 <fieldset> 定义一个框架集 <form> 创建 HTML 表单 <h1> 定义最大的标题 <h2> 定义副标题 <h3> 定义标题 <h4>

行内元素与块级元素比较全面的区别和转换

一.行内元素与块级元素 块级元素列表 <address> 定义地址 <caption> 定义表格标题 <dd> 定义列表中定义条目 <div> 定义文档中的分区或节 <dl> 定义列表 <dt> 定义列表中的项目 <fieldset> 定义一个框架集 <form> 创建 HTML 表单 <h1> 定义最大的标题 <h2> 定义副标题 <h3> 定义标题 <h4>

前端面试题-行内元素和块级元素

一.行内元素 一个行内元素只占据它对应标签的边框所包含的空间. 二.块级元素 块级元素占据其父元素(容器)的整个空间,因此创建了一个"块".通常浏览器会在块级元素前后另起一个新行. 三.行内元素示例 HTML CSS Example 四.块级元素示例 HTML CSS Example 五.行内元素的特点 5.1 和其他元素都在同一行上 5.2 高,行高及外边距和内边距不可改变 5.3 宽度就是它的文字或图片的宽度,不可改变 5.4 行内元素只能容纳文本或者其他行内元素 5.5 设置行内

内联元素和块级元素的如何相互转换

内联元素和块级元素的如何相互转换: 内联元素和块级元素之间可以相互转换,下面就简单介绍一下转换方法. 一.内联元素转换为块级元素: 让内联元素产生浮动或者将它的display属性值设置为block即可.例如: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51tex

行内标签与块级标签的转换

display : inline-block  块级标签转换为行内标签 display : block  行内标签转换为块级标签 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div style="dis

详解css中的display属性(行内元素和块级元素)

display属性 首先,所有主流浏览器都支持 display 属性.其次,我们都知道display 属性规定元素应该生成的框的类型.默认值:inline 我们常用的display属性值有: inline block inline-block none 把 display 设置成 none 不会保留元素本该显示的空间,但是 visibility: hidden 还会保留. 那么,display:inline.display:block和display:inline-block有什么区别呢? <s

【前段开发】行内元素和块级元素总结(HTML CSS)

块级元素 <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> defini

行内元素和块级元素的区别

一.行内元素和块级元素的区别 1. 行内元素不会占据整行,在一条直线上排列,都是同一行,水平方向排列: 块级元素会占据一行,垂直方向排列. 2. 块级元素可以包含行内元素和块级元素:行内元素不能包含块级元素. 3. 行内元素与块级元素属性的不同,主要是盒模型属性上,行内元素设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效. 二.行内元素和块级元素的相互转换 行内元素转化为块元素: display:block; 块元素转化为行内元