前端之CSS基础
前端之CSS
1、 CSS
CSS定义如何显示HTML元素。
当浏览器读到一个样式表,他就会按照这个样式表来对文档进行格式化(渲染)。
3、CSS语法
1)CSS实例
每个CSS由两部分组成: 选择器和声明。声明包括属性和属性值,每个声明用分号结束。
)CSS注释
/*注释*/
3、CSS的几种引入方式
1)行内样式
行内式是在标记的style属性中设定CSS样式。不推荐大规模使用
<p style="color:red">Hello word.</q>
2)内部样式
嵌入式试讲CSS样式集中卸载网页的<head></head>表签对的<style></style> 表钱对中。
格式:
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
p{ background-color: 2b99ff; }
</style>
</head>
3) 外部样式
外部样式就是将CSS写在一个单独的文件中,然后在页面进行引入即可。推荐使用方法。
<link href="mystyle.css" rel="stylesheet" type="text/css/">
4、CSS选择器
1)基本选择器
元素选择器
p {color: "red";}
ID选择器
#i1 { background-color: red; }
类选择器
.c1 { font-size: 14px; }
p.c1 {
color: red;
}
注意: 样式类名不要使用数字开头(有的浏览器不认)。
标签中的class 属性如果有多个,要用空格分开
通用选择器
p { color: white; }
后代选择器
li内部的a标签设置字体颜色
li a { color: green; }
儿子选择器
选择所有父级是 <div> 元素的 <p> 元素
div>p { font-family: "Arial Black", arial-black, cursive; }
毗邻选择器
选择所有紧接着<div>元素之后的<p>元素
div+p { margin: 5px; }
兄弟选择器
i1后面所有的兄弟p标签
#i1~p { border: 2px solid royalblue; }
属性选择器
用于选取带有指定属性的元素
p[title] { color: red; }
用于选取带有指定属性和值的元素
p[title="213"] { color: green; }
分组选择器
当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。
div, p { color: red; }
伪类选择器
/* 未访问的链接 */
a:link { color: #FF0000 }
/* 鼠标移动到链接上 */
a:hover { color: #FF00FF }
/* 选定的链接 */
a:active { color: #0000FF }
/* 已访问的链接 */
a:visited { color: #00FF00 }
/*input输入框获取焦点时样式*/
input:focus { outline: none; background-color: #eee; }
伪类元素选择器
first-letter
p:first-letter { font-size: 48px; color: red; }
before p:before { content:"*"; color:red; }
after p:after { content:"[?]"; color:blue; }
4 选择器的优先级
内联样式 》id选择器》类选择器》 元素选择器
还可以通过添加 !important方式来强制让样式生效,如果过多的使用!important会使样式文件混乱不易维护。
万不得已可以使用!important
5、CSS属性相关
1)宽和高
width属性可以为元素设置宽度。
height属性可以为元素高度。
块级标签才能设置宽度,内联标签的宽度由内容来决定。
2)字体属性
文字字体
font-family可以把多个字体名称称作一个“回退”系统来保存,如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使它可识别的第一个值。
简单实例:
body { font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif }
字体大小
p{font-size:设置字体的大小px;}
如果设置inherit表示继承父元素的字体大小值。
字重(粗细)
font-weight用来设置字体的字重。
值 | 描述 |
---|---|
normal | 标准粗细 |
bold | 粗体 |
bolder | 更粗 |
lighter | 更细 |
100~900 | 设置具体粗细,400等于标准粗细(normal)700相当于bolder |
inherit | 继承父元素字体的粗细值,默认值 |
文本颜色
颜色属性被用来设置文字的 颜色。
颜色是通过CSS最经常的指定:
十六进制- 如:#FF0000
一个RGB值 - 如 RGB(255,255,255)
颜色名称 - 如red
还有rgba(255,0,0.3),第四个值为alpha,指定了色彩的透明度/不透明度,他的范围为0-1.0之间。
3)文字属性
文字对齐
text-align 属性规定元素中的文本的水平对齐方式。
值 | 描述 |
---|---|
left | 左边对齐,默认值 |
right | 右对齐 |
center | 居中对齐 |
justify | 两端对齐 |
文字装饰
text-decoration 属性用来给文字添加特殊效果。
值 | 描述 |
---|---|
none | 默认。定义标准文本 |
underline | 定义文本下的一条线 |
overline | 定义文本上的一条线 |
line-through | 定义穿过文本下的一条线 |
inherit | 继承父元素的text-decoration属性元素 |
常用的为去掉啊标签默认的自划线:
a{text-decoration:none;}
首行缩进
将段落的第一行缩进32像素
p{text-indent:32px;}
去除li标签的样式
list-style:none;
文字之间的距离
将文字的间距调整为5像素
p{letter-spacing: 5px;}
4)背景属性
/*背景颜色*/
background-color: red; /*背景图片*/ background-image: url('1.jpg');
/*背景重复
repeat(默认):背景图片平铺排满整个网页
repeat-x:背景图片只在水平方向上平铺
repeat-y:背景图片只在垂直方向上平铺
no-repeat:背景图片不平铺*/
background-repeat: no-repeat;
/*背景位置*/
background-position: left top;
/*background-position: 200px 200px;*/
简写:
background:背景颜色 url('背景图片')no-repeat left top;
使用背景图片的一个常见案列就是很多网站会把很多小图标放在一张图片上,然后根据位置区去显示图片。减少频繁的图片请求。
5)边框
边框属性
border-width
border-style
border-color
#i1 { border-width: 2px; border-style: solid; border-color: red; }
简写:#li {border-width:2px solid red;}
边框样式
值 | 描述 |
---|---|
none | 无边框 |
dotted | 点状虚线边框 |
dashed | 举行虚线边框 |
solid | 实线边框 |
6)border-radius
用这个属性能实现圆角边框的效果。
将border-radius设置为长或高的一般即可得到一个圆形。
7)display属性
用于控制HTML元素的显示效果
值 | 意义 |
---|---|
display:"none" | HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用 |
display:"block" | 意义 |
display:"inline" | 按行内元素显示,此时在设置原色的width,height、margin-top、margin-bottom和float属性都不会有什么影响 |
display:"inline-block" | 使元素同时具有行内元素和块级元素的特点 |
display:"none"与visibility:hidden的区别:
visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。
8)CSS盒子模型
margin :用于控制元素与元素之间的距离;margin的最基本的作用就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。
padding: 用于控制内容与边框之间的距离
Border(边框): 围绕在内边距和内容外的边框。
Content(内容): 盒子的内容,显示文本和图像
9)margin外边距
.margin-test { margin-top:5px; margin-right:10px; margin-bottom:15px; margin-left:20px; }
简写: .margin-test{margin:5px 10px 15px 20px;}
顺序:上右下左
常见居中
.mycenter{margin:0 auto;}
10) 内部填充
.padding-test { padding-top: 5px; padding-right: 10px; padding-bottom: 15px; padding-left: 20px; }
简写:
.padding-test { padding: 5px 10px 15px 20px; }
顺序:上右下左
补充padding的常用简写方式:
提供一个,用于四边
提供两个,第一个用于上下,第二个用于左右
如果提供三个,第一个用于上,第二个用于左右,第三个用于下;
提供四个参数值:将按照上右下左的顺序作用于四边
11) flat
在CSS中,任何元素都可以浮动
浮动元素会生辰一个块级框,而不论它本身是何种元素。
关于浮动的两个特点:
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或者另一个边框为止。
由于浮动框不在稳当的普通流中,所以文档的普通流中的边框表现得就像浮动边框不存在一样。
三中取值
left:向左浮动
right: 向右浮动
none:默认值,不浮动
12)clear
clear属性规定元素的那一侧不允许其他浮动元素。
值 | 描述 |
---|---|
left | 在左侧不允许浮动元素 |
right | 在右侧不允许浮动元素 |
both | 在左右两侧均不允许浮动元素 |
none | 默认值。允许浮动元素出现在两侧 |
inherit | 规定应该从父元素继承clear属性的值 |
注意:clear属性只会对自身起作用,而不会影响其他元素。
清除浮动
清除浮动的副作用(父标签塌陷问题)
主要有三种方式:
固定高度
伪元素去除法
overflow:hidden
伪元素去除法:
.clearfix:after { content: ""; display: block; clear: both; }
13)overflow溢出属性
值 | 描述 |
---|---|
visible | 默认值,内容不会被修剪,会呈现在元素框之外 |
hidden | 内容会被修剪,并且其余内容是不可见得 |
scroll | 内容会被修剪,但是在浏览器会显示滚动条一遍查看其余的内容 |
auto | 如果内容被修剪,则浏览器会显示滚动条以便查看其余内容 |
inherit | 规定应该从父元素继承overflow属性的值 |
overflow(水平和垂直均设置)
overflow-x(设置水平方向)
overflow-y(设置垂直方向)
max-width最大宽度与min-width最小宽度案例小结 我们设置两个盒子一个“divcss5-min-width”设置对象里img图片最小宽度为200px,而实际图片只有165px,所以图片被拉伸到200px;一个“divcss5-max-width”设置对象里img图片最大宽度为200px限制,而实际对象里图片宽度是375px,这个时候我们设置了此图片最大宽度为200px,所以图片被CSS max-height缩小到200px
圆头像实例:
<!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: 50%;
overflow: hidden;
}
.header-img>img {
width: 100%;
}
</style>
</head>
<body>
<div class="header-img">
<img src="https://pic.cnblogs.com/avatar/1342004/20180304191536.png" alt="">
</div>
</body>
</html>
14) 定位(position)
static
static 默认值,无定位,不能当做绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的。
relative(相对定位)
相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。对象遵循正常文档流,但将依据top, right,bottom,left等属性在正常交流文档流中偏移位置。而其层叠通过z-index属性定义。
注意: position:relative的一个主要用法:方便绝对顶屋恩元素找到参照物。
absolute(绝对定位)
定义: 设置为绝对定位的元素框从文档流完全删除,并相对与最近的已定位祖先元素定位,如果元素没有已经定位的祖先元素,name他的位置相对与最初的包含块(body元素)。元素原先在真长文档流所占的空间会关闭,就好像该元素原来不存在一样,元素定位后生成一个块级框,而不论原来他在正常流中产生何种类型的框。
重点: 如果父级设置了position属性,例如position:relative; 那么子元素就会以父级的左上角为原点进行定位。这样就结决了自适应网站的标签偏离问题,即父级为自适应,那我子元素就设置position:absolute;父元素设置position:relative;然后Top、Right、Bottom、Left等属性尽享绝对定位,而其层叠通过z-index属性定义。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>绝对定位</title>
<style>
.c1 {
height: 100px;
width: 100px;
background-color: red;
float: left;
}
.c2 {
height: 50px;
width: 50px;
background-color: #ff6700;
float: right;
margin-right: 400px;
position: relative;
}
.c3 {
height: 200px;
width: 200px;
background-color: green;
position: absolute;
top: 50px;
}
</style>
</head>
<body>
<div class="c1"></div>
<div class="c2">
<div class="c3"></div>
</div>
</body>
</html>
fixed (固定)
fixed:对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,出现滚动条时,对象不会随着滚动。而其通过层叠z-index属性定义。
注意:一个元素若设置了position:absolute|fixed;则该元素不能设置float。因为这是两个不同的流,一个是浮动流,另一个是定位流。但是relative却可以。因为他原本所占用的空间仍然占据文档流。
在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,他都会固定在这个位置。
实例:
<!DOCTYPE html>
<html lang="en">
<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;
}
.d1 {
height: 1000px;
background-color: #eeee;
}
.scrollTop {
background-color: darkgrey;
padding: 10px;
text-align: center;
position: fixed;
right: 10px;
bottom: 20px;
}
</style>
</head>
<body>
<div class="d1">111</div>
<div class="scrollTop">返回顶部</div>
</body>
</html>
是否脱离文档流
相对定位:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.c1 {
height: 50px;
width: 100px;
background-color: dodgerblue;
}
.c2 {
height: 100px;
width: 50px;
background-color: orange;
position: relative;
left: 100px;
}
</style>
</head>
<body>
<div class="c1"></div>
<div class="c2"></div>
<div style="height: 100px;width: 200px;background-color: black"></div>
</body>
</html>
绝对定位:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.c1 {
height: 50px;
width: 100px;
background-color: red;
position: relative;
}
.c2 {
height: 50px;
width: 200px;
background-color: green;
position: absolute;
left: 50px;
}
</style>
</head>
<body>
<div class="c1">购物车
<div class="c2">空空如也~</div>
<div style="height: 50px;width: 100px;background-color: deeppink"></div>
</div>
</body>
</html>
固定位置:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div class="c1" style="height: 50px;width: 500px;background-color: black"></div>
<div class="c2" style="height: 50px;width: 100px;background-color: deeppink;position: fixed;right: 10px;bottom: 20px"></div>
<div class="c3" style="height: 10px;width: 100px;background-color: green"></div>
</body>
</html>
脱离文档流:
绝对定位
固定定位
不脱离文档流:
相对定位
15)z-index
i2{z-index:999;}
设置对象的层叠顺序。
z-index值表示谁压着谁,数值打的压盖这数值小的,
只有定位了的元素,才能有z-index,也就是说不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,name谁卸载HTML后面,谁在上面压着别人,定位了元素,用元压住没有定位的元素。
从父现象:父亲怂了,儿子在牛逼都没用。
自定义模态框:
<!DOCTYPE html>
<html lang="en">
<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>
.cover {
background-color: rgba(0,0,0,0.65);
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 998;
}
.modal {
background-color: white;
position: fixed;
width: 600px;
height: 400px;
left: 50%;
top: 50%;
margin: -200px 0 0 -300px;
z-index: 1000;
}
</style>
</head>
<body>
<div class="cover"></div>
<div class="modal"></div>
</body>
</html>
16) opacity
用来定义透明效果,取值范围0-1,0完全透明,1完全不透明
6综合示例》顶部导航菜单
示例:
<!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>li标签的float示例</title>
<style>
/*清除浏览器默认外边距和内填充*/
* {
margin: 0;
padding: 0;
}
a {
text-decoration: none; /*去除a标签默认的下划线*/
}
.nav {
background-color: black;
height: 40px;
width: 100%;
position: fixed;
top: 0;
}
ul {
list-style-type: none; /*删除列表默认的圆点样式*/
margin: 0; /*删除列表默认的外边距*/
padding: 0; /*删除列表默认的内填充*/
}
/*li元素向左浮动*/
li {
float: left;
}
li > a {
display: block; /*让链接显示为块级标签*/
padding: 0 15px; /*设置左右各15像素的填充*/
color: #b0b0b0; /*设置字体颜色*/
line-height: 40px; /*设置行高*/
}
/*鼠标移上去颜色变白*/
li > a:hover {
color: #fff;
}
/*清除浮动 解决父级塌陷问题*/
.clearfix:after {
content: "";
display: block;
clear: both;
}
</style>
</head>
<body>
<!-- 顶部导航栏 开始 -->
<div class="nav">
<ul class="clearfix">
<li><a href="">玉米商城</a></li>
<li><a href="">MIUI</a></li>
<li><a href="">ioT</a></li>
<li><a href="">云服务</a></li>
<li><a href="">水滴</a></li>
<li><a href="">金融</a></li>
<li><a href="">优品</a></li>
</ul>
</div>
<!-- 顶部导航栏 结束 -->
</body>
</html>
前端之CSS基础的更多相关文章
- WEB前端开发CSS基础样式全面总结
Web前端开发css基础样式全面总结 颜色和单位的使用 颜色 用颜色的名字表示颜色,比如:red 用16进制表示演示 比如:#FF0000 用rgb数值表示颜色,rgb(红,绿,蓝),每个值都在0-2 ...
- Web前端温故知新-CSS基础
一.CSS定义与编写CSS 1.1 CSS的定义 全名:Cascading Style Sheets -> 层叠样式表 定义:CSS成为层叠样式表,它主要用于设置HTML页面中的文本内容(字体. ...
- 前端html,css基础总结
0.1.css引入界面的方式: 内联式:通过标签的style属性,在标签上直接写样式. <div style="width:100px; height:100px; backgroun ...
- html前端之css基础
CSS 属性导航: CSS 属性组 动画 背景 边框和轮廓 框 颜色 内容页的媒体属性 尺寸 盒子模型(新) 盒子模型(旧) 字体 内容生成 网格 超链接 线框 列表 外边距 字幕 多列 内边距 页面 ...
- Web前端开发css基础样式总结
颜色和单位的使用 颜色 用颜色的名字表示颜色,比如:red 用16进制表示演示 比如:#FF0000 用rgb数值表示颜色,rgb(红,绿,蓝),每个值 ...
- 前端学习——css基础知识,选择器与html模板、值得收藏的html标签
一.css需要的html(采用html5标准) DTD,文档类型声明: <!Doctype html> 文本编码声明: <meta charset="utf-8" ...
- 好程序员web前端分享CSS基础篇
学习目标 1.CSS简介 2.CSS语法 3.样式的创建 4.两种引入外部样式表的区别 5.样式表的优先级和作用域 6.CSS选择器 7.选择器的权重 8.浮动属性的简单应用 9.HTML.CSS注释 ...
- 前端部分-CSS基础介绍
CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素.也就是定义相应的标签语言来定制显示样式达到一定的显示效果. 每个CSS样式由两个组成部分:选择器和 ...
- python之 前端HTML/CSS基础知识学习笔记
1. 文件结构: HTML文件的固定结构: <html> <head>...</head> <body>...</body> </ht ...
随机推荐
- mysql TOP语句 语法
mysql TOP语句 语法 作用:用于规定要返回的记录的数目. 语法:SELECT column_name(s) FROM table_name LIMIT number 说明:对于拥有数千条记录的 ...
- Java——常用类(StringBuffer)
[StringBuffer] <1>java.lang.StringBuffer代表可变的字符序列. <2>StringBuffer和String类似,但是StringBu ...
- Python_021(内置方法讲解二)
一.内置方法二 1.__del__方法: a:构造方法:创建一个空间, 析构方法;释放一个空间; b:触发del的情况:Python解释器的垃圾回收机制,和遇到 del 对象名 c:析构方法的思想: ...
- (转)JNI参数传递|Surface && sign签名对应
http://blog.csdn.net/stefzeus/article/details/6622011 char* Get_Surface(JNIEnv *env, jclass cls, job ...
- oracle体系结构基础
摘自:http://jianshi-dlw.iteye.com/blog/1554892 Oracle的体系结构大体上分为两部分:Instance(实例)和Database(数据库). Instanc ...
- vue+ts修改父组件属性的写法。
部分代码如下: 父组件: <coupon :modifyFlag.sync="flag" /> data() { return { fl ...
- Idea导入项目详解
1.点击Import Project选择项目所在目录 2.Import Project选项区别: 1)如果选择Create project from existing sources选项, 则你只能导 ...
- Retrofit RestAdapter 配置说明
RestAdapter.Builder builder = new RestAdapter.Builder(); builder.setEndpoint(ip地址 ...
- MongoDB学习【四】—pymongo操作mongodb数据库
一.pymongodb的安装 Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接. pip安装 pip 是一个通用的 Python 包管理工具, ...
- python-异常处理总结
一.异常处理 在程序运行的过程中,总会遇到各种各样的错误.程序一出错就停止运行了,下面的代码就不能运行了:这时候就需要捕捉异常,通过捕捉异常,再去做对应的处理. e.g: info = { " ...