CSS 常用语法与盒模型分析

 


CSS基础知识#

CSS规则由两个主要的部分构成:选择器,以及一条或者多条声明

在上面的CSS代码中

  • h1 是选择器
  • {color:red;front-size:14px;} 是声明
  • color是属性名称
  • red是属性值
  • color:red; 被称为一个声明

每个声明由一个属性和一个值组成。selector选择要设置样式的HTML元素。

属性是要更改的样式属性。每个属性都有一个值。 CSS声明以分号结尾,声明组被大括号括起来

四种引入方法#

内联样式#

内联样式是在标记的style属性中设定CSS样式。这种方式没有体现出CSS的优势,不推荐使用

内部样式#

内部样式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中

外部样式(推荐)#

将一个.css文件引入到HTML文件中

三种引入的优先级#

导入式(了解就好)#

 将一个独立的.css文件引入HTML文件中,导入式使用CSS规则引入外部CSS文件,<style>标记也是写在<head>标记中,使用的语法如下

注意:

导入式会在整个网页装载完后再装载CSS文件,因此这就导致了一个问题,如果网页比较大则会儿出现先显示无样式的页面,闪烁一下之后,再出现网页的样式。这是导入式固有的一个缺陷。使用链接式时与导入式不同的是它会以网页文件主体装载前装载CSS文件,因此显示出来的网页从一开始就是带样式的效果的,它不会象导入式那样先显示无样式的网页,然后再显示有样式的网页,这是链接式的优点。

基础选择器#

“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素

组合选择器#

组合选择器主要包括,群组选择器,子代(后代)选择器,相邻(兄弟)选择器,交集选择器

复杂选择器优先级#

实例分析#

注意嵌套规则#

属性选择器

伪类选择器

CSS伪类:是用来给选择器添加一些特殊效果#

a标签的伪类:专用于控制链接的显示效果

其中hover与active其他标签也可以使用

1
2
div:hover
div:active

 :nth-of-type()  & :nth-child()  &   :not()#

实例分析#

:before & :after#

利用伪类实现边框(最多实现两条边)

CSS优先级和继承#

CSS优先级

所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。

按这些规则将数字符串逐位相加,就得到最终的权重,然后在比较取舍时按照从左到右的顺序逐位比较

CSS的继承性:

继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个BODY定义了的颜色值也会应用到段落的文本中
1
body{color:red;}       <p>helloyuan</p>

这段文字都继承了由body {color:red;}样式定义的颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0

1
p{color:green}

发现只需要给加个颜色值就能覆盖掉它继承的样式颜色。由此可见:任何显示申明的规则都可以覆盖其继承样式。 

此外,继承是CSS重要的一部分,我们甚至不用去考虑它为什么能够这样,但CSS继承也是有限制的。有一些属性不能被继承,如:border, margin, padding, background等

附加说明

css的常用属性

长度#

颜色属性#

字体属性#

注意:行高设置成content的高,行内的字就是位于中间位置#

背景属性#

注意:如果将背景属性加在body上,要记得给body加上一个height,否则结果异常,这是因为body为空,无法撑起背景图片;另外,如果此时要设置一个width=100px,你也看不出效果,除非你设置出html

eg:

文本属性#

实战演练

边框属性#

边框单独设置各边#

列表属性#

list-style-type属性指定列表项标记的类型

使用图像来替换列表项内的标记

  

display属性#

display:inline-block可做列表布局,其中的类似于图片间的间隙小bug可以通过如下设置解决

none(隐藏某标签)#

注意与visibility:hidden的区别

visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

block(内联标签设置为块级标签)#

注意:一个内联元素设置为display:block是不允许有它内部的嵌套块元素。

inline(块级标签设置为内联标签)#

1
li {display:inline;}

inline-block#

display:inline-block可做列表布局,其中的类似于图片间的间隙小bug可以通过如下设置解决

 实战演练

display总结#

overflow属性#

实例分析#

盒子模型

盒模型简介#

margin:   用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的

padding:           用于控制内容与边框之间的距离;

Border(边框)     围绕在内边距和内容外的边框

Content(内容)   盒子的内容,显示文本和图像

  

盒模型Padding,Border的使用(利用Border实现一个三角形)#

盒模型布局#

类似body的边距问题#

边框在默认情况下会定位于浏览器窗口的左上角,但是并没有紧贴着浏览器的窗口的边框,这是因为body本身也是一个盒子(外层还有html),在默认情况下,   body距离html会有若干像素的margin,具体数值(chrome里面是8px)因各个浏览器不尽相同,所以body中的盒子不会紧贴浏览器窗口的边框了

reset操作  清除系统默认(不喜欢的)样式

边界圆角

背景样式

精灵图

盒模型布局细节

分情况讨论

实例分析

盒模型小案例

 

posted @   鲸鱼的海老大  阅读(348)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示
CONTENTS