CSS总结(重点:盒模型、布局)(上)

本文深入讲解CSS的工作原理,包括样式加载流程、样式优先级、选择器类型、元素显示模式、盒子模型及其特性等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1. CSS究竟是怎么工作的?

当浏览器展示一个文件的时候,它必须兼顾文件的内容和文件的样式信息,下面我们会了解到它处理文件的标准的流程。下面的步骤是浏览加载网页的简化版本,而且不同的浏览器在处理文件的时候会有不同的方式,但是下面的步骤基本都会出现。

(1)浏览器载入HTML文件(比如从网络上获取)。

(2)将HTML文件转化成一个DOM(Document Object Model),DOM是文档对象模型,通过创建表示文档的树,让开发者可以随心所欲地控制网页的内容和结构。

(3)接下来,浏览器会拉取该HTML相关的大部分资源,比如嵌入到页面的图片、视频和CSS样式。JavaScript则会稍后进行处理。

(4)浏览器拉取到CSS之后会进行解析,根据选择器的不同类型(比如element、class、id等等)把他们分到不同的“桶”中。浏览器基于它找到的不同的选择器,将不同的规则(基于选择器的规则,如元素选择器、类选择器、id选择器等)应用在对应的DOM的节点中,并添加节点依赖的样式(这个中间步骤称为渲染树)。

(5)上述的规则应用于渲染树之后,渲染树会依照应该出现的结构进行布局

(6)网页展示在屏幕上(这一步被称为着色)

2. CSS样式嵌入的三种形式及优先级

从CSS 样式代码插入的形式:内联式、嵌入式和外部式(在head里面添加<link href="base.css" rel="stylesheet" type="text/css" />)三种

优先级:内联式 > 嵌入式 > 外部式

但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面(其实就是浏览器是从前往后加载,在后面的嵌入式样式替换了外部式的样式)

3.选择器:

(1)后代选择器:(空格)作用于元素的所有后代。

(2)通用选择器: *,作用于所有元素。

(3)伪类选择符:允许给html不存在的标签(标签的某种状态)设置样式,比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色。

……

当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符(,)

                      

4. !important表示什么?

为某些样式设置具有最高权值

5. 关于块级元素、内联元素、内联块状元素

block(块级)元素特点:

(1)每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)

(2)元素的高度、宽度、行高以及顶和底边距都可设置。

(3)元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

设置display:block就是将元素显示为块级元素。

inline-block (内联块)元素特点:

(1)和其他元素都在一行上(不独占一行);

(2)元素的高度、宽度、行高以及顶和底边距都可设置。

line(内联)元素:

(1)和其他元素都在一行上(不独占一行);

(2)行内元素设置 widht/height 不生效,padding生效,margin只有左右两边生效

常用的块状元素有:

<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

常用的内联元素有:

<a><span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>

常用的内联块状元素有:

<img><input>

6.盒子模型:

                                   

                

上面的内联元素为内联盒子,块元素为块盒子。

块盒子:

内边距(padding), 外边距(margin) 和 边框(border) 会将其他元素从当前盒子周围“推开”

内联盒子:

垂直方向的内边距、以及边框会被应用但是不会把其他处于inline状态的盒子推开。

(会造成重叠)

水平方向的内边距、外边距以及边框会被应用且会把其他处于inline状态的盒子推开。

关于margin(外边距):

外边距是盒子周围一圈看不到的空间。它会把其他元素从盒子旁边推开。外边距属性值可以为正也可以为负。

margin 属性接受 1~4 个值。每个值可以是 <length>,<percentage>,(注意百分比值 <percentage> 的依据为最近的块容器的宽度 width )或 auto(一般会居中)。取值为负时元素会比原来更接近临近元素。

-当只指定一个值时,该值会统一应用到全部四个边的外边距上。

-指定两个值时,第一个值会应用于上边和下边的外边距,第二个值应用于左边和右边。

-指定三个值时,第一个值应用于上边,第二个值应用于右边和左边,第三个则应用于下边的外边距。

-指定四个值时,依次(顺时针方向)作为上边,右边,下边,和左边的外边距

如何理解margin与padding,我们首先可以想象一下我们手里拿了一个钻戒要向女朋友求婚,一般求婚的时候钻戒都是在盒子里放着,钻戒一般都放在盒子的中央,没有哪家的钻戒是把盒子占的满满的,我们的钻戒就放在盒子的中央,占了很小的一块面积,其它的地方都是有填充物的,我们可以把这个填充物简单的理解为padding也就是钻戒距离盒子内边缘的距离,这时候我们想把钻戒放在桌子上,放在桌子的什么位置呢,左上角,右上角,还是中间,我们姑且把他放在中间把,那么我们这个钻戒盒子距离桌子边缘的距离就是margin,那么很简单我们那个钻戒的盒子就是我们所说的border。

外边距重叠:

-元素之间的上下外边距有时会重叠,实际空出的空间长度变为两外边距中的较长值,横向margin不会发生折叠

-有设定float和position=absolute的元素不会产生外边距重叠行为。

-如果具有间隙的元素的顶部和底部边距相邻,则其边距与后续兄弟元素的相邻边距折叠,但生成的边距不会与父块的底部边距折叠。

-当两个或更多边距折叠时,产生的边距宽度是折叠边距宽度的最大值。在负边距的情况下,从正相邻边距的最大值中减去负相邻边距绝对值的最大值。如果没有正边距,则从零中减去相邻边距绝对值的最大值。

Padding(内边距):

内边距位于边框和内容区域之间。与外边距不同,不能有负值的内边距,所以值必须是0或正的值。

会影响盒子的实际大小,撑开盒子,会影响整个布局;如果元素没有指定width/height属性,则该元素宽度为父元素宽度的100%,而且padding不会撑开盒子宽度

溢出(overflow):

溢出是在盒子无法容纳下太多的内容的时候发生的。在盒子里面需要放置文本的时候,限制住块的尺寸是会引起问题的,因为可能会有比你在设计网站的时候所预计的文本更多的文本,或者文本变大了——比如用户增加字体大小的时候。

overflow属性是你控制一个元素溢出的方式。

overflow的设置项:

(1)visible 默认值。内容不会被修剪,会呈现在元素框之外。

(2)hidden 内容会被修剪,并且其余内容是不可见的,此属性还有清除浮动、清除margin-top塌陷的功能。

(3)scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。

(4)auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。

(5)inherit 规定应该从父元素继承 overflow 属性的值。

5.定位及层级:

定位允许您从正常的文档流布局中取出元素,并使它们具有不同的行为。

1)静态定位(static):

静态定位是每个元素获取的默认值——它只是意味着将元素放入它在文档布局流中的正常位置。

2)相对定位(relative:

它与静态定位非常相似,占据在正常的文档流中(之前的位置依然在),除了你仍然可以修改它的最终位置,包括让它与页面上的其他元素重叠。

相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由leftrighttopbottom属性确定,偏移前的位置保留不动。div{position:relative;top: 30px;left: 30px;}

(3)绝对定位(absolute)

绝对定位的元素不再存在于正常文档布局流中。相反,它坐在它自己的层独立于一切。这意味着我们可以创建不干扰页面上其他元素的位置的隔离的UI功能 例如,弹出信息框和控制菜单;翻转面板;可以在页面上的任何地方拖放的UI功能……

绝对定位相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

(left: 50%;bottom:100%;   表示出现在父级元素的左边百分之五十,下边百分之百的距离

多个元素时设置百分比可以进行统一的布局)

(4)固定定位(fixed)

这与绝对定位的工作方式完全相同,只有一个区别:绝对定位固定元素是相对于 <html> 元素或其最近的定位祖先,而固定定位固定元素则是相对于浏览器视口本身 这意味着您可以创建固定的有用的UI项目,如持久导航菜单。

(5) position: sticky

比起其他位置值要新一些。它基本上是相对位置和固定位置的混合体,它允许被定位的元素表现得像相对定位一样,直到它滚动到某个阈值点(例如,从视口顶部起1​​0像素)为止,此后它就变得固定了。例如,它可用于使导航栏随页面滚动直到特定点,然后粘贴在页面顶部。

层级:当元素开始重叠,什么决定哪些元素出现在其他元素的顶部? 

z-index属性:网页有一个z轴:一条从屏幕表面到你的脸(或者在屏幕前面你喜欢的任何其他东西)的虚线。z-index 值影响定位元素位于该轴上的位置;正值将它们移动到堆栈上方,负值将它们向下移动到堆栈中。默认情况下,定位的元素都具有z-indexauto,实际上为0z-index只接受无单位索引值,如z-index:1,较高的值将高于较低的值。

内容概要:《2024年中国城市低空经济发展指数报告》由36氪研究院发布,指出低空经济作为新质生产力的代表,已成为中国经济新的增长点。报告从发展环境、资金投入、创新能力、基础支撑和发展成效五个维度构建了综合指数评价体系,评估了全国重点城市的低空经济发展状况。北京和深圳在总指数中名列前茅,分别以91.26和84.53的得分领先,展现出强大的资金投入、创新能力和基础支撑。低空经济主要涉及无人机、eVTOL(电动垂直起降飞行器)和直升机等产品,广泛应用于农业、物流、交通、应急救援等领域。政策支持、市场需求和技术进步共同推动了低空经济的快速发展,预计到2026年市场规模将突破万亿元。 适用人群:对低空经济发展感兴趣的政策制定者、投资者、企业和研究人员。 使用场景及目标:①了解低空经济的定义、分类和发展驱动力;②掌握低空经济的主要应用场景和市场规模预测;③评估各城市在低空经济发展中的表现和潜力;④为政策制定、投资决策和企业发展提供参考依据。 其他说明:报告强调了政策监管、产业生态建设和区域融合错位的重要性,提出了加强法律法规建设、人才储备和基础设施建设等建议。低空经济正加速向网络化、智能化、规模化和集聚化方向发展,各地应找准自身比较优势,实现差异化发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值