css中几个重要概念
替换元素与非替换元素
- 替换元素:是指浏览器根据元素的标签和属性来决定元素的具体内容。
例如"<img src="xx.jpg">浏览器会根据标签的src属性的值来读取图片信息并显示,<input type="radio">浏览器会根据input标签的type属性来决定是显示输入框还是单选按钮
- 非替换元素:其内容直接显示在客户端的元素叫非替换元素
<h1>shizai</h1>
<div>shashi</div>
包含块
在css中,有时一个元素的位置和尺寸的计算都相对于一个矩形,这个矩形被称作包含块。包含块是一个相对的概念,比如子元素的初始化布局总是在父元素的左上角,这就是一个相对的概念。每个元素都会生成一个包含块,但这个包含块是虚无的,你看不到也摸不着,只是一个概念。包含块吧并不会限制它里面元素的大小,如果里面的元素比包含块大,那么超出的部分就会被溢出。一个元素的位置和尺寸与它的包含块息息相关,而元素会为它的子孙元素创建包含块,但这并不代表这个包含块就是它的父元素(不过这个父元素确实和包含块有着一些联系)。在某些情况下,我们可以将包含块理解为父元素。
包含块的创建
- 在HTMl中,根元素的包含块叫作初始包含块,具体创建由客户端决定
- 当定位置为fixed,则包含块由视口创建
- 当定位值为relative,static或没有设置定位属性,则包含块由最近的父元素或祖先元素创建
- 当定位值为absolute,则包含块由最近的定位值relative、absolute、fixed创建。如果没有定位的祖先元素,则包含块为初始包含块(具体由客户端决定)
- 当祖先元素时行内元素时,那么包含块取决于父元素或祖先元素的direction属性
当定位值为absolute,父元素没有设置定位时,包含块为初始包含块。而如果指定了其定位值,则包含块由其定位了的父元素或祖先元素创建
<style>
.box{
width: 100px;
height:100px;
border:1px solid red;
}
.box1{
position: absolute;
left:0;
top:0;
}
.box2{
position: relative;
left:100px;
}
.box2 .item,.box3,.box3 .item,.box4 .item{
position: absolute;
}
.box4{
position: fixed;
left: 200px;
}
</style>
<div class="box box1">父元素或祖先元素没有定位时</div>
<div class="box box2">
<div class="item">父元素或祖先元素定位值为relative</div>
</div>
<div class="box box3">
<div class="item">父元素或祖先元素定位值为absolute</div>
</div>
<div class="box box4">
<div class="item">父元素或祖先元素定位值为fixed</div>
</div>
当祖先元素时行内元素时,若direction值为ltr则右边补空白,若direction值为rtl则左边补空白
<style>
.box{
display: inline;
direction: ltr;
width: 100px;
height: 100px;
}
.box2{
display:inline;
direction: rtl;
width:100px;
height: 100px;
}
</style>
<div class="box">
<div class="item">direction:ltr</div>
</div>
<div class="box2">
<div class="item">direction:rtl</div>
</div>
控制框
控制框主要指display的属性所形成的框,包括块框,匿名块框,行内框,匿名行内框,插入框(run-in).
display的一些属性:
- block生成一个块框
- inline-block生成一个块框,元素内部按照块框格式化,但元素本身按照一个行内元素的形式来格式化(初始化)
- inline生成一个或多个行内框
- list-item生成一个块框和一个列表行内框
- none将不在结构中显示,不产生任何框,并且子孙元素也不产生任何框
- run-in将根据后一个元素来选择要生成的框
1.块级元素与块框
其中可以产生块元素的值为block,list-item,run-in,table。块级元素除了table外都会形成一个主块框,并且这个主块框只包含一个类型的框,就是说里面要么是块框,要么是行内框。主块框会为子孙元素建立包含块,生成内容。主块框参与块级格式化上下文。某些块级元素还会在主块框之外生成额外的框,比如当某个元素的display值为list-item时,它会生成一个额外的框用来放置那些标志,比如li元素前面的标志
2.匿名块框
<div>
这是一段<p>内容</p>
</div>
div包括了一段文本和一个块框(p),此时div似乎既包括了行内框,又包括了一个块框,那么它会将所有的行内框都包含在一个匿名块框之中
3.行内框
可以产生行内元素的值为inline,inline-table,run-in
4.匿名行内框
<div>
这是一段<em>内容</em>
</div>
div包括了一段文本和一个em元素,此时div似乎包含的都是一个行内框,那么它会为这段文本生成一个匿名行内框。在格式化table时,会形成更多的匿名行内框。
5.插入框(run-in)
如果一个元素的display值为run-in,那么它会根据后面的元素来确定它的类型应该是什么。这个属性在新的Chrome版本中已经移除了,可以不用关注该属性了。
本文转载于猿2048:css中几个重要概念
css中几个重要概念的更多相关文章
- CSS中的几个概念--------Day39
世界杯疯狂来袭,让这个原本就高温的夏季瞬间被引爆了,这肆虐的激情仿佛让一切都灼热了起来,绽放着刺目的光,工作之余总有那么一群人在那激烈的讨论着争辩着,抑不住的亢奋. 非常不巧,往往这群身影中总有我的存 ...
- CSS中的盒子模型与 box-sizing 属性
盒子模型是css中一个重要的概念,是开发网页必须要用的布局方法.盒子模型有两种,分别是标准 w3c 盒子模型和 ie 盒子模型. 标准 w3c 盒子模型:包括 magin(外边距).border(边框 ...
- 利用DIV+CSS制作网页过程中常用的基本概念及标签使
CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体.颜色.背景.图片等的控制,使网页能够完全依照设计者的想法来显示. CSS可以控制网页的显示, ...
- 利用DIV+CSS制作网页过程中常用的基本概念及标签使用细节
CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体.颜色.背景.图片等的控制,使网页能够完全依照设计者的想法来显示. CSS可以控制网页的显示, ...
- CSS中层叠和继承的概念。
继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代.比如下面代码: 1 2 3 4 5 6 7 8 9 <ht ...
- CSS中那些必须掌握的概念
一.盒子模型 1.什么是盒子模型 css盒模型本质上是一个盒子,封装周围的html元素,它包括:外边距(margin).边框(border).内边距(padding).实际内容(content)四个属 ...
- CSS中一些重要概念
在CSS的最后一个博客中,将学习整理一些CSS中的重要概念,对这些重要概念的掌握,将对CSS的认识十分重要. 了解这些概念对深入理解CSS的本质十分重要:(1)包含块containing block ...
- 对CSS中的Position、Float属性的一些深入探讨
对CSS中的Position.Float属性的一些深入探讨 对于Position.Float我们在平时使用上可以说是使用频率非常高的两个CSS属性,对于这两个属性的使用上面可能大多数人存在一些模糊与不 ...
- 浅析CSS中的BFC和IFC
1. 为什么会有BFC和IFC 首先要先了解两个概念:Box和formatting context: Box:CSS渲染的时候是以Box作为渲染的基本单位.Box的类型由元素的类型和display属性 ...
随机推荐
- Centos6.x安装之后的9件事
Centos6.x安装之后的9件事 这些不是必须都做的,只不过是我个人的习惯,在此记录一下. 1.修改yum源到国内 CentOS系统更换软件安装源 备份你的原镜像文件,以免出错后可以恢复. mv / ...
- 错误try……except……else……finally 记录错误logging 抛出错误raise
1.错误处理机制 try--except--finally 格式: try: 可能出错的代码 except xxx1Error as e: 处理1 except xxx2Error as e: 处理2 ...
- IndexError:list assignment index out of range
L=[] L[0]=2 L[1]=3 报错:IndexError: list assignment index out of range,列表超过限制 一种情况是:list[index]的index超 ...
- 如何设置计算机IP地址
今天公司变更网络环境让同学们设置IP地址,我竟然不会,我问了一句IP还能自己设置啊,.low爆了,于是赶紧百度,现总结如下 IP地址的设置一种是静态IP,一种是自动获取IP(之前都是自动获取的吧,而且 ...
- 初识html及网络爬虫概念
网络爬虫 HTML超文本标记语言 HTTP协议 简单的网络请求 python模块模拟浏览器发送请求 爬虫小案例 爬虫简介 我们一般情况 都是通过浏览器正常访问服务端获取资源浏览器展示给用户看 爬虫 模 ...
- LeetCode-079-单词搜索
单词搜索 题目描述:给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母顺序,通过 ...
- Node.js躬行记(16)——活动配置化
一直想将一些常规活动抽象化,制作成可配置的.原先的计划是做成拖拽的,那种可视化搭建,运营也能自己搭建页面. 这是一个美好的愿景,但是现实不允许我花太多精力去制作这样一个系统.经过权衡后,先设计成一个可 ...
- ASP.NET CORE 项目搭建(2022 年 3 月版)
ASP.NET CORE 项目搭建(2022 年 3 月版) 自读 沉淀了多年的技术积累,在 .NET FRAMEWORK 的框架下尝试造过自己的轮子. 摸索着闭门造过 基于 OWIN 服务后端. 摸 ...
- Net6 Configuration & Options 源码分析 Part2 Options
Net6 Configuration & Options 源码分析 Part2 Options 第二部分主要记录Options 模型 OptionsConfigurationServiceCo ...
- 【dubbo3.x trace组件分享】
目录 背景 一.trace-dubbo组件介绍 二.设计原理 2.1 原理图 2.2 实现方案 2.2.1 consumer端实现 2.2.2 provider端实现 2.2.3 traceId和sp ...