如何学习
Cascading Style Sheet 层叠级联样式表
CSS:表现(美化网页)
字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动
CSS1.0
CSS2.0 DIV(块)+ CSS,HTML与CSS结构分离的思想,网页变得简单,SEO
CSS2.1 浮动,定位
CSS3.0 圆角,阴影,动画… 浏览器兼容性
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<link rel="stylesheet" href="css/style.css">
head>
<body>
<h1>我是标题h1>
body>
html>
CSS的优势:
1:内容和表现分离
2:网页结构表现统一,可以实现复用
3:样式十分的丰富
4:建议使用独立于html的css文件
5:利用SEO,容易被搜索引擎收录!
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<style>
h1{
color: chocolate;
}
style>
<link rel="stylesheet" href="css/style.css">
head>
<body>
<h1 style="color: red">我是标题h1>
body>
html>
拓展:外部样式的两种写法
链接式:
html
<h1 style="color: red">我是标题h1>
导入式:
@import是CSS2.1特有的
<style>
@import url("css/style.css");
style>
作用:选择页面上的某一个或者某一类元素
1、标签选择器:选择一类标签 标签{}
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<style>
/*标签选择器:会选择到页面上所有的这个标签的元素*/
h1{
color: #81eeff;
background: #ffac7c;
border-radius: 24px;
}
p{
font-size: 80px;
}
style>
head>
<body>
<h1>学Javah1>
<h1>学Javah1>
<p>看路飞p>
body>
html>
2、类选择器 class:选择所有class属性一致的标签,跨标签 .类名{}
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<style>
/*
类选择器的格式 .class的名称{}
好处,可多个标签归类,是同一个class,可以复用
*/
.style1{
color: #ffac7c;
}
.style2{
color: #81eeff;
}
style>
head>
<body>
<h1 class="style1">标题1h1>
<h1 class="style2">标题2h1>
<h1>标题3h1>
<p class="style1">标题4p>
body>
html>
3、ID选择器:全局唯一 #id名{}
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<style>
/*
id选择器:id必须保证全局唯一
#id名称{}
优先级:不遵循就近原则,固定的
id选择器 > class选择器 > 标签选择权
*/
.style1{
color: red;
}
#lufei{
color: yellow;
}
h1{
color: blue;
}
style>
head>
<body>
<h1 class="style1" id="lufei">标题1h1>
<h1 class="style1">标题2h1>
<h1>标题3h1>
body>
html>
1、后代选择器:在某个元素的后面 祖爷爷,爷爷,爸爸,你
后代选择器
body p{
background:red;
}
2、子选择器:一代 儿子
子选择器
body > p{
background:yellow;
}
3、相邻兄弟选择器:同辈
相邻兄弟选择器:只有一个,相邻(向下) .active + p { background:blue; }
4、通用选择器
.active ~ p{ background:red; }
伪类:条
DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Titletitle> <style> /*ul的第一个子元素*/ ul li:first-child{ background: #02ff00; } /*ul的最后一个子元素*/ ul li:last-child{ background: #023154; } /*选择p1:定位到父元素,选择当前的第一个元素 选择当前p元素的父级元素,选中父级元素的第一个子元素,并且是当前元素才生效 */ p:nth-child(1){ background:#2700ff; } /*选中父元素,下的p元素的第二个,类型*/ p:nth-of-type(1){ background:red; } /*伪类:鼠标移动到元素会显示效果*/ a:hover{ background: yellow; } style>head><body><a href="index.html">1234564a><h1>h1h1><p>p1p><p>p2p><p>p3p><ul> <li>li1li> <li>li2li> <li>li3li>ul>body>html>
id+class结合~
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<style>
.demo a{
float: left;/*向左浮动*/
display: block;/*显示为块级元素*/
height: 50px;
width: 50px;
border-radius: 10px;
background: #2700ff;
text-align:center;/*文本居中对齐*/
color: gainsboro;
text-decoration: none;/*取消A标签下划线*/
margin-right: 5px;/*外边距靠右5px*/
front:bold 20px/50px Arial;/*加粗 字体大小 字体宽高*/
}
/*属性名 属性名 = 属性值(可以正则表达式)
= 绝对等于
+= 包含这个元素
^= 以这个开头
$= 以这个结尾
*/
/*A标签存在id元素的*/
a[id]{
background: yellow;
}
/*id为first的*/
a[id = first]{
background: yellow;
}
/*class中有links的元素*/
a[class *= links]{
background: blue;
}
/*选中href中以http开头的元素*/
a[href^=http]{
background: #81eeff;
}
style>
head>
<body>
<p class="demo">
<a href="http://www.baidu.com" class="links item first" id="first">1a>
<a href="http://blog.kuangstudy.com" class="links item active" target="_blank" title="test">2a>
<a href="images/123.html" class="links item">3a>
<a href="images/123.png" class="links item">4a>
<a href="images/123.jpg" class="links item">5a>
<a href="abc" class="links item">6a>
<a href="/a.pdf" class="links item">7a>
<a href="/abc.pdf" class="links item">8a>
<a href="abc.doc" class="links item">9a>
<a href="abcd.doc" class="links item last">10a>
p>
body>
html>
1、有效的传递页面信息
2、美化网页,页面漂亮,才能吸引用户
3、凸显页面的主题
4、提高用户的体验
span标签:重点要突出的字,使用span套起来
DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Titletitle> <style> #title{ font-size: 50px; } style>head><body>欢迎学习<span id="title">Javaspan>body>html>
DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Titletitle> <style> body{ font-family: "Agency FB",楷体; color: #a13546; } h1{ font-size:50px; } .p1{ font-weight:bolder; } style>head><body><h1>故事介绍h1><p class="p1">海贼王一般指航海王。 《航海王》是日本漫画家尾田荣一郎作画的少年漫画作品p><p>TalkOP海道-海贼王论坛-海贼王中文网-航海王论坛-中国最大的海贼王论坛致力于为广大One Piece海贼王(航海王)爱好者提供一个最有爱的交流平台。p><p>how do i say i love you? how do i tell you i care? how do i tell you i've missed you, and let you know i'm here?p>body>html>
1、颜色 color rgb rgba
2、文本对齐的方式 text-align = center
3、首行缩进 text-indent:2em
4、行高 line-height
5、装饰 text-decoration
6、文本图片水平对齐:vertical-align:middle
DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Titletitle> <style> h1{ color: rgba(0,255,255,0.2); } .p1{ text-indent: 2em; } .p3{ background: blue; height: 300px; line-height: 200px;/*一行的行高200px*/ } /*下划线*/ .l1{ text-decoration: underline; } /*中划线*/ .l2{ text-decoration: line-through; } /*上划线*/ .l3{ text-decoration: overline; } style>head><body><p class="l1">1234564p><p class="l2">1234564p><p class="l3">1234564p><h1>故事介绍h1><p class="p1">海贼王一般指航海王。 《航海王》是日本漫画家尾田荣一郎作画的少年漫画作品p><p>TalkOP海道-海贼王论坛-海贼王中文网-航海王论坛-中国最大的海贼王论坛致力于为广大One Piece海贼王(航海王)爱好者提供一个最有爱的交流平台。p><p class="p3">how do i say i love you? how do i tell you i care? how do i tell you i've missed you, and let you know i'm here?p>body>html>
DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Titletitle> <style> image,span{ vertical-align: middle; } style>head><body><p> <img src="images/1.jpg" alt="" width="50px" height="50px"> <span>13487sadhui9878span>p>body>html>
/*text-shadow:阴影颜色,水平偏移,垂直偏移,阴影半径*/ #price{ text-shadow: #81eeff 5px 5px 2px; }
正常情况下就用:a,a.hover
/*默认的颜色*/ a{ text-decoration: none; color: black; } /*鼠标悬浮的状态*/ a:hover{ font-size: 20px; color: #02ff00; } /*鼠标按住未释放的状态*/ a:active{ color: yellow; }
#nav{
background: #fff198;
width: 400px;
}
.title{
background: red;
}
/*
list-style:
none:去掉原点
circle:空心圆
decimal:数字
square:正方形
*/
ul li{
height: 30px;
list-style: none;
text-indent: 1em;/*首行缩进*/
}
a{
font-size: 14px;
text-decoration: none;
color: black;
}
a:hover{
color: orange;
text-decoration: underline;
}
背景颜色
背景图片
#nav{
background: #fff198;
width: 400px;
}
.title{
background: red;
/*背景导入一个方向键图片指定位置
颜色,图片,图片位置,平铺方式
*/
background:red url("../images/d.gif") 270px 10px no-repeat;
}
/*
list-style:
none:去掉原点
circle:空心圆
decimal:数字
square:正方形
*/
ul li{
height: 30px;
list-style: none;
text-indent: 1em;/*首行缩进*/
/*背景图片定位平铺的第二种写法,三行*/
background-image: url("../images/d.gif");
background-repeat: no-repeat;
background-position: 200px 2px;
}
a{
font-size: 14px;
text-decoration: none;
color: black;
}
a:hover{
color: orange;
text-decoration: underline;
}
background-color : #FFFFFFbackground-image:linear-gradient(115deg,#FFFFFF 0%,#6284FF 50%,#FF0000 100%)
margin:外边距
padding:内边距
border:边框
1:边框的粗细
2:边框的样式
3:边框的颜色
Title 会员登录
盒子的计算方式:你这个元素到底多大?
margin+border+padding+内容大小
给了一个50*50px的大小,是需要上面这四个全部加起来全部一起,而不是一个内容的大小
Title "app"> 会员登录
边框圆角
Title
圆形
Title
"div2">
Title
"images/1.jpg" alt="">
行内元素可以被包含在块级元素中,反之,则不可以
块级元素:独占一行
h1~h6 p div 列表...
行内元素:不独占一行
span a img strong...
Title
div块
span行
1、这个也是一种实现行内元素排列的方式,但是我们很多情况都是用float
1、左右浮动 float
Title
div块
div2块
span行
clear
clear:right; 右侧不允许有浮动元素
clear:left; 左侧不允许有浮动元素
clear:both; 两侧不允许有浮动元素
clear:none;
解决方案:
1、增加父级元素的高度~
#father{
border:1px #000 solid;
height:800px;
}
2、增加一个空的div标签,清除浮动
.clear{
clear:both;
margin:0;
padding:0;
}
3、overflow
3.1:超出部分隐藏,一般情况下,在页面中,一般溢出后会显示省略号,比如,当一行文本超出固定宽度就隐藏超出的内容显示省略号。
3.2:清除浮动,一般而言,父级元素不设置高度时,高度由随内容增加自适应高度。当父级元素内部的子元素全部都设置浮动float之后,子元素会脱离标准流,不占位,父级元素检测不到子元素的高度,父级元素高度为0。
3.3:解决外边距塌陷:父级元素内部有子元素,如果给子元素添加margin-top样式,那么父级元素也会跟着下来,造成外边距塌陷。
在父级元素中增加一个 overflow:hidden;
4、父级添加一个伪类:after
#father:after{
cotent:'';
display:block;
clear:both;
}
小结:
1.浮动元素后面增加空div
简单,代码中尽量避免空div
2:设置父元素的高度
简单,元素假设有了固定的高度,就会被限制
3:overflow
简单,下拉的一些场景避免使用
4:父类添加一个伪类:after(推荐)
写法稍微复杂一点,但没有副作用,推荐使用!
display
方向不可以控制
float
浮动起来的话会脱离标准文档流,所以要解决父级边框塌陷的问题
Title
"father">
"first">第一个盒子
"second">第二个盒子
"third">第三个盒子
相对定位:position:relative
相对于原来的位置,进行指定的偏移,相对定位的话,它仍然在标准文档流中,原来的位置会被保留
position: relative;/*相对定位 上下左右*/
top:-20px;
left: 20px;
定位:基于xxx定位,上下左右~
1、没有父级元素定位的前提下,相对于浏览器定位
2、假设父级元素存在定位,为我们通常会相对于父级元素进行偏移
3、在父级元素范围内移动
相对于父级或浏览器的位置,进行指定的偏移,绝对定位的话,它不在标准文档流中,原来的位置不会被保留
Title
"father">
"first">第一个盒子
"second">第二个盒子
"third">第三个盒子
Title
div1
div2
图层~(优先级显示)
z-index:默认是0,最高无限~
"en">
"UTF-8">
Title
"stylesheet" href="css/style.css">
"content">
- "images/1.jpg" alt="">
- "tipText">我是路飞海贼王
- "tipBg">
- 作者:尾田
- 作品:海贼王
opacity:0.5;/背景透明度/
body{
padding: 0;
margin: 0;
}
img{
width: 200px;
height: 200px;
}
#content{
/*当元素内的内容溢出的时候使它隐藏溢出的部分,即超出部分隐藏。*/
overflow: hidden;
margin: 0;
padding: 0;
height: 250px;
width: 250px;
border: 1px solid red;
}
#content ul{
position: relative;
}
.tipText,.tipBg{
position: absolute;
height: 25px;
width: 125px;
top: 175px;
}
.tipText{
color: white;
z-index: 999;/*图层优先级显示属性*/
}
.tipBg{
background: #000;
/*opacity: 0.5;*/
/*filter:alpha(opacity=50);版本兼容问题*/
}
ul,li{
list-style: none;
padding: 0;
margin: 0;
}