前端开发之css
一,css语法及类型:
1. CSS是什么
层叠样式表 --> 给HTML添加样式的
2. CSS的语法
选择器 {
属性1:值1;
属性2:值2;
}
3. CSS引入方式
1. 直接写在HTMl标签里面 -->嵌入式
2. 写在style标签里面的 -->行入式
3. 写在单独的css文件中 -->导入式
4. CSS选择器
1. 基本选择器
1. ID选择器 --> #d1 {}
2. 类选择器 --> .c1 {}
3. 标签选择器 --> a {}
4. 通用选择器 --> * {}
2. 层级选择器
后代选择器 --> div .c1 {}
儿子选择器 --> div>.c1 {}
毗邻选择器 --> div+.c1 {} 同一级 紧挨着我的那个标签
弟弟选择器 --> div~.c1 {} 同一级后面所有的
3. 属性选择器
有某个属性值的 --> div["title"]
属性等于某个值的 --> input["type"="button"]
4. 交集、并集选择器
交集:p.c1
并集:p,.c1
5. 伪类选择器
a:hover {
}
input:focus {
}
6. 伪元素选择器
p:before {}
p:after {}
p:first-child
p:last-child
5. CSS选择器的优先级
1. CSS选择器相同时: 距离标签越近,权重越高!
2. CSS选择器不同时:
内联 > ID选择器 > 类选择器 > 元素选择器 > 继承的样式
3. !important 火烧眉毛才用!
6. 三大特性
1. 继承
2. 层叠
3. 优先级
二,css的元素属性:
1,定义宽高:
width属性可以为元素设置宽度。
height属性可以为元素设置高度。
块级标签:div p h1-h6 ul>li hr table>tr
行内标签:span a input img....
块级标签才能设置宽度,内联标签的宽度由内容来决定。
2,文字定义:
字体:可以在body标签里定义字体格式,系统会依次按照你定义的顺序定义字体格式
body { font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif }
字体大小:
p { font-size: 14px; }
字体粗细:font-weight用来设置字体的字重(粗细)。
值 描述 normal 默认值,标准粗细 bold 粗体 bolder 更粗 lighter 更细 100~900 设置具体粗细,400等同于normal,而700等同于bold inherit 继承父元素字体的粗细值
字体颜色:
颜色属性被用来设置文字的颜色。
颜色是通过CSS最经常的指定:
- 十六进制值 - 如: #FF0000
- 一个RGB值 - 如: RGB(255,0,0)
- 颜色的名称 - 如: red
还有rgba(255,0,0,0.3),第四个值为alpha, 指定了色彩的透明度/不透明度,它的范围为0.0到1.0之间。
文字对齐:text-align 属性规定元素中的文本的水平对齐方式
值 描述
left 左边对齐 默认值
right 右对齐
center 居中对齐
justify 两端对齐
文字装饰:text-decoration 属性用来给文字添加特殊效果
值 描述 none 默认。定义标准的文本。 underline 定义文本下的一条线。 overline 定义文本上的一条线。 line-through 定义穿过文本下的一条线。 inherit 继承父元素的text-decoration属性的值。
常用的为去掉a标签默认的自划线: a { text-decoration: none; }
首行缩进:
p { text-indent: 32px; }
背景属性:
/*背景颜色*/ background-color: red; /*背景图片*/ background-image: url('1.jpg'); /* 背景重复 repeat(默认):背景图片平铺排满整个网页 repeat-x:背景图片只在水平方向上平铺 repeat-y:背景图片只在垂直方向上平铺 no-repeat:背景图片不平铺 */ background-repeat: no-repeat; /*背景位置*/ background-position: right top; /*background-position: 200px 200px;*/
鼠标滚动背景不动例子:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>滚动背景图示例</title> <style> * { margin: 0; } .box { width: 100%; height: 500px; background: url("https://www.luffycity.com/static/img/width-bank.1c9d1b0.png") no-repeat center center; background-attachment: fixed; } .d1 { height: 500px; background-color: tomato; } .d2 { height: 500px; background-color: steelblue; } .d3 { height: 500px; background-color: mediumorchid; } </style> </head> <body> <div class="d1"></div> <div class="box"></div> <div class="d2"></div> <div class="d3"></div> </body> </html>
边框属性:
- border-width 边框宽度
- border-style 边框格式
- border-color 边框颜色
值 描述
none 无边框。
dotted 点状虚线边框。
dashed 矩形虚线边框。
solid 实线边框。
圆角边框:border-radius
用这个属性能实现圆角边框的效果。
将border-radius设置为长或高的一半即可得到一个圆形。
display属性:
用于控制HTML元素的显示效果
值 意义 display:"none" HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。 display:"block" 默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。 display:"inline" 按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。 display:"inline-block" 使元素同时具有行内元素和块级元素的特点
display:"none"与visibility:hidden的区别:
visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。
css盒子模型:
- margin: 用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。
- padding: 用于控制内容与边框之间的距离;
- Border(边框): 围绕在内边距和内容外的边框。
- Content(内容): 盒子的内容,显示文本和图像。
外边距:
.margin-test { margin-top:5px; margin-right:10px; margin-bottom:15px; margin-left:20px; }
顺序是:上右下左
居中是:
.mycenter {
margin: 0 auto;
}
内填充:
.padding-test { padding-top: 5px; padding-right: 10px; padding-bottom: 15px; padding-left: 20px; }
顺序是:上右下左
- 提供一个,用于四边;
- 提供两个,第一个用于上-下,第二个用于左-右;
- 如果提供三个,第一个用于上,第二个用于左-右,第三个用于下;
- 提供四个参数值,将按上-右-下-左的顺序作用于四边;
想让标签撑起来(内容和边框之间的距离变大)设置padding
想让两个标签之间的距离变大,设置margin
注意:当两个标签之间的外边距有重叠的话,会按照最大的外边距来显示。
float:浮动
在 CSS 中,任何元素都可以浮动。
浮动元素会生成一个块级框,而不论它本身是何种元素。
关于浮动的两个特点:
- 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
- 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
left:向左浮动
right:向右浮动
none:默认值,不浮动
clear属性规定元素的哪一侧不允许其他浮动元素。
值 描述
left 在左侧不允许浮动元素。
right 在右侧不允许浮动元素。
both 在左右两侧均不允许浮动元素。
none 默认值。允许浮动元素出现在两侧。
inherit 规定应该从父元素继承 clear 属性的值。
clear只会对自身起作用,不会影响其他元素。
父标签塌陷问题:设置清除浮动工具样式类
.clearfix:after { content: ""; display: block; clear: both; }
overflow:溢出属性
值 描述
visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。
- overflow(水平和垂直均设置)
- overflow-x(设置水平方向)
- overflow-y(设置垂直方向)
制作圆形图像:
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>圆形的头像示例</title> <style> * { margin: 0; padding: 0; background-color: #eeeeee; } .header-img { width: 150px; height: 150px; border: 3px solid white; border-radius: 100%; overflow: hidden; } .header-img>img { max-width: 100%; } </style> </head> <body> <div class="header-img"> <img src="https://q1mi.github.io/Blog/asset/img/head_img.jpg" alt=""> </div> </body> </html>
定位:postion
static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的的。
1,相对定位:相对自己本来应该在的位置
postion: relative;
left: 100px
2,绝对定位:相对于已经定位过的父标签
postion: absolute;
left: 200px
3,固定定位:相对于浏览器窗口
postion: fixed;
right: 50px
bottom: 50px
z-index:设置层叠数
#i2 { z-index: 999; }
设置对象的层叠顺序,数值大的会覆盖在数值小的标签之上。z-index 仅能在定位元素上奏效。
opacity:定义透明效果
用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。