学无先后,达者为师

网站首页 编程语言 正文

CSS基础语法和盒模型

作者:Youth009 更新时间: 2022-07-18 编程语言

CSS基础语法和盒模型

CSS简介

Cascading Style Sheet 层叠样式表 用于给HTML标签添加样式

CSS3是CSS的最新版本 增加了大量的样式/动画/3D特效以及移动端特性

前端三剑客 HTML/CSS/JS 结构/样式/行为

HTML 与 CSS 之间的绑定 -> 选择器

CSS的书写位置

①内嵌式

内嵌在HTML结构中 : 标签对

②外链式

将CSS单独存为.css文件,通过标签引入

③导入式

<style></style>标签对中使用@import 引入
			导入式引入的样式表,不会等待CSS文件加载完毕,而是会立即渲染HTML结构,所以会存在将只有结构没有样式网页的展现在用户眼前的可能

④行内式 直接给标签添加style属性

CSS的基本语法

选择器 {
	key : value;
}

ps:最后一条样式可以不写分号

CSS选择器

	CSS2.1即存在
        标签选择器
        	元素选择器,类型选择器,将选中页面上所有该标签  通常用于标签初始化
        		标签名 {
					key : value;
				}
        id选择器
        	id是标签的唯一标识
        	id命名规则
        		只能由字母/数字/下划线/短横构成
        		不能以数字开头
        		区分大小写(习惯上一般为小写字母)
        		同一个页面不能有相同id的标签
        		#id{
        			key: value;
        		}
        class选择器
        	class 类名
        	命名规则与id相同
        	多个标签可以为相同类名
        	同一个标签可以同时属于多个类
        		.class{
        			key:value
        		}
        	原子类 符合样式的命名,如color-green , 文字颜色为绿色
        复合选择器
        	后代选择器
        		.box .spec 定位为类名为box的标签内部的类名为spec的标签
        	交集选择器
        		li.spec 标签为li,类名为spec的元素
        	并集选择器
        		ul,ol 同时选择所有ul和ol标签
        伪类
        	a标签的四个特殊状态 :
        		a:link 没有被访问的链接
        		a:visited 已经被采访过的链接
        		a:hover 正被鼠标悬停的链接
        		a:active 正被激活的链接(按下未松开)
    CSS3新增
    	元素关系选择器
    		子选择器 div>p div标签的子标签p(从ie7开始兼容)
    		相邻兄弟选择器 img+p 图片后紧跟着的段落将被选中(ie7开始兼容)
    		通用兄弟选择器 p~span p元素之后的所有同层级span元素(ie7开始兼容)
    	序号选择器
    		:first-child 第一个子元素
    		:last-child 最后一个子元素
    		:nth-child(3) 第3个子元素
    		:nth-of-type(3) 第3个某类型子元素
    		:nth-last-child(3) 倒数第3个子元素
    		:nth-last-of-type(3) 倒数第3个某类型子元素
    	属性选择器(ie9兼容)
    		举例 
    			img[alt] 具有alt属性的img标签
    			img[alt = '故宫'] 具有alt属性,且属性值为故宫的img标签
    			img[alt^ = '故宫'] alt属性以北京开头
    			img[alt$ = '夜景'] alt属性以夜景结尾
    			img[alt* = '美'] alt属性含有美字
    			img[alt~ = '手机拍摄'] alt属性中有空格隔开的手机拍摄字样
    			img[alt | = '参赛作品'] alt属性以参赛作品-开头
    	CSS3新增伪类 
    		选中某元素,用户赋予的状态
                :empty 选择空标签 即标签中无内容
                :focus 选择当前获得焦点的表单元素
                :enabled 选择当前有效的表单元素
                :disabled 选择当前无效的表单元素
                :checked 选择当前已经勾选的单选按钮或者复选框
                :root 选择根元素 ,即 <html> 标签
    	伪元素
    		无中生有,创造出的元素
                ::before 创建一个伪元素,其将成为匹配选中的元素的第一个子元素
                    content属性 元素内容,必须存在的属性
                ::after 与before类似,但是为最后一个子元素
                ::selection 用于文档中被用户高亮的部分(鼠标圈选部分)
                ::first-letter 选中某元素中(块元素)第一行的第一个字母
                ::first-line 选中某元素中(块元素)第一行的全部文字
层叠性和选择器权重计算
	层叠性 : 多个选择器可以同时作用同一个标签,效果叠加
	选择器权重 : !important > id > class > 标签

文本与字体属性

color属性 设置文本内容的前景色
	表示方法:英语单词/十六进制/rgb()/rgba()
	ps:rgba从ie9开始兼容

font-size属性 设置文本内容的字体大小 单位通常为px 像素

font-weight属性 设置文本内容字体的粗细程度
	normal 正常粗细 等价于400/bold 加粗 等价于700/lighter 更细 大多数中文字体不支持/bolder 更粗 大多数中文此题不支持
	
font-style属性 设置文本内容字体风格
	normal 取消倾斜 比如将i标签,em标签包裹的字体设置为不倾斜/italic 倾斜/oblique 用常规字体模拟倾斜
	
text-decoration属性 设置文本的修饰线外观
	none 没有修饰线/underline 下划线/line-through 删除线
	
font-family 字体家族 用于设置字体格式 如 楷体等等

font属性 font-style,font-weight,font-size,line-height,font-family 属性的合写
	font : italic bold 20px/1.5 Arial,'微软雅黑'  倾斜 加粗 字号/行高 字体,备用字体

扩展:
	字体文件,需要同时有 eot/woff2/woff/ttf/svg五种文件
	@font-face 拥有字体文件以后,定义字体
	阿里巴巴普惠体 定义好的@font-face 注意:阿里巴巴普惠体示例中的文字就是改字体的所有文字

段落和行相关属性

text-indent属性 用于定义首行文本内容之前的缩进量
举例:text-indent : 2em 首行缩进两个字符

line-height属性 行高
举例:line-height : 30px/2/200% 30px的行高/字号的2倍/两倍

设置单行文本垂直居中: 行高 = 盒子高度
设置文本水平居中: text-align:center

继承性:设置祖先相关的属性,后代所有标签中生效
具有继承性的属性:
color
font-
list-
text-
line-

注意:继承的情况下,选择器权重计算失效,遵循就近原则

盒模型

所有HTML标签都可以看成矩形盒子,由width/height/padding/border构成,称为 盒模型

width/height 为 内容的宽度/高度 padding 为内容与边框的距离 border 为边框
盒子总宽度 = width + 左右padding + 左右border
高度同理

padding 属性 内边距 四个方向
padding-top 上
padding-right 右
padding-bottom 下
padding-left 左
合写 padding : 10px 20px 30px 40px 上右下左
padding : 10px 20px 30px 上 左右 下
padding : 10px 20px 上下 左右

margin 属性 外边距 与padding类似
竖直方向的margin由塌陷现象,小的margin会塌陷,从而margin不叠加,只以大值为准
有默认margin的元素 body/ul/p…

盒子的水平居中 通过设置margin -> margin : 0 auto 可以实现

box-sizing 属性
添加 box-sizing:border-box后,盒子的width和height就会变成盒子实际宽高,padding/border内缩,不再外扩

display 属性
block 转为块元素
inline 转为行内元素
inline-block 转为行内块元素
none 将元素隐藏,彻底放弃位置 // visibility : hidden 也可以隐藏元素,但是仍旧持有元素位置

行内元素 可以并排显示,不能设置宽高,width自动收缩
块元素 不能并排显示,可以设置宽高,不设置width自动撑满
行内块元素 既能够设置宽高,同时也能并排显示
``

原文链接:https://blog.csdn.net/qq_53300975/article/details/125836463

栏目分类
最近更新