文章目录
一、背景图像应用
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="nav">
<h2 class="title">全部商品分类</h2>
<ul>
<li>
<a href="#">图书</a>
<a href="#">音像</a>
<a href="#">数字商品</a>
</li>
<li>
<a href="#">家用电器</a>
<a href="#">手机</a>
<a href="#">数码</a>
</li>
<li>
<a href="#">电脑</a>
<a href="#">办公</a>
</li>
<li>
<a href="#">家居</a>
<a href="#">家装</a>
<a href="#">厨具</a>
</li>
<li>
<a href="#">服饰鞋帽</a>
<a href="#">个性化妆</a>
</li>
<li>
<a href="#">礼品箱包</a>
<a href="#">钟表</a>
<a href="#">珠宝</a>
</li>
<li>
<a href="#">食品饮料</a>
<a href="#">保健食品</a>
</li>
<li>
<a href="#">彩票</a>
<a href="#">旅行</a>
<a href="#">充值</a>
<a href="#">票务</a>
</li>
</ul>
</div>
</body>
</html>
css:
#nav{
height: 300px;
width: 300px;
background: cornflowerblue;
}
.title{
font-size: 18px;
font-weight: bold;
text-indent: 1em;
line-height: 30px;
background: aqua url("../static/image/1.jpg") 250px no-repeat;
}
/*background的图像放置:(分开写))
background-image:图像
background-repeat:no-repeat只放置一个
background-position位置坐标*/
ul li{
height: 30px;
list-style: none;
background-image: url("../static/image/1.jpg");
background-repeat: no-repeat;
background-position: 240px;
}
a{
text-decoration: none;
font-size: 15px;
color: black;
}
a:hover{
color: orange;
text-decoration: underline;
}
效果:
二、渐变
渐变需要的颜色挑选可以参考
Grabient网站
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字体</title>
<style>
/*径向渐变,圆形渐变*/
body {
background-image: linear-gradient(62deg, #8EC5FC 0%, #fcc3cd 100%);
}
</style>
</head>
<body>
小熊是我的
</body>
</html>
效果:
再展示:
三、盒子模型及边框使用
1.盒子示意图:
margin:外边距
border:边框
padding:内边距
2.边框border
边框的粗细
边框的样式
边框的颜色
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*body总有默认的外边距margin:8px*/
body{
margin: 0;
}
/*border粗细,样式(实线/虚线),颜色*/
#box{
width: 300px;
border: 1px solid red;
}
form{
background: darkorange;
}
/*border的样式可以有:dash,dot-dash,dot-dot-dash,dotted等*/
form div:nth-of-type(1) input{
border: 2px dashed deeppink;
border-bottom-color: cadetblue;
border-bottom-style: dot-dash;
border-bottom-width: 10px;
}
h2{
margin: 2px;
padding: 5px;
font-size: 20px;
line-height: 30px;
background-color: cadetblue;
}
</style>
</head>
<body>
<div id="box">
<h2>登录</h2>
<form action="#">
<div>
<span>用户名:</span>
<input type="text">
</div>
<div>
<span>密码:</span>
<input type="text">
</div>
<div>
<span>提交</span>
</div>
</form>
</div>
</body>
</html>
效果:
四、内外边距及div居中
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*外边距的妙用:居中元素
全部都为0
margin:0;
上下 左右
margin:0 auto;(auto为自动对齐)
顺时针:上右下左
margin:0 0 0 0;
*/
body{
width: 300px;
margin: 0 auto;
}
/*文本居中
text-align*/
h2{
margin: 2px;
padding: 5px;
font-size: 20px;
line-height: 30px;
background-color: cadetblue;
text-align: center;
}
</style>
</head>
<body>
<div id="box">
<h2>登录</h2>
<form action="#">
<div>
<span>用户名:</span>
<input type="text">
</div>
<div>
<span>密码:</span>
<input type="text">
</div>
<div>
<span>提交</span>
</div>
</form>
</div>
</body>
</html>
效果:
五、圆角边框及阴影
5.1圆角边框画图:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*
border-radius:
左上 右上 右下 左下,顺时针方向
如何画圆圈?
圆角=半径+边框
*/
.yan{
width: 100px;
height: 100px;
border: 10px solid deeppink;
border-radius: 100px;
}
/*如何画横着的半圆?*/
.hao{
width: 100px;
height: 50px;
border: 10px dashed deepskyblue;
border-radius: 60px 60px 0px 0px;
margin: 0 auto;
}
/*如何画竖着的半圆
1/4圆:60px 0 0 0*/
.xiang{
width: 50px;
height: 100px;
border: 10px dotted red;
border-radius: 60px 0px 0px 60px;
text-align: right;
}
/*旋转30度的半圆*/
.zhang{
position: absolute;
width: 200px;
height: 200px;
clip: rect(0px,100px,200px,0px); /*这个clip属性用来绘制半圆,在clip的rect范围内的内容显示出来,使用clip属性,元素必须是absolute的 */
border-radius: 100px;
background-color: palegreen;
transform: rotate(30deg);
}
</style>
</head>
<body>
<div class="yan"></div>
<div class="hao"></div>
<div class="xiang"></div>
<div class="zhang"></div>
</body>
</html>
效果:
怎么画一个30度角的圆形呢。。。。?
5.2阴影box-shadow
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*box-shadow:横着移动,竖着移动,模糊半径,颜色*/
div{
width: 168px;
height: 168px;
border: 1px solid deepskyblue;
border-radius: 85px;
box-shadow: 10px 10px 3px red;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
效果:
5.3居中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*想要居中,使用margin: 0 auto的前提是:
块元素,块元素要有具体的宽度
居中的3种方法:*/
/*1.先设置块的宽度,在margin*/
#zhang{
width: 168px;
height: 168px;
border: 1px solid deepskyblue;
border-radius: 85px;
box-shadow: 10px 10px 3px red;
margin: 0 auto;
}
/*2.在块设置style的宽度,在该宽度下范围居中块内所有元素,用text-align,见body内代码*/
/*3.由于img不是块元素,想要margin居中,要设置其为块元素,设置宽度,高度会压缩或扩大图片的像素*/
.yanya{
margin:0 auto;
border: palegreen;
width: 427px;
height: 240px;
display: block;
}
</style>
</head>
<body>
<div id="zhang"></div>
<div id="yan" style="width: 816px;height: 500px;text-align: center">
yan hao xiang
<div>
<img src="../static/image/1.jpg" alt="">
</div>
</div>
<img class="yanya" src="../static/image/4----1zhu.jpg" alt="">
</body>
</html>
效果:
六、display和float
标准文档流:正常布局,不会飘出来
在以前浮动多来控制图片,实现文字环绕图片的效果(字围效果);现在主要利用浮动的特性(脱离标准文档流)来实现页面的布局
6.1display
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*div默认为块元素
block:块元素
inline:行内元素
inline-block:是块元素,但可以内联,在一行
none:消失*/
div{
width: 100px;
height: 100px;
border: 1px solid red;
display: inline-block;
}
span{
border: 3px solid palegreen;
}
</style>
</head>
<body>
<div>123</div>
<span>345</span>
</body>
</html>
效果:
6.2float
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.yue{
border: 2px dotted palevioletred;
}
.yan{
width: 100px;
height: 100px;
border: 1px solid red;
display: inline-block;
float: bottom;
}
.hao{
border: 3px solid palegreen;
display: inline-block;
float: left;
}
.xiang{
float: right;
display: inline-block;
}
.zhang{
float: left;
display: inline-block;
}
</style>
</head>
<body>
<div class="yue">
<div class="yan">
<img src="../static/image/1-1.jpg" alt="">
</div>
<div class="hao">
<img src="../static/image/1.jpg" alt="">
</div>
<div class="xiang">
<img src="../static/image/4----1zhu.jpg" alt="">
</div>
<div class="zhang">
<img src="../static/image/1111.jpg" alt="">
</div>
</div>
</body>
</html>
效果:
移动窗口,布局会发生变化:
6.3display和float的区别
display:方向不可控制
float:浮动起来的话会脱离标准文档流,所以要解决父级边框塌陷问题
七、overflow及父级边框塌陷问题
父级边框里的图片(内容)全部浮动起来,父级边框会消失
如何解决?
1.首先解决如何让它不浮动:clear:
2.让标准文档流在父级边框里面
答:
①增加父级元素的高度
②增加一个空的div标签,清除浮动
③overflow:在父级元素增加overflow:hidden,超出规定框的内容会被修剪,但是其他地方是可以见的
④(最优)父类添加一个伪类:after
#father:after{
content:'';
display:block;
clear:both;
}
总结:
第一种:一般浮动元素增加空div:简单,但代码应尽量避免空div
第二种:元素有了固定height会限制
第三种:简单,但一些不能切除的不能用,下拉一些场景避免使用
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.yue{
border: 2px dotted palevioletred;
}
/*clear:both;两侧不允许有浮动元素,有的话会自动往下排
clear:right;右侧不允许有浮动元素
clear:left;左侧不允许有浮动元素
clear:none;可以浮动元素
*/
.yan{
border: 3px solid red;
display: inline-block;
float: left;
clear: both;
}
.hao{
border: 3px solid palegreen;
display: inline-block;
float: left;
clear: both;
}
.clear{
clear: both;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div class="yue">
<div class="yan">
<img src="../static/image/1-1.jpg" alt="">
</div>
<div class="hao">
<img src="../static/image/1.jpg" alt="">
</div>
<div class="clear"></div>
</div>
</body>
</html>
效果:
八、定位
8.1相对定位,绝对定位,固定定位
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.yue {
border: 2px dotted palevioletred;
height: 1000px;
}
/*position:relative相对定位
relative:相对于原来位置移动,元素设置此属性之后仍然处在文档流中,不影响其他元素的布局,原来的位置会被保留---菜鸟教程
top:
bottom:
left:
right:
*/
.yan{
border: 3px solid red;
background: peachpuff;
position: relative;
top:-10px;
}
/*position:fixed固定定位
*/
.xiaoyan{
height: 100px;
width: 100px;
background: palevioletred;
position: fixed;
bottom: 0;
right: 0;
}
/*position:absolute绝对定位
基于xxx定位,上下左右
1.没有父级元素定位的前提下,相对于浏览器定位
2.假设父级元素存在定位,我们通常会相对父级元素进行偏移
3.在父级元素范围内移动:
相对于父级或浏览器的位置,进行指定的偏移,绝对定位的话,它不在标准文档流中,原来的位置不会被保留
*/
.hao{
border: 3px solid palegreen;
background: deepskyblue;
position: absolute;
bottom: 0;
right: 0;
}
</style>
</head>
<body>
<div class="yue">
<div class="yan">块1</div>
<div class="xiaoyan">63yyds</div>
<div class="hao">块2</div>
</div>
</body>
</html>
效果:
滑动页面后:
8.2 z-index(设置层级)
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../css/yan1.css">
</head>
<body>
<div id="conent">
<ul>
<li><img src="../static/image/1-1.jpg" alt=""></li>
<li class="tipText">严浩翔</li>
<li class="tipbg"></li>
<li>time:2004-08-16</li>
<li>地点:chongqing</li>
</ul>
</div>
</body>
</html>
css:
#conent{
width: 399px;
padding: 0;
margin: 0;
overflow: hidden;
font-size: 12px;
line-height: 25px;
border: 1px #000 solid;
}
ul,li{
padding: 0px;
margin: 0px;
list-style: none;
font-size: 16px;
}
/*父级元素相对定位*/
#conent ul{
position: relative;
text-align: center;
}
.tipText,.tipbg{
position: absolute;
width: 397px;
height: 25px;
bottom:60px;
}
/*层级
z-index:0~max
*/
.tipText{
color: red;
z-index: 0;
}
.tipbg{
background: #ffffff;
opacity:0.5;/*背景透明度*/
}
效果:
若不设置透明度为0.5,会看不见“严浩翔”这三个字,因为字的层级低于白色背景,被遮挡住了。
九、动画
实现动画:
css或js或less(扩展css),canvas。
keyframes:关键帧,一般其加前缀是浏览器兼容
了解css3动画–菜鸟教程
卡巴斯基网络实时攻击地图
js动画
总结
完结撒花~~~