前言
那是一个很久之前的故事了。。。之前我一直认为CSS最重要的是布局,将一个图片很好的以网页显示出来就是王道。
但是,经过后来慢慢入门后,才发现其实布局感觉不是很难了,倒是行内元素这个家伙深藏不露。
行内元素属于那种很仁慈的主,你了解他你能做得更好,你不了解他,你的页面也不会过于乱,所以我们就容易忽略他的威力,所以今天我们一起来好好的审视一番吧
那一年,你未娶我未嫁
在那一年我会写这样的代码:
<p>
霹雳布袋戏中最广为人知的主角之一。叶小钗一生悲情,命运多舛,亲人恩人朋友一个个离他而去,遭遇令人心酸,却也因此练就了超绝的禅定功夫。
耿直专一、守信重诺的侠客,虽为侍童出身,但不屈不挠的个性,丰富的人生阅历,让其成为中原武林不可或缺的一员,
享有<span style=" width: 200px; height: 200px; margin: 10px; padding: 10px; border: 1px solid black;">「刀狂剑痴」</span>
之盛名,披肩的白发和脸上的英雄疤,搭配沉默无言的特色,营造出该角色独特的风范。</p>


然后,我再做了一点demo,就以为掌握到了精华:
1 设置width无效
2 设置height无效
3 margin上下无效,左右有效
4 padding上下无效,左右有效(元素范围增大,但是元素内容无效)
以上便是我很长一段时间对行内元素的理解,只是流于表面,而且一段时间也没有什么问题的。
后来一点,各方面有所成长,我发现其实自己是忽略了一些东西的。
奇怪的现象
在上面我们发现设置高度和宽度是没有意义的,特别是高度又让我们变得更加疑惑了,请看例子:
1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; ">空格</div>
3 <div>我在之和</div>


以上是div中有字和div中没字时候的差别,我们发现div若是没字的话,他就“消失了”。
有了文字后,div就有高度了,所以我们认为是文字撑开了div,但是根据我们之前对行内元素的理解后,我们会慢慢怀疑不是文字撑开了高度而是line-height:
1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; line-height: 1px; ">空格</div>
3 <div>我在之和</div>

对于这张图其实我们是应该感到诧异的,因为他狠狠的给了我一巴掌(真是有图有真相啊)。
他基本就说明了,文字其实并没有撑开div,控制div高度的是line-height,但是为什么没有文字时候他就没有高度呢?
在inline box 模型中,有个line boxes,他就是文字的框(CSS里面神马东西都会有框),一行文字有一个line boxes,上面的“空格”就有一个line boxes(每个文字又会有自己的行内框inline box,这两爷们取名过于相似,容易误解),div空着的时候里面没有line boxes,但是有字后,这家伙就有line boxes了,所以他就很嚣张的“膨胀”了起来。
以上的line boxes还不是最终boss,最终boss其实是里面的行内元素,因为事实上是行内元素的inline boxes形成的行高,来一个走:
1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; line-height: 1px; ">
3 <img src="1.png" />空格</div>
4 <div>我在之和</div>

看着我们伟大的图片,撑开了我们的div!
PS:其实我这里不该引入图片的,他会把情况变得更加复杂,比如你给图片设置行高什么的,你会发现。。。所以,我们重新来个例子:
1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; line-height: 1px; ">
3 <span style=" ">叶小钗</span>空格</div>
4 <div>我在之和</div>

1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; line-height: 1px; ">
3 <span style="line-height: 10px; ">叶小钗</span>空格</div>
4 <div>我在之和</div>

我们可以看到,无论图片或者后面的span,“叶小钗”将一条街的高度都拉高啦!!!
这是为什么呢??
因为行内元素“叶小钗”的inline boxes 将整个line boxes拉高了(其实叶小钗是3个inline boxes了。。。)
在这个情况下,我们再来看看文字居中的实现:
1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; line-height: 40px; ">
3 叶小钗</div>
4 <div>我在之和</div>

我们发现,这里并没有把height与line-height设置为一样,但是他还是居中了,其实是因为没有设置height的时候line-height就是他的height了,所以height有时候还是需要的。
至此,我想我们队行内元素的认识应该更加深刻了吧。。。。于是我们再拓宽一下吧。
float与行内元素
float是个坏家伙,我们之前就说过,inline boxes让line boxes拥有了高度,所以我们整个元素就有了高度,但是我们来看一下情况:
1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; line-height: 2px; ">
3 <span style="line-height: 10px; ">叶小钗</span>空格</div>
4 <div>我在之和</div>

这张图没问题,“叶小钗”拉高了整个line boxes的高度,但是我们若是给他加上浮动呢?
1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; line-height: 2px; ">
3 <span style="line-height: 10px; float: left; ">叶小钗</span>空格</div>
4 <div>我在之和</div>

我们来看看float这个坏家伙干了些什么事情:
① 破坏了我“叶小钗”的高度,我连高度都没了,而且脱离了文档流(呜呜,救命)
② 虽然我没有了高度,却为何要给我宽度,所以后面的字在我之前
看吧,float这家伙够坏吧,所以我们布局不要用着家伙了,因为他让叶小钗没了高度!!!!
我们为原来的代码加点效果也许又会看到一点不同的东西:
1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; line-height: 2px; ">
3 <span style=" float: left; background-color: Gray; ">叶小钗</span>空格</div>
4 <div>我在之和</div>

这是无比诡异的一幕!我们在学习行内元素时候为什么难,因为稍不注意就会颠覆我们的想法,稍不注意又会陷入疑惑!
我们明明破坏了叶小钗的高度,为什么他还会有那么一点背景呢???
我这里就斗胆认为div有一点点默认高度了,若是不对请大神指出。若是动态指定其高度,那么背景区域会更大一点,好了,我们马上来试试:
1 <div>我在之前</div>
2 <div style=" border: 1px solid black; background-color: Red; line-height: 2px; ">
3 <span style=" float: left; background-color: Gray; width: 50px; height: 50px; padding: 10px; margin: 10px; ">叶小钗</span>空格</div>
4 <div>我在之和</div>


主意来!我们叶小钗外面的元素可是span哟,按道理说span设置height时无效的,但是这里明显他是有效的!!这又是为什么呢?这个和我们元素的框又产生关系了。
PS:事实上这里“float强迫行内元素变成了inline-block元素啦”。
float这家伙的做法便是:破坏之、重建之!
反正不管怎么说,float让行内元素变成了不是inline-block的inline-block元素。
行内元素与absolute
与float一致,absolute干的坏事不必他好,有过之而无不及啊!!!也是让元素脱离文档流。
绝对定位元素会将一个元素的width和height破坏的一干二净(不对请指出)。
若是说float是白蚁的话,absolute就是会飞的白蚁,其实我们这样认为不好!
absolute虽然会破坏重建一个元素,但是他本身就是用来布局的,会飞的inline-box就是对他最好的形容。反正我的意思就是大家要好好对待他了:
<div>我在之前</div>
<div style=" border: 1px solid black; background-color: Red; line-height: 2px; ">
<span style=" position: absolute; background-color: Gray; width: 50px; height: 50px; padding: 10px; margin: 10px; ">叶小钗</span>空格</div>
<div>我在之和</div>

absolute就是会飞的inline-block。
行内元素与vertical-algin
vertical-align这个家伙是行内元素对齐的工具:

以上一坨东西,我这里就不管了,反正大家一定记得:
<input type="checkbox" style=" vertical-align: -2px;"/>
这段代码有什么用就好。
有时候我们会将vertical-align用于块级元素,这样是不起作用滴,他只能用于块级或者行内元素,而且会让一整块相对于基线做漂移。
我们这里这个可能用不到太深入,这边便不深究了。接下来我们以一个例子结束本文吧。
参考资料
独孤求败当年悟道独孤九剑花费10年光景,令狐冲1年不到就学会,这就是名师的威力啦,所以我们要多学习,多借鉴,甚至多模仿人家的思想,然后集合大家之长形成自己的理念甚至学说,过程如何不重要,重要的是不停的学习。该文参考(传说中的名师):
http://www.zhangxinxu.com/
http://www.cnblogs.com/winter-cn/
结语
中午不睡,下午崩溃!!!后面点时间我们还是一起研究bootstrap与CSS相关的东西。
小弟初学,有何问题欢迎拍砖哟。
分享到:
相关推荐
这告诉我们,每个人都有犯错的可能,但关键在于能够正视自己的错误,并采取措施改正。懒巫婆的窘迫不仅是一种自我批评,也是一种成长和自我提升的开始。 《懒巫婆化妆故事》通过一个简单而有趣的故事,向孩子们传递...
6.1 正视发展挑战(知识梳理)-2021年秋九年级道德与法治上册知识梳理+精品课件.pdf
综上所述,初中政治课“正视压力 轻松前行”旨在教育学生理解和处理学习压力,通过积极的心理调适和正确的行为应对,将压力转化为学习的动力,从而实现个人的全面发展。教师应引导学生认识压力的两面性,教会他们...
人教版初中道德与法治《正视发展挑战》说课稿.pdf
在九年级道德与法治课程中,6.1章节“正视发展挑战”的知识梳理主要涵盖了全球及我国的人口问题、计划生育政策、资源环境危机以及应对这些问题的策略。以下是这些知识点的详细阐述: 1. 人口问题:全球人口增长迅速...
投资于保健品板块,投资者需要抛开偏见,正视该行业的投资机会。尽管保健品板块可能易受到短期政策及舆论波动的影响,但行业整体具有较高的防御性,主要源于其高频的消费模式、较高的利润贡献以及强防御性。保健品...
然而,随着物联网设备的广泛普及,信息安全与数据安全问题日益凸显。"信息安全_数据安全_mbs-w02-cheapscate-attacking-iot.pdf"这份文件揭示了一个严峻的事实:物联网设备的安全性远未达到理想状态,它们往往容易受...
在教育的海洋中,学生面对的压力无疑是一座座潜藏的冰山,虽然表面上看似平静,实则内含挑战与危机。为了让学生能够正视压力,并学会管理这些压力,南海中学分校高一(8)班开展了一场主题为“正视压力”的班会活动...
1. **市场规模与增长**:中国的保健品市场已经成为全球第二大市场,2017年市场规模达到了约188亿美元(折合1315亿人民币),年复合增长率(CAGR)为11.5%,远超全球平均水平6.0%。这表明中国保健品市场具有强劲的增长...
正视中国英语、理解其特点和演变,对于在全球化语境下的跨文化交流具有重要意义。无论是教育工作者还是英语学习者,都应该积极探索如何在确保语言准确性的同时,恰当地融入中国文化元素,让英语成为传递中国声音的...
九年级道德与法治6.1《正视发展挑战》教学设计.pdf
6.1正视发展挑战(PPT36页).ppt
目的:本研究的目的是比较正视眼和屈光异常患者的CCT测量值。 方法:我们代表一项回顾性研究,该研究是在科索沃大学临床中心(UCCK)进行的。 本研究共纳入80例患者,分为两组:测试组和对照组。 平均年龄为(M = 25...
本次教案针对小学四年级上册第八单元中的两个故事《扁鹊治病》与《纪昌学射》,旨在通过生动的故事讲述,帮助学生理解故事背后的深刻寓意,并从中汲取成长的智慧。 #### 二、《扁鹊治病》知识点详解 ##### 1. 故事...
1,该资源为《猛将onlie》的完整设计文档,包括数值,文案等各方面的内容。 2,该资源用作策划者的参考...4,该资源如果有遗漏不足的地方,还希望下载者能够正视,正所谓人无完人,事无完事。万事万物总有一些纰漏。
道德与法治正视发展挑战教学设计.docx
这篇文档“200601-抛开偏见,正视保健品行业的投资机会_”可能为我们揭示了这一领域的诸多投资机遇与挑战。以下是根据标题和描述所推测的一些关键知识点: 1. **行业偏见与认知误区**:标题中的“抛开偏见”暗示了...
【标题】:“61正视发展挑战PPT.doc”是一个文档,通常用于呈现关于面对和解决发展中遇到问题的讨论或教学材料。这个标题暗示了内容可能涵盖了如何识别、理解和克服在个人、组织或社会层面的发展过程中所遇到的障碍...
标题中的“部编《道德与法治》九年级第六课第一框正视发展挑战.pptx”是一份关于中国面临的人口、资源和环境问题的教学资料,旨在帮助学生理解和认识到这些问题对我国经济社会发展的影响,以及应对策略。以下是相关...
这篇文档是关于人教版九年级道德与法治课程中“正视发展挑战”主题的同步练习,主要涉及人口政策、环境污染和资源管理等知识点。 1. **人口政策的演变**: - 中国的人口政策随社会发展而不断调整,从1950年代的...