CSS常见样式
这个章节主要是对CSS的统一性进行一个讲解,在CSS里面使用统一的CSS属性名去设置全部的HTML标签。现在我们就把这些常见的属性拿出来和大家一起学习
宽度高度相关
width/height
设置元素的宽度与高度,它们的宽度与高度是固定的min-width/min-height
设置元素的最小宽度/最小高度,元素的实际宽度与高度可以大于等于这个值max-width/max-height
设置元素的最大宽度/最大高度,元素的实际宽度与高度应该小于或等于这个值
max-width/max-height/min-width/min-height
这四个属性在低版本的IE6里面不能使用
颜色相关
在CSS里面,与颜色相关的有很多,目前这个环境,我们只考虑前景色(文字颜色),文字颜色我们只要使用的属性是color
属性。这个属性没有什么好讲,关键在于颜色值的类型
在CSS里面,常用的颜色值有四种类型
第一种颜色值:枚举色
color:red;
color:blue;
color:deeppink;
这一种颜色值最为直观,它可以将一些见的颜色列举出来,但它有一个缺点就是能将一些常用的颜色列举出来,并且这些颜色值都很抽象
在枚举色里面,有一个特殊的颜色,它也可以表示透明,使用transparent
来表示
color: transparent;
第二种颜色值:16进制色
16进制色是在计算机里面使用16进制的数值去表示一个颜色值,它使用#
开头,后面跟6位值,后面使用09,AF的值进行表示,如#000000
这就是一个颜色,后面的值分为三个部分。格式是#红色绿色蓝色
color:#ececec;
color:#FF0000;
color:#808080;
color:#FFFFFF; /*白色*/
color:#000000; /*黑色*/
- 前面的
FF
代表的是红色的值 - 中间的
22
代表的是绿色的值 - 后边的
00
代表的是蓝色的值
红绿蓝三种颜色可以构成世间的所有颜色,所以我们分别把这三种颜色的值从00开始,到FF结束
这种颜色值优越非常大,它可以通过具体的数值去描述一个颜色,因为数值不可能出错,所以颜色效果也不会出错,一般在开发过程当中我们通常会使用这一种颜色来进行标记
第三种颜色值:RGB三元色
这一种颜色对应也是上面的16进制色,R代表的是红色red,G代表的是绿色green,B代表的是蓝色,每个颜色的值是从0~255之间,它的格式是rgb(红色,绿色,蓝色)
color: rgb(255,0,0); /*红色*/
color: rgb(125,125,125); /*灰色*/
color: rgb(255,255,255); /*白色*/
color: rgb(0,0,0); /*黑色*/
这一种颜色多半使用在UI设计师的设计稿里
第四种颜色值:RGBA颜色
这一种与第三种颜色相似,只是对当前的颜色添加一个透明值,这个透明值是0~1之间,0代表的是全透明,1代表全不透明,它的格式是rgba(红色,绿色,蓝色,透明度)
color: rgba(255,0,0,0.9);
?注意:
rgba
的IE 9及以上才能够使用
背景
以背景相关的属性基本上都会以background
来开头,它可以设置背景颜色 ,也可以设置背景图片
-
background-color
设置元素的背景颜色 -
background-image
设置元素的背景图片,后面一个图片的url地址background-image:url(./img/item3.jpg);
-
background-repeat
设置背景的重复平铺行为当一个背景图片小于这个容器的时候,我们就会发现这个图片在这里会出现水平方向与垂直方向的重复平铺行为,要控制这种平铺行为,则要设置当前的属性,它个属性有以下几个属性值
repeat
在水平方向与垂直方向去进行重复平铺repeat-x
只设置水平方向发生重复平铺repeat-y
只设置垂直方向发生重复平铺no-repeat
水平方向与垂直方向都不发生重复平铺(禁用重复平铺行为)
其实这个属性还可以进一下拆分,它可以拆分成
background-repeat-x
与background-repeat-y
-
background-size
设置背景图片的大小,它的值根据不同的类型决定不同的效果设置1个值
background-size:150px; /* 这个时候我们只设置了一个值,这个值设置在了图片的宽度上面,高度自动的等比例缩放 */
设置2个值
background-size: 120px 150px; background-size: 100% 100%; /* 这个时候我们设置了二个值,第一个值代表背景图片的宽度,第二值代表背景图片的高度 */
设置contain属性值
background-size: contain;
盒子要完全包裹住背景图片的同时,图片要以最大姿态展示出来,这样就有可能会发生某一个方向会存在一定的空白
第一种情况 第二种情况 设置cover属性值
图片以等比例缩放,直到完全覆盖住盒子,这样图片会在某一个方向发生一个截取的行为(图片会在某一个方向显示不全)
-
background-position
设置背景图片的定位,它可以设置两个值,第一个值代表距离水平的位置,第二个值代表垂直的位置background-position: 10px 20px; /*背景图片距离左边10个像素,距离上边20个像素*/
它也可以使用枚举值,水平方向的属性的枚举值为
left/center/right
,垂直方向的枚举值为top/center/bottom
background-position: center top; background-position: left center;
-
background
属性,它是一个综合属性,可以同时设置背景颜色,背景图片,背景平铺等属性background
是一种 CSS 简写属性,用于一次性集中定义各种背景属性,包括 color, image, origin 与 size, repeat 方式等等。background: lightblue; /*设置背景颜色*/
设置背景图片
background: url(./img/1.jpg) no-repeat center center;
👉 扩展:多背景图设置
在一个盒子里面可以同时设置多个图片
background: url(./img/icon.png) no-repeat,
url(./img/wall.jpg) right top no-repeat ,
url(img/item3.jpg);
但是要注意,背景图片的加载顺序是从右向左来进行的,在上面的代码里面,第一次加载item3.jpg
图片,第二次加载wall.jpg
图片,第三次加载icon.png
图片
思考:多背景图是否可以分开来设置,不直接使用background
background-image:
url(./img/icon.png),
url(img/wall.jpg),
url(./img/item3.jpg);
background-repeat: no-repeat;
background-position:
left top,
right top,
left top;
字体与文字
在这个章节里面,所有与字体相关的则是以font
开头,所有与文字相关的基本上则以text
开头
-
font-family
设置字体的类型 ,相当于之前学习的font
标签里面face
属性font-family: "microsoft yahei",Arial, Helvetica, sans-serif;
它会按照我们的加载顺序依次的去当前电脑上面找字体,如果找到了字体就使用,如果没有找到字体,则找第二个,第三个…一直往后面找,直接找到为止
-
font-size
设置字体的大小字体的单位有很多,主要的单位则有以下几个
-
px
像素单位,网页默认的字体大小是16px -
pt
字号单位,网页默认的字号大小是12pt -
vw
响应式单位,全称叫viewport width
-
vh
响应式单位,全称叫viewport height
-
rem
响应式单位,全称叫root element
,网页当中的根元素是html
元素,所以1rem
就相当于一个html
里面的字体大小,而html
里面的默认字体大小是16px
默认情况下
1rem=16px
在以谷歌为核心的浏览器里面,最小字体只能设置为
12px
-
-
自定义字体
@font-face
/* 定义好自定义的字体 */ @font-face{ font-family: "biaogege"; src: url(./fonts/hksn.ttf); } .p1{ font-size: 36px; /* 使用刚刚定义好的字体 */ font-family: "biaogege"; }
-
font-weight
设置字体的权重值lighter
把字体设置得更细一点bold
把字体设置得粗一点bolder
把字体设置得更粗一点normal
把字体设置得正常化
除了使用上面的字四枚举值以外,还可以设置
100~900
之间的值,400
代表的是normal
,300
代表的是lighter
,700
代表的是bold
-
font-style
设置字体的样式italic
设置字体为斜体字oblique
也可以字体为斜体字
这两个属性都可以将文字表现为斜体,但是有不同的本质区别
italic
是先判断一下当前这个字体类型有没有斜体字,如果有斜字体,则使用斜体字,如果没有斜体字,转而会使用oblique
,直接将整个文字倾斜 -
text-align
设置文字的水平排列方式,它使用left/center/right
这三种方式,其中还有一个属性值justify
我们在后面讲完元素类型以后再给大家去讲 -
text-decoration
设置文字的描述信息,它是一个简写的属性text-decoration-line
underline
下划线overline
上划线line-throuth
中间线(删除线)
text-decoration-style
solide
代表实线dashed
代表虚线dotted
代表点线double
代表双线wavy
代表波浪线
text-decoration-color
text-decoration-line: underline; text-decoration-color: red; text-decoration-style: solid;
上面的属性可以简写为
text-decoration
text-decoration: underline red wavy;
上面三个属性值的位置可以发生更改
-
text-indent
文字首行缩进text-indent:2em;
-
text-transform
英文字的大小写变换uppercase
大写字母lowercase
小写字母capitalize
首字母变成大写
-
text-shadow
文字阴影这个属性它接收四个值,如下所示
text-shadow:水平偏移 垂直偏移 阴影模糊度 阴影颜色;
水平偏移与垂直偏移的时候,记住“左负右下,上负下正”这个口诀
text-shadow:5px 7px 5px red;
-
letter-spacing
设置汉字或英文字母间的间距 -
word-spacing
设置英文单词之间的间距(对中文无效) -
line-height
设置文字的行高line-height:1.7; /*原来行高的1.7倍*/ line-height:1.7em; /*当前字体大小的1.7*/ line-height:50px;
👿 小技巧:如果在一个元素里面,只有一行文字,那么行高与高度相等,则这一行文字就会上下居中
-
文字溢出处理
.div1{ width: 200px; height: 100px; border: 1px solid red; /* 第一步:文字不换行 */ white-space: nowrap; /* 第二步:给盒子添加溢出隐藏 */ overflow: hidden; /* 第三步:如果是文字溢出了,则给一个省略号 */ text-overflow: ellipsis; }
这个时候文字如果溢出了就显示一个省略号
边框
border
在CSS里在,边框只有一个属性叫border
,这个属性接收三个属性值,语法格式如下
border:边框粗细 边框类型 边框颜色;
如下
border:1px solid red;
在设置边框的时候,我们是同时在设置四个方法的边框,但是我们也可以分别去设置不同的方向的边框
border-left
左边框border-right
右边框border-top
上边框border-bottom
下边框
我们不仅可以设置四个方法还可以分别去设置它的border
的三个值
border-width
设置边框的线条粗细border-style
设置边框的类型 ,常见的类型有如下几种solid
实现dashed
虚线dotted
点线double
双线groove
凹槽线
border-color
设置边框的颜色
这三个属性可以跟上面的四个方法进行一个结合,如下所示
border-top-color: black;
border-bottom-width: 5px;
border-left-style: double;
它可以设置任意一个方向的任意一个属性
扩展:在上面的图里面,我们会看到有一个特殊的颜色值叫currentColor
,它是CSS里面的一个特殊标识量,代表当前元素的color
的颜色
.div1{
color:blue;
border:5px solid currentColor;
}
这个时候currentColor
代表的就是当前元素color
属性的颜色,在这里也就是blue
border-image
圆角边框
这个属性可以将元素的四个角设置成圆角,它可以分开设置,也可以批量设置,接收1~8个值
border-radius:20px;
这个时候四个角就会变成一个圆角,它是以半径20px在四个角上面进行圆行裁剪,这个值越大,圆角越明显,如果这个值是当前正文形的一半,则会变成一个圆形
.div1 {
width: 200px;
height: 200px;
background-color: deeppink;
border-radius: 100px;
}
border-radius
也可以分别设置不同的角,根据所赋值的个数不同,代表的意义也不相同
border-radius:10px; /*代表四个角都是10px*/
border-radius:10px 20px; /*第一个角10px,第二个角20px,第三个角没有赋值参照对角,第四个角没有赋值也参照对角*/
border-radius: 10px 20px 30px; /*第一个角10px,第二个角20px,第三个角30px,第四角没有赋值参照对角*/
border-radius: 10px 20px 30px 50px; /*四个角一边一个*/
border-radius
的赋值顺序是从左上角开始,按顺时针的顺序绕一圈,有值就赋值,没值就参照对象
同样的这四个角也可以分开来进行设置,只对某一个角进行设置
border-top-left-radius
左上角border-top-right-radius
右上角border-bottom-right-radius
右下角border-bottom-left-radius
左下角
? 注意 在这里请一定一定要注意,它的方法是与我们理解的方法有点误差的
上面我们讲过border-radius
这个属性接收1~8个值,现在我们怎么设置也只有四个值,这是为什么呢?还有四个值在哪里呢?
在真正设置圆角的时候,其实圆是有两个半径,分别是横轴半径与纵轴半径,如果这两个半径相同则是一个圆,如果这两个半径不相同,则是一个半径
border-radius:150px;
/*其实就是这下这种写法的简写*/
border-radius: 150px / 150px; /*前面的150px代表横轴半径,后面的150代表纵轴半径*/
所以根据上面的赋值规则它其实是有8个值的,如下
border-radius:左上横轴 右上横轴 右下横轴 左下横轴 / 左上纵轴 右上纵轴 右下纵轴 左下纵轴;
溢出处理
溢出原本的意思是一个小的容器里面盛放了一个比较大的东西,这个时候它就需要使用一种特殊的技术去处理它 的这种现象
处理溢出主要使用的属性就是overflow
来进行,它有以下几个常用的属性值
hidden
溢出隐藏,溢出的部分把它隐藏掉visible
溢出显示,溢出的部分正常的显示出来scroll
溢出滚动,如果溢出了,则添加一个滚动条auto
自动处理,它会根据外部元素的大小,自动处理,如果外部元素小于内部元素发生了溢出的现象,则会添加滚动条,否则则不添加
其实overflow
属性还可以分开设置不同的方向,它使用overflow-x
与overflow-y
来进行
表格样式
表格有自己的一套样式,之前在HTML的学习里面我们主要使用的是属性来设置样式,现在在CSS里面,规范Web结构代码,就不能继续使用HTML的样式属性了,转而要使用CSS属性
-
添加表格边框
.table1,.table1 tr>*{ border: 1px solid black; }
-
设置单元格之间的间距
在以前的HTML的Table标签里面,有一个属性叫
cellspacing
,它是设置单元格之间的间距的,如cellspcing="10"
,这个时候在CSS里面则要使用下面的方式来设置.table1{ border-spacing:10px; /*单元格之间间距为10px*/ }
如果想要让
border-spacing
这个属性生效,则必须设置border-collapse:separate
-
设置单元格之间间距模式
上面通过
cellspacing
确实可以设置单元格间距,在CSS里面也可以通过border-spacing
设置单元格间距,但是如果想去掉单元格间距,则在CSS里面要这么设置.table1{ border-collapse: collapse; }
-
设置单元格的内容水平排列,之前在HTML里面设置的是
align
属性,现在在CSS里面设置的是text-align
-
设置单元格的内容垂直排列,之前在HTML里面设置的是
valign
属性,现在在CSS里面设置vertical-align
。它所接收的属性值仍然是top/middle/bottom
.table1 tr { vertical-glian:top; }
列表样式
有了CSS以后,之前所学习的ul
与ol
标签就没有什么太大的区别了
-
list-style-type
设置每一项列表前面的符号,它常见的属性值如下-
none
取消前面的列表项符号 -
decimal
数字 -
decimal-leading-zero
以0开始的数字 -
disc/circle/squre
与之前的保持一致,分别是实心圆,空心圆,实心矩形 -
cjk-earthly-branch
采用古代十二个地支表示“子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥” -
cjk-heavenly-stem
采用古代十个天干表示“甲、乙、丙、丁、戊、己、庚、辛、壬、癸” -
lower-alpha
小写字母 -
upper-alpha
大写字母
-
-
list-style-position
设置样式的位置,它有两个属性值outside
,列表样式在盒子模型content内容外部inside
,列表样式在盒子模型content内容内部
-
list-style-image
使用图片去代表列表项里面的每一个符号list-style-image:url(./img/01.png);
计数器
-
counter-reset
重置一个计数器,并设置这个计数器的初始值,计数器初始值是0.f1{ /* 定义(重置)一个计数器aaa ,初始值10*/ counter-reset: aaa 10; }
-
counter-increment
设置计数器的增量,增量默读值是1.f1>p{ /*在p元素上面设置aaa计数器的增量是5*/ counter-increment:aaa 5; }
-
counter(计数器名称)
从计数器里面拿出当前的值.f1>p::before{ /*从计数器aaa里面拿出当前元素的值,然后插入到::before的位置*/ content: counter(aaa); }
上面的三个属性就是计数器的属性,它们在设置的时候分别设置在了不同的地方,但总体而言记下下面的规律则可
- 我要对哪个元素记数,就将
counter-reset
设置在这个元素的外层 - 我要对哪个元素记数,就将
counter-increment
设置在这个元素上面 - 我要对哪个元素记数,就将
counter(计数器名)
设置在这个元素的::before
或::after
上面
评论区