CSS(层叠样式表,Cascading Style Sheets)是一种用于控制网页外观的样式表语言,它通过定义样式规则,指定HTML页面中各个元素的显示方式,包括颜色、布局、字体、间距等。
1、选择器:选择器用于选定要应用样式的HTML元素,可以选择特定的标签(如<p>
表示段落)、类(以.
开头,如.header
)、ID(以#
开头,如#main-content
)等。
2、声明块:用大括号包围,包含一个或多个声明,每个声明由属性名和属性值组成,二者之间用冒号分隔,以分号结束。
3、属性:属性用于定义HTML元素的样式特征,如color
表示颜色,font-size
表示字体大小,margin
表示外边距等。
4、值:值用于指定属性的具体样式设置。color: red;
中的red
就是值,它定义了颜色属性的具体样式。
1、CSS1:1996年12月,W3C推出了CSS规范的第一版本,1997年,W3C颁布CSS1.0版本,较全面地规定了文档的显示样式,可分为选择器、样式属性、伪类/对象几个部分,这一规范立即引起了各方的关注,随即微软和网景公司的浏览器均能支持CSS1.0,这为CSS的发展奠定了基础。
2、CSS2:1998年,W3C发布了CSS的第二个版本,目前的主流浏览器都采用这标准,CSS2的规范是基于CSS1设计的,包含了CSS1所有的功能,并扩充和改进了很多更加强大的属性。
3、CSS3:2005年12月,W3C开始CSS3标准的制定,到目前为止该标准还没有最终定稿。
1、丰富的样式定义:CSS提供了丰富的文档样式外观,以及设置文本和背景属性的能力;允许为任何元素创建边框,以及元素边框与其他元素间的距离,以及元素边框与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。
2、易于使用和修改:CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的header部分,也可以将样式声明在一个专门的CSS文件中,以供HTML页面引用,如果需要修改样式,只需要在样式列表中找到相应的样式声明进行修改即可。
3、多页面应用:CSS样式表可以单独存放在一个CSS文件中,这样就可以在多个页面中使用同一个CSS样式表,CSS样式表理论上不属于任何页面文件,在任何页面文件中都可以将其引用,这样就可以实现多个页面风格的统一。
4、层叠性:简单的说,层叠就是对一个元素多次设置同一个样式,这将使用最后一次设置的属性值,例如对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面中,这些后来定义的样式将对前面的样式设置进行重写,在浏览器中看到的将是最后面设置的样式效果。
5、页面压缩:在使用HTML定义页面效果的网站中,往往需要大量或重复的表格和font元素形成各种规格的文字样式,这样做的后果就是会产生大量的HTML标签,从而使页面文件的大小增加,而将样式的声明单独放到CSS样式表中,可以大大的减小页面的体积,这样在加载页面时使用的时间也会大大的减少,CSS样式表的复用更大程度的缩减了页面的体积,减少下载的时间。
CSS是一种定义样式结构如字体、颜色、位置等的语言,被用于描述网页上的信息格式化和显示的方式,CSS样式可以直接存储于HTML网页或者单独的样式单文件,无论哪一种方式,样式单包含将样式应用到指定类型的元素的规则,外部使用时,样式单规则被放置在一个带有文件扩展名_css的外部样式单文档中,样式规则是可应用于网页中元素,如文本段落或链接的格式化指令,样式规则由一个或多个样式属性及其值组成,内部样式单直接放在网页中,外部样式单保存在独立的文档中,网页通过一个特殊标签链接外部样式单。
1、通用选择器:匹配所有元素,但是的效率非常低,不建议使用。*{margin:0;padding:0}
。
2、元素选择器:标签关键字{样式声明;}。div{}
p{}
。
3、ID选择器:<元素 id="id值">
。#id值{样式声明}
,ID在一个页面中不能重复,所有ID选择器只被一个元素应用。
4、类选择器:使用.
定义样式,哪个元素想用,用class都能调用。.类名{样式声明}
。
5、群组选择器:选择器1,选择器2,选择器3….{样式声明}。#d1,.c1,div,p.c2{color:red;background-color:yellow}
。
6、后代选择器:通过元素的后代关系,来匹配元素,后代关系:一层嵌套或者多于一层嵌套称为后代。#d1 p span{color:red;}
。
7、子代选择器:通过元素子代关系,来匹配元素,子代关系,一层嵌套为子代。#d1>p span{color:red;}
。
8、伪类选择器:匹配元素在某一个状态时的样式,只适用于a标签的伪类有未被访问:linka:link{color:red}
、已被访问:visiteda:visited{color:green}
、鼠标悬停的状态:hover、激活状态:active、元素获取焦点时的状态(input button)等。
1、颜色属性:如color
用于设置文本的颜色。
2、背景属性:如background-color
用于设置元素的背景颜色,background-image
用于设置元素的背景图片。
3、字体属性:如font-size
用于设置字体大小,font-family
用于设置字体系列。
4、尺寸和边框属性:如width
和height
用于设置元素的宽度和高度,border
用于设置元素的边框。
5、盒子模型属性:如margin
(外边距)、padding
(内边距)、border
(边框)和content
)用于定义盒子模型的各个部分。
6、定位属性:如position
用于设置元素的定位方式,top
、right
、bottom
、left
用于设置元素的位置偏移。
7、文本格式化属性:如text-align
用于设置文本的水平对齐方式,line-height
用于设置行高。
8、表格样式属性:如border-collapse
用于设置表格边框是否合并,text-align
用于设置表格单元格内文本的水平对齐方式。
9、浮动定位属性:如float
用于设置元素的浮动方式。
10、其他重要样式属性:如display
用于设置元素的显示方式,visibility
用于设置元素的可见性,opacity
用于设置元素的透明度。
1、行内样式:在元素中,写style属性,在style属性中编写样式。<p style="color:red;background-color:yellow;font-size: 50px;">
,这种方式只对当前元素生效,代码没有可重用性,内联样式默认优先级最高,但内联样式只在学习和测试中使用,项目基本不用。
2、内部样式:在head标签中,编写style标签,在style标签内部,编写属性。<style> p{ color:purple; background-color: pink; } </style>
,这种方式只能在当前页面中使用,项目中使用较少,学习和测试使用较多。
3、外部样式:创建一个.css文件,在html中的head标签里,使用link引入。<link rel="stylesheet" href="my.css"/>
,必须有rel="stylesheet",代表当前文件和引入文件的关系,项目中大量使用这种方式。
1、默认优先级:从高到低依次为内联样式、内部样式、外部样式(就近原则)、浏览器默认样式。
2、!important优先级:设置最高优先级!important,比内联都高,写在某一个值与分号之间,!important与值之间有空格。color: red !important;
,注意,内联样式不允许设置!important。
1、继承性:绝大多数文本字体样式可以被继承,但a标签不会继承字体颜色。
2、层叠性:对一个元素多次设置同一个样式,这将使用最后一次设置的属性值,例如对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面中,这些后来定义的样式将对前面的样式设置进行重写,在浏览器中看到的将是最后面设置的样式效果。
1、为什么CSS样式没有生效?
问题分析:可能的原因有多种,如选择器错误、语法错误、优先级不够、浏览器缓存问题等,首先检查选择器是否正确选择了目标元素,然后检查CSS语法是否有误,接着查看是否存在更高优先级的样式覆盖了当前的样式,最后尝试清除浏览器缓存或使用无痕模式查看效果。
解决方法:根据上述分析逐一排查问题并进行修正,如果是选择器错误,则更正选择器;如果是语法错误,则修正语法;如果是优先级不够,则提高当前样式的优先级;如果是浏览器缓存问题,则清除缓存或使用无痕模式查看效果。
2、如何实现响应式布局?
问题分析:响应式布局是指网页能够根据不同设备的屏幕大小和分辨率自动调整布局和显示效果,实现响应式布局需要使用媒体查询(Media Query)等技术来检测设备的屏幕大小和分辨率,并根据不同的条件应用不同的样式规则。
解决方法:在CSS中使用媒体查询来定义不同屏幕尺寸下的样式规则,可以使用@media (max-width: 600px) { ... }
来定义当屏幕宽度小于600px时的样式规则,还可以使用百分比布局、弹性盒子布局(Flexbox)和网格布局(Grid)等现代CSS布局技术来实现更灵活的响应式布局效果。