首页 / 知识
HTML & CSS 基础入门知识 布局与定位
2023-04-11 13:46:00

HTML里的元素可以分为块级元素和行内元素两大类:
块级元素:块级元素典型特点就是它要独占一行,它后面跟随的其它元素都会被挤到下一行,可以将块级元素理解为一个矩形容器,有自己的宽度和高度。比如:<div><p><hi><form><ul><li>等都是块级元素。
行内元素:行内元素与块级元素相反,在宽度允许的情况下,一行可以容纳多个行内元素,它没有固定形状,无法设置高度与宽度。比如:<span><a><input><img><strong><em>等都是行内元素。
相互转换:我们可以使用display:inline将块级元素转换为行内元素,可以使用display:block将行内元素转换为块级元素。
示例代码:
流动布局就是元素按照正常文档流自上而下的排列,所有元素按先后顺序逐行往下排序,块级元素独占一行,行内元素在每行中按照从左到右的顺序依次排列。流动布局是网页默认的显示规则。
示例代码:
浮动布局是利用CSS完成网页布局最重要的方式,使用极其灵活多变,这里仅说明基本的概念,要熟练掌握还需多看、多练。在上面的流动布局我们了解到以div为首的块级元素会独占一行,在网页布局中,最常用的就是div,通常把div当做一个盒子,再来把一个个div盒子进行排列。但是div独占一行,我们想在一行并列放置两个、甚至三个div盒子怎么办呢?浮动就可以完成这个事情。看个例子:
上面的例子定义了4个div元素,【outside】是最外层div,可以理解为一个大盒子里面放三个小盒子,为显示直观,每个div都设置了边距和背景。
?div1未设置浮动,它在大盒子里面独占一行,为它设置了红色的虚线边框,设置了边距。
?div2设置了左浮动,填充了绿色背景,设置了宽和高,此时div2不在独占一行,而是按照设置的宽度和高度靠左显示。
?div3设置了右浮动,填充了红色背景,没有设置宽和高,此时div3会根据里面的内容确定其尺寸,然后靠右显示,同样不在独占一行。
浮动布局比较灵活,不易控制。定位布局相对而言较易使用,当然,在实际开发中,往往是两者配合使用,以满足布局的个性需求。定位布局主要是通过为【position】属性设置不同的值来完成布局的。该值主要有以下三种:
1、值fixed(固定定位):以浏览器为基准,指定定位元素与浏览器4条边的距离完成定位,分别通过top、bottom、left和right这四个属性的设置来完成。其实,这4个属性未必全部都需要设置,只需要设置top和left即可。当元素设置了固定定位,如果页面过长出现滚动条,它也不会随滚动条的滚动而移动。
示例代码:
2、值relative(相对定位):以需定位元素按正常文档流所在位置为参照,然后使定位元素相对于它在原本的正常文档流的位置偏移指定的距离。
示例代码:
3、值absolute(绝对定位):绝对定位的元素是相对于离它最近的一个已定位的父元素为参照进行定位的(默认是body)。下面的示例有两个div,可以理解为父盒子和子盒子,父盒子设置绝对定位,以body为参照设置位置。子盒子也是绝对定位,以父盒子为定位参照。
|
最新内容
相关内容
pythongo与python哪个简单
pythongo与python哪个简单,管理,培训,软件,管理系统,系统,异常,设计,函数,语言,特性,相比于Python的40个特性,Go只有31个,可以说Go在语言设计上关于错误跟踪:FogBugz与OnTime相比
关于错误跟踪:FogBugz与OnTime相比,关于错误跟踪:FogBugz与OnTime相比,易用性,稳定性,我对,发表意见,FogBugz compared to OnTime有没关于asp.net mvc:如何在MVC中使用Ht
关于asp.net mvc:如何在MVC中使用HtmlHelper获取呈现的自定义ID,关于asp.net mvc:如何在MVC中使用HtmlHelper获取呈现的自定义ID,表单W3C XHTML/CSS 验证在完成工作时有
W3C XHTML/CSS 验证在完成工作时有多重要?,W3C XHTML/CSS 验证在完成工作时有多重要?,验证,运行,这是,是在,How important is W3C XHTM设置与SVN的持续集成
设置与SVN的持续集成,设置与SVN的持续集成,设置,工具,网站,控制,Setting up Continuous Integration with SVN您将推荐使用哪些工具关于.net:Web服务-WCF与ASMX(“标准
关于.net:Web服务-WCF与ASMX(“标准”),关于.net:Web服务-WCF与ASMX(“标准”),服务,模板,做一个,老式,Web Services — WCF vs. ASMX关于Java:JUnit与TestNG
关于Java:JUnit与TestNG,关于Java:JUnit与TestNG,运行测试,我一直,在工作中,切换到,JUnit vs TestNG在工作中,我们目前仍在使用JUnit 3关于C#循环:C循环中断与继续break
关于C#循环:C循环中断与继续break continue,关于C#循环:C循环中断与继续break continue,结构,迭代,语言,是在,C# loop - break vs. c关于css:FF3 WinXP!= FF3 Ubuntu-为
关于css:FF3 WinXP!= FF3 Ubuntu-为什么?,关于css:FF3 WinXP!= FF3 Ubuntu-为什么?,显示方式,网站,我在,有所不同,FF3 WinXP != FF3 Ubuntu如何在FogBugz维基页面中创建HTML
如何在FogBugz维基页面中创建HTML锚点?,如何在FogBugz维基页面中创建HTML锚点?,基页,链接,我想,单是,How do I create an HTML anchor关于html5:是否有理由不开始使用HTM
关于html5:是否有理由不开始使用HTML 5文档类型?,关于html5:是否有理由不开始使用HTML 5文档类型?,新功能,支持,尚不,兼容,Any reason no关于python:跨平台,与语言无关的GUI
关于python:跨平台,与语言无关的GUI标记语言?,关于python:跨平台,与语言无关的GUI标记语言?,应用程序,转向,学习,我是,Cross Platform, Lan