# css_study **Repository Path**: moonshinean/css_study ## Basic Information - **Project Name**: css_study - **Description**: css基础学习 - **Primary Language**: HTML - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-01-21 - **Last Updated**: 2024-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## css 字体样式属性 ### 1、font-size:字号大小 font-size属性属于设置字号,该属性的值可以使用相对长度单位,也可以使用绝对长度单位。其中,相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使用比较少。具体如下 : - em 相对当前对象文办的字体尺寸 - px 像素,最常用,推荐使用 - 绝对长度单位 - in 英寸 - cm 厘米 - mm 毫米 - pt 点 ### 2、font-family: 字体 font-family属性用于设置字体,网页中常用的字体有宋体、微软雅黑、黑体等,列如:将网页中左右的段落文办的字体设置为微软雅黑,可以使用如下CSS样式代码: ``` p {font-family: "微软雅黑"} 可以同时指定多个字体,中间以逗号隔开,表示如果浏览器不支持第一个字体,则会尝试下一个,直接找到合适的字体。 ``` > 常用技巧 - 1、现在网页中谱表适用14px+。 - 2、尽量使用偶数数字的字号,ie6等老式浏览器支持奇数会有bug。 - 3、各种字体之间必须使用英文状态下的逗号隔开。 - 4、中文字体需要佳音文状态下的引号,英文字体一般不需要加引号。当需要设置英文字体时,英文字体名必须位于中文字体名之前。 - 5、如果字体名中包含空格、#、$等符号,则改字体必须加因为状态下的单引号或双引号,列如font-family:"Times New Roman"; - 6、尽量使用系统默认字体,保证在任何用户的浏览器中都能正确显示。 ### 3、css unicode字体 1、在css 中设置 字体名称,直接写中文是可以的,但是在文件编码不匹配时会产生乱码的错误,xp系统不支持类似的微软雅黑的中文。 解决办法 - 方案一:你可以直接使用英文来代替,比如font-family:"Microsoft Yahei" - 方案二:在css直接使用 Unicode 编码来写字体名可以避免这些错误,使用Unicode 写中文字体名称,浏览器是可以正确的解析的。 - 微软雅黑: "\5FAE\8F6F\96C5\9ED1" - 宋体:"\5B8B\4F53" ### 4、font-weight:字体粗细 - 字体加粗除了用b和strong标签以外,可以使用css来实现,但是css是没有语义的。 ``` 1、font-weight属性用于定义字体的粗细,其属性值:normal、bold、bolder、lighter、100~900(100的整数倍) ``` > 小技巧: 数字400等价于normal,而700等价于bold。但是我们更喜欢用数字表示。 ### 5、font-style:字体风格 - 字体除了用i和em标签之外,可以使用css来实现,但是css没有语义的。 - **font-size** 属性用于定义字体的风格,如设置斜体、倾斜或者正常字体,其可用属性值如下: - **normal**: 默认值,浏览器会显示标准的字体样式。 - **italic**: 浏览器会显示倾斜的字体样式。(指定文本样式为斜体,对于没有设计斜体的特殊字体,如果需要使用斜体外观将应用oblique) - **oblique**: 浏览器会显示倾斜的字体样式(指定文本字体样式为倾斜的字体。人为的是文字倾斜) > 小技巧: ``` 1、平时我们很少给文字加斜体,反而更喜欢给标签(em, i)改为普通模式 ``` ### 6、font:综合设置字体样式(重点) > font属性用于对字体样式进行综合设置,其基本语法格式如下: ``` 选择器 {font: font-style font-weight font-size/line-height font-family;} ``` ``` 使用font属性是,注意必须按上面的语法格式中的顺序书写,不能更换顺序,各个属性以及空格隔开。 注意:其阿红不需要设置的属性可以省略,但是必须保留font-size和font-family属性,否则font属性将不起作用 ``` ## css选择器 ### 1、标签选择器(元素选择器) - 标签选择器是指HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签你指定统一的CSS样式。其语法结构如下: ``` 标签名 {属性1:属性值1;属性2:属性值2;属性3:属性值3;} 或者 元素名 {属性1:属性值1;属性2:属性值2;属性3:属性值3;} ``` 标签选择器最大的优点就是能快速的为页面汇总的同类型的标签统一样式,同时这样是他的缺点,不能涉及差异化样式。 ### 2、类选择器 类选择器使用"."(英文点号)进行标识,后面紧跟着类名,其基本语法格式如下 ``` .类名{属性1:属性值1;属性2:属性值2;属性3:属性值3;} ``` ``` 标签调用的时候用class= "类名" 即可。 ``` 类选择器最大的优势是可以为元素定义单独的或相同的样式。 > 小技巧: ``` 1、长名称或词组可以使用中横线来为选择器命名, 2、不建议使用"_"下划线来命名css选择器。 ``` 输入的时候少按一个shift键; 浏览器兼容问题(比如使用_tip的选择器命名,在IE6是无效的) 能良好的区分JavaScript变量名(JS变量名是用:"_") ``` 3、 不要纯数字、中文等命名,尽量使用英文字母来表示。 ``` 名命规范: 命名是我们通俗预定的,但是没有规定必须用这些常用的命名。 注意: ``` 1、样式显示效果跟HTML元素中的类名先后顺序没有关系,受css样式书写的上下顺序有关。 2、各个类名中间用空格隔开 ``` 多类名选择器在后期布局比较复杂的情况下, 还是较多是使用的。 ### 3、id 选择器 1、id选择器使用"#"进行标识,后面紧跟着id名,其基本语法格式如下: ``` #id名{属性1:属性值1;属性2:属性值2;属性3:属性值4;} ``` > 该语法中,id即为HTML的id属性值,大多数HTML元素都可以定义ID属性,元素的ID值是唯一的,只能对应于文档中某一个具体的元素,用法基本和类选择器相同。 #### id选择器和类选择器的区别 W3C标准规定,在同一个页面内,不允许有相同的名字id对象出现,但是允许相同名字的class。 - 类选择器好比人名,是可以多次重复使用的。 - id选择器好比人的身份证,全中国是唯一的,不得重复,只能使用一次。 > 类选择器和id选择器的区别在使用的次数少,id选择器只能使用一次,类选择器可以使用多次 ### 4、通配符选择器 通配符选择器使用"*"来表示,它是所有选择器中作用范围最广的,能匹配页面中的所有元素。但是基本语法格式如下: ``` *{属性1:属性值1;属性2:属性值2;属性3:属性值3;} ``` 列如下面代码,使用通配符定义css样式,清除所有的HTML标记的默认边距。 *{margin: 0;/定义外边距 padding: 0;/定义内边距} **注意:** 这个通配符选择器,就像我们电影明星中的梦中情人,想想它就好了,他不会跟你过日子,所以这个选择器,我们认识就好了,平时工作很少用。 ### 5、伪类选择器 首先,这也是一个选择器,伪类选择器用于向某些选择器添加特殊的效果。比如给链接添加特殊效果,比如可以选择第一个,第n个元素。 ``` 为了和我们刚才学的类选择器相区别,类选择器是一个点,比如 .demo{},而我们的伪类选择器用两个点,就是冒号 比如 :link{} ``` #### (1)、链接伪类选择器 - :link `/*未访问的链接*/` - :visited `/*已访问的链接*/` - :hover `/*鼠标移动到链接上*/` - :active `/*选定链接*/` 注意写的时候,他们的顺序尽量不要颠倒,按照lvha的顺序来写, love hate 记忆法,或者 lv 包包 非常hao 实际工作中,我们简单些链接伪元素选择器就好了 ``` a { /*a 是标签选择器。所有的链接*/ font-weight: 700; font-size: 16px; color: gray; } a:hover { /* : hover 是连接伪类选择器 鼠标经过*/ color: orchid; /* 鼠标经过颜色变成粉色 */ } ``` #### (2)、结构(位置)伪类选择器(css3新特性(有一些兼容性的问题)) - :first-child: 选取属于其父元素的首个子元素的指定选择器 - :last-child: 选取属于其父元素的最后一个子元素的指定选择器 - :nth-child(n):匹配属于其父元素的第N个子元素,不论元素类型 - 3n 0、3、6、9(n是从0开始) - :nth-last-child(n): 选择器匹配属于其元素的第N个子元素的每个元素,不论元素的类型,从最后一个子元素开始计数。n可以是数字、关键词或公式。 #### (3)、目标伪类选择器 - :target 目标伪类选择器: 选择器可用于选取当前活动的目标元素 ``` :target { color: aquamarine; font-size: 30px; } ``` ## 3、CSS外观属性 ### 1、color:文本颜色 color属性用于定义文本的颜色,其取值方式有如下3种: - 1、预定义的颜色值,如red, green, blue等 - 2、十六进制, 如#FF0000,#FF6600,#29D794等。实际工作中,十六进制是最常用的定义颜色的方式。 - 3、RGB代码,如红色可以表示为rgb(255,0,0)或者(100%,0%,0%) 需要注意的是,如果使用RGB代码的百分比颜色值,取值为0时也不能省略百分号,必须写为0% ### 2、line-height:行间距 line-height属性用于设置行间距,就是行与行之间的距离,即字符的垂直间距,一般称为行高,line-height常用的属性值单位有三种,分别为 像素px,相对值em和百分比%,实际工作中使用最多的是像素px。 > 最多比字体大7~8像素 ### 3、text-align: 水平对齐方式 ``` text-align 属性用于设置文本内容的水平对齐,相当于html中的align对其属性,其属性值如下 ``` - left:左对齐(默认值) - right: 右对齐 - center:居中对齐 ### 4、text-indent: 首行缩进 text-ident属性用于设置首行文本的缩进,其属性值可为不同的单位的数值、em字符宽度的倍数、或相当于浏览器窗口宽度的百分比% 允许使用负值,建议使用em作为设置单位。1em等于一个中文字的宽度,2em等于首行缩进2个字符。 ### 5、letter-spacing:字间距 letter-spacing:属性用于定义字间距,所谓的字间距就是字符与字符之间的空白。其属性值可为不同单位的数值,允许使用负值,默认为normal。 ### 6、word-spacing:单词间距 - word-spacing:属性用于定义英文单词之间的间距,对于中文字符无效。和letter-spacing一样,其属性值可为不同单位的数值,允许使用负值,默认为normal - word-spacing和letter-spacing 均可对英文进行设置。不同的是letter-spacing定义的为字母之间的间距,而word-spacing定义为英文单词之间的间距。 ### word-break:自动换行 - normal 使用浏览器默认的换行规则 ### 7、颜色半透明(css3) 文字颜色到了css3我们就可以采取半透明的格式语法如下: ``` color: rbga(r,g,b,a) a是alpha 透明的意思。color:rgba(0,0,0,0,0.3) ``` ### 8、文字阴影(css3) 以后我们可以给我们的文字添加阴影效果了 Shadow 影子 ``` text-shadow: 水平位置 垂直位置 模糊距离 阴影颜色; ``` - h-shadow: 必须。水平阴影的位置。允许负值 - v-shadow: 必须。垂直阴影的位置。允许负值 - blur:可选。模糊的距离 - color:可选。阴影的颜色。 > 前两必须填写,后两项可以选写。 ## 4、引入css样式表(书写位置) css可以写到那个位置?是不是一定要写到html文件里面呢? ### 1 行内样式(内联样式) 是通过标签的style属性来设置元素的样式,其基本语法格式如下: ``` <标签名 style="属性1:属性1; 属性2:属性2;属性3: 属性3"> ``` 语法中的style是标签的属性,实际上任何HTML标签都拥有style属性,用来设置行内样式。其中属性和值的书写 规范与css样式规则相同,行内样式只对其所在的标签及嵌套在其中的子标签起作用。 ### 2 内部样式表(内嵌式) 内嵌式是将css代码集中卸载HTML文档的head头部标签中,并且用style标签定义,其基本语法格式如下: ``` ``` 语法中,style标签一般位于head标签中的title标签之后,也可以把它放在HTML文档的任何地方。 type="text/css" 在html5中可以省略,写上也比较符合规范,所以这个地方可以省略。 ### 3 外部样式表(外链式) 链入式是将所有的样式放在一个或多个以css为扩展名的外部样式表文件中,通过link标签将外部样式表文件链接到HTML文档中, 其基本语法格式如下: ``` ``` 注意: link 是个单标签哦!!! 该语法中,link 标签需要放在head头部标签中,并且必须制定link标签的三个属性,具体如下: - *-* herf: 定义所链接外部样式表文件的URL,可以是相对路劲,也可以是绝对路劲。 - *-* type:定义所链接文档的类型,在这里需要指定为"text/css",表示链接的外部文件类型为css样式表。 - *-* rel:定义当前文档与被链接文档之间的关系,在这里需要指定为"stylesheet",表示被链接的文档是一个样式表文件。 ### 4 三种样式表总结 | 样式表 | 优点 | 缺点 | 使用情况 | 控制范围| | :--- | :----: | :----: |:----:|:----:| | 行内样式表 | 书写方便,权重高 | 没有实现样式和结构分离 | 较少 | 控制一个标签(少) | | 内部样式表 | 部分结构和样式相分离 | 没有彻底分离 |较多 | 控制一个页面(中) | | 外部样式表 | 完全实现结构和样式相分离 | 需要引入 |较多,强烈推荐 | 控制整个站点(多) | ### 5 标签的显示模式(display) 标签的类型(显示模式) HTML标签一般分为块标签和行内标签两种类型,他们也称块元素和行内元素。具体如下: #### 块级元素(block-level) 每一个块级元素通常都会独自占据一整行或者多整行。可以对其设置宽度、高度、对其方式等属性,通常用于网页布局和网页结构的搭建。 ``` 常见的块级元素有

~