初识HTML(五)进阶:CSS盒子模型、页面布局


CSS 盒子模型(Box Model)

所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。

CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距margin,边框border,填充padding,和实际内容(文本、或者图片、或者其它标签)。

盒子模型允许我们在其它元素和周围元素边框之间的空间放置元素。

下面的图片说明了盒子模型(Box Model):
在这里插入图片描述
标准的W3C盒子模型:

在这里插入图片描述
元素的宽度和高度

重点: 当你指定一个 CSS 元素的宽度和高度属性时,你只是设置内容区域的宽度和高度。要知道,完整元素大小还包括外边距、边框、内边距。

下面的例子中的元素的总宽度为300px:

<style>
   div {
    
        background-color: pink;
        width: 300px;
        border: 25px solid skyblue; /* 设置上右下左边框:每个占25px */
        padding: 25px; /* 设置上右下左内边距:每个占25px */
        margin: 25px; /* 设置上右下左外边距:每个占25px */
    }
</style>

在这里插入图片描述
我们实际定义为300px,那么此时我们再来计算一下盒子的总宽度:

  • 300px+50px(左右间距)+50px(左右边框)+50px(左右填充) = 450px

在页面检查元素后,显示出整个盒子的大小,横向显示的与实际宽度相加最后就是450px的盒子宽度:

在这里插入图片描述

最终元素的总宽度计算公式是这样的:

  • 总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距

元素的总高度最终计算公式是这样的:

  • 总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距

如果我们没有填写边框、填充、边距等,那么我们内容区域就是我们实际填写的宽度。


页面布局

规定好页面有哪些区域存放内容提前将标签布置到哪些区域上,后续只需要填写内容即可。

那么在布置标签方面我们有三种方案:

  • 标准流(文档流)
  • 浮动流
  • 定位流

标准流也就是我们平常所用标签,只要是块标签就会独占一行,通过标签的特性来布局,但是现在的网页通常都不会用这种方式来进行网页布局。

我们主要关注的就是浮动流与定位流,当熟悉以后,可根据自身需求来决定布局方式。



浮动流

主要通过float属性来实现,该属性可以让我们的元素浮动起来,如果是块标签从而不会独占一行。浮动流主要针对的是水平布局

浮动起来的元素,相当于原地飘起来了,从而其它的元素会顶到它飘之前的位置,而浮动元素则对顶上来的元素进行覆盖显示,实例:

<html>
<head>
    <title>float练习</title>
    <style>
        .box1{
    
            width: 200px;height: 200px;
            background-color: skyblue;
            float: left;
        }
        .box2{
    
            width: 300px;height: 300px;
            background-color: pink;
        }

    </style>
    </head>
    <body>
        <div class="box box1"></div>
        <div class="box box2"></div>
    </body>
</html>

在这里插入图片描述
float属性可以选择左浮动还是右浮动,设置完属性以后,飘起来寻找在它之前就已经浮动的元素,如果它们浮动方向相同的话,该元素就会那个元素的后面,否则只能根据浮动方向贴着body显示。

代码查看两个向同一个方向float的元素

<html>
<head>
    <title>float练习</title>
    <style>
        .box{
    
			width: 200px;height: 200px;
		}
        .box1{
    
            background-color: skyblue;
            float: left;
        }
        .box2{
    
            background-color: pink;
            float: left;
        }

    </style>
    </head>
    <body>
        <div class="box box1"></div>
        <div class="box box2"></div>
    </body>
</html>

在这里插入图片描述
首先html代码从上至下运行,首先蓝色元素先浮起来之后,粉色元素顶到它所在的位置,此时粉色元素也浮起来了,并且在当前行找到已经提前在这个在这个方向浮动的元素了,那么就会贴在它后面显示。

浮动原则:

  • 同一行有相同方向的浮动就找到它在后面贴着显示
  • 同一行相同方向没有浮动元素,就按照浮动方向贴着父标签的对应位置显示

演示两个元素向不同方向浮动:

<html>
<head>
    <title>float练习</title>
    <style>
    	.box{
    
			width: 200px;height: 200px;
		}
        .box1{
    
            background-color: skyblue;
            float: left;
        }
        .box2{
    
            background-color: pink;
            float: right;
        }

    </style>
    </head>
    <body>
        <div class="box box1"></div>
        <div class="box box2"></div>
    </body>
</html>

在这里插入图片描述
蓝色向左浮动,没有找到在它之前已经向左浮动的元素,所以贴在父标签的左边。
粉色向右浮动,没有找到在它之前已经向右浮动的元素,所以贴在父标签的右边。

结合上面我们再理解浮动已经很简单了:

在这里插入图片描述

上面图片里的div1就是标准流没有添加浮动属性,而第二排添加的两个float:right;属性元素,而div4则使用了float:left;

而如果我们要达到这种浮动效果呢:

在这里插入图片描述
此时我们就要了解清除浮动了,有了上面基础作为铺垫,清除浮动也很容易理解

经过上边的一系列操作,可以看出:元素浮动之前,也就是在标准流中,是竖向排列的,而浮动之后可以理解为横向排列。

清除浮动可以理解为打破浮动流的横向排列。

清除浮动的关键字是clear,官方定义如下:

语法:

	clear : none | left | right | both

取值:

	none  :  默认值。允许两边都可以有浮动对象
	
	left   :  不允许左边有浮动对象
	
	right  :  不允许右边有浮动对象
	
	both  :  不允许有浮动对象

那么我们来看一张图理解一下:
在这里插入图片描述
如果此时我们的需求是,div1和div2都要向左浮动,但是又要让div2排在div1下面,就像div1没有浮动,div2有浮动的那种样子,这时候就要用到:“清除浮动”

如果单纯根据官方定义,可能会尝试这样写:在div1的CSS样式中添加clear:right;理解为不允许div1的右边有浮动元素,由于div2是浮动元素,因此会自动下移一行来满足规则。

其实这种理解是不正确的,这样做没有任何效果。实际应用就是:

  • 对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。

所以应该这样写,div2的CSS样式增加clear:left;表示div2左边不能存在浮动元素,因此如果存在浮动元素,那么div2就被迫移动到下一行了。

<html>
<head>
    <title>float练习</title>
    <style>
        .box{
    
            width: 200px;height: 200px;
            text-align: center;line-height: 200px;
        }
        .box1{
    
            background-color: skyblue;
            float: left;
        }
        .box2{
    
            background-color: pink;
            float: left;
            clear: left;
        
最低0.47元/天 解锁文章
初相识——HTML5 盒模型
qq_52908359的博客
04-12 716
目录 1.关于什么是盒模型 2.每个盒模型的基本组成: 3.内边距的注意事项: 4.边框(border)的主要实现属性: (1)一些线的实现 5.外边距(margin)的主要实现属性: (1).叠压现象 (2).塌陷问题 ...
HTML5+CSS3网站设计基础教程》 PPT
01-01
HTML5+CSS3网站设计基础教程》 PPT
HTML中的盒子模型
zwb1365237878的博客
12-15 2916
盒子模型主要由四个部分组成 content(内容):对应盒内内容 border(边框):对应包装盒的外壳,有厚度 margin(外边距):位于边框外部,是边框与外部的间隙 padding(内边距):位于边框内部,是内容与边框的距离,对应包装壳的填充部分 border 1.边框线 border-width:设置边框线宽度 border-style:设置边框线样式 border-color:设置边框线颜色 <head> <meta charset="utf-8"> <tit
HTML+CSS盒子模型CSS重点)(part08)
最新发布
2201_75597173的博客
06-22 918
对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中的较大者,即使父元素的上外边距为0,也会发生合并。(上面的三个部分在之前的文章(part05)中已有详细解释,在这里就不赘述。1.所有的文档元素(标签)都会生成一个矩形框,它描述了一个文档元素在网页布局汇总所占的位置大小。网页布局中,我们是如何把里面的文字,图片,按照美工给我们的效果图排列的整齐有序呢?使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。
HTML布局总结
2203_76017613的博客
04-11 2931
概括了前端布局的大部分解释及标注
html&CSS-----盒模型
m0_73633088的博客
06-06 2174
详细介绍html&CSS中的盒模型的相关用法包括标准盒模型和怪异盒模型,大家进来看看吧!!!
html5盒子模型
weixin_33912638的博客
06-02 260
相关博客: Flex 布局教程:语法篇:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html Flex 布局教程:实例篇:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html 转载于:https://www.cnblogs.com/XingXiaoMeng/...
html - 盒子模型
热门推荐
CSDNzhaojiale的博客
02-06 1万+
什么是盒子模型 CSSHTML 页面中的每一个元素都是一个盒子或者说是被一个盒子所包围着 盒子模型的组成部分 内容区(content):用来在 HTML 页面显示内容的区域,可以是文本内容、图片、视频或者其他后代元素等。 内边距(padding):指的是内容区至边框之间的空白区域。 边框(border):包含内容区和内边距的边界。 外边距(margin):指的是当前盒子...
HTML——盒模型
weixin_64804275的博客
04-12 1万+
盒模型
HTML----盒子模型
xry12354的博客
04-08 2982
所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。
CSS盒子
人生苦短,我用python
12-24 468
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。 CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。 盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。 Margin(外边距) - 清除边框外的区域,外边距是透明的。 Border(边框) - 围绕在内边距和内容外的边框。 Padding(内边距) -...
初识HTML(四)进阶CSS基础、常用属性
Simple子夜
03-13 1364
前言: 本章节将学习到HTML中最为重要的CSS,有了它我们的网页将可以实现更多功能以及添加很多样式,如果将html标签比作房子的话,那么就是给房子进行装修了,通过使用 CSS 我们可以大大提升网页开发的工作效率!开始了解CSS的魅力所在吧! 什么是cssCSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 外部样式表可以极大提高工作效率 外部样式表通常存储在 CSS 文件中 多个样式定义可层叠为一个 css语法定义 CS
初识HTMLCSS:网页设计入门指南
# 1. HTMLCSS简介 ## 1.1 什么是HTML HTML(HyperText Markup Language)是一...它可以通过选择器(selectors)来选择HTML元素,并定义这些元素的样式,比如颜色、布局、字体等,从而实现网页的美化和设计。 ## 1.3
初识HTMLCSS:构建网页的基本概念
HTMLCSS简介 ## 1.1 什么是HTMLHTML(Hypertext Markup Language)是一种用于构建网页结构和内容的标记语言。它由一系列的标签组成,这些标签用于定义网页的各种元素,如标题、段落、图像、链接等。 HTML ...
css三角形做法(上手快)
yrfjygb的博客
02-05 227
四个三角形 效果: 样式: .angle{ margin: 100px auto; width: 0; height: 0; border-top: 20px solid pink; border-right: 20px solid red; border-left: 20px solid blue; border-bottom: 20p
html盒子模型
m4587的博客
07-18 2681
根据W3C的规范,元素内容占据的空间是由width/height属性设置的,而内容周围的padding和border值是另外计算的;在HTML文档中每个元素都被处理成一个矩形“盒子”,并且这个盒子由4部分构成,分别是content(内容区域)、padding(内边距)、border(边框)、margin(外边距)。4、外边距,相邻盒子间的空白区域,通过margin进行设置,可分别设置4个方向的外边距。3、边框,元素边框,通过border进行设置,可分别设置4个边框。即在怪异模式下的盒模型,...
HTML盒模型
qq_43256819的博客
08-28 1005
什么是盒模型 所有HTML标签都可以看成矩形盒子,由width、height、padding、border构成,称为“盒模型” 盒子的总宽度 = width + 左右padding + 左右border 盒子的总高度 = height + 上下padding + 上下border width属性 width属性表示盒子内容的宽度 width属性的单位通常是px,移动端开发也会涉及百分数、rem等单位 -当块级元素(div、h系列、li等)没有设置width属性时,它将自动撑满,但这并不意味着width
HTML---盒子模型
OlnyLove_琳的博客
03-31 944
盒子模型 盒子模型的结构 &lt;style type="text/css"&gt; #bigbox{ height:300px; width:400px; background-color:#CC9966; border:5px solid #FFFF00; /*边框*/ } #samllbox{ ...
写文章

热门文章

  • 计算机硬件的五大组成部分 21182
  • hint: Updates were rejected because the tip of your current branch is behind(git push线上与本地版本冲突问题) 21051
  • 使用Python编写小游戏:“石头剪刀布” 17309
  • 初识HTML(五)进阶:CSS盒子模型、页面布局 13793
  • 学习Django后你还不了解的DRF框架(一):缩短我们编写API的时间 10666

分类专栏

  • 随笔 6篇
  • DRF 5篇
  • Golang精进之路 4篇
  • HTML 7篇
  • Django 13篇
  • MySQL数据库 9篇
  • Python面向对象 7篇
  • Python爬虫 1篇
  • Python进阶 19篇
  • Python模块 3篇
  • Python基础 10篇

最新评论

  • 解决Mac使用脚本时提示:zsh: killed

    Simple子夜: 你问题解决了吗,我是下载完protoc之后发现命令里面用不了,所以找到这个protoc所在的目录右击鼠标打开之后,再使用就没有kill的现象的

  • 解决Mac使用脚本时提示:zsh: killed

    沼泽鱼97: 我这边也是,下载完protoc,又信任了这个文件,然后后面所有的命令,ls,rm啥的都会被kill,电脑一整个不能用,你一样吗

  • 解决Mac使用脚本时提示:zsh: killed

    Simple子夜: 啊!你那边提示的是什么信息呀。我这边是之前不同的程序/脚本提示“因为Apple无法检查其是否包含恶意软件”,我都是右击打开一次就好了

  • 解决Mac使用脚本时提示:zsh: killed

    不叫猫先生: 并么有解决

  • 初识HTML(五)进阶:CSS盒子模型、页面布局

    namelijink: 太赞了,90分以上的高质量文档(满分100)

最新文章

  • 解决Mac使用脚本时提示:zsh: killed
  • 解决Golang WriteHeader设置后,Content-Type失效的问题
  • Golang 数据库操作
2024年1篇
2023年8篇
2022年3篇
2021年45篇
2020年50篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司南充德阳网站优化服务宜昌怎样优化网站山东网站优化排名多少钱网站优化内容在线咨询网站优化推广郑州公司排名保山关键词网站优化武汉云助客网站优化网站优化托管怎么样电脑优化网站新乡网站排名优化哪家正规荆州互联网推广网站优化新兴网站优化服务重庆网站优化厂家报价六安网站优化公司价格商丘百度网站优化哪里的好上海官网网站优化哪家好怎样给网站优化网站制作开发及优化塘沽网站优化排名联系电话网站优化规划方向娄底网站优化免费咨询服务型网站优化宁波企业如何优化网站深圳小企业网站优化排名新网站怎么做优化免费网站站长优化开发区网站优化价格黄山网站优化排名是什么品牌网站优化系统代理加盟网站推广优化丶金苹果专业冖歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化