项目实战之玩转div+css制作自己定义形状
项目需求
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
要求制作上图所看到的的效果,能达到灵活可配的效果。
我想初步想法是用div+css来制作。
------------------------------------------------------------------------------------------------------
模型抽象
以下的这个模型是我抽象出来的一个简单的解决方式。div能够表示一个矩形。然后再加上一个旋转90度的div就能够组起来达到我们想要的效果了。使用div就能够非常方便地对应各种事件。使站点灵活可配。
------------------------------------------------------------------------------------------------------
技术难点
1、怎样做到让div旋转?
-moz-transform: rotate(90deg);
假设设置的值为正数表示顺时针旋转,假设设置的值为负数,则表示逆时针旋转
2、怎样设置div的层次关系?
z-index
------------------------------------------------------------------------------------------------------
实践过程
HTML页:
-------------------------------------------------------------------------
<html>
<head>
<title>test</title>
<link rel="stylesheet" type="text/css" href="css/chainselect.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/text.js"></script>
</head>
<body>
<div id="rectangle1" onmousemove="MouseMove(this)">新生报到流程</div>
<div id="arrow1" onmousemove="MouseMove(this)"></div>
<div id="arrow21"></div>
<div id="rectangle2">公约页</div>
<div id="arrow22"></div>
<div id="arrow31"></div>
<div id="rectangle3">完好个人信息</div>
<div id="arrow32"></div>
<div id="arrow41"></div>
<div id="rectangle4">选择缴费方式</div>
<div id="arrow42"></div>
<div id="arrow51">sss</div>
<div id="rectangle5">新生报到流程</div>
</html>
-------------------------------------------------------------------------
CSS页
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#rectangle1 {
border:2px solid;
border-right:none;
background-color:#34B0D9;
width:169px;
height:29px;
float:left;
text-align:center;
font-size:16px;
padding-top:5px;
}
#arrow1 {
float:left;
-moz-transform: rotate(45deg);
border:2px solid;
background-color:#34B0D9;
width:25px;
height:25px;
position:relative;
top:5px;
left:-14px;
border-bottom:none;
border-left:none;
}
#arrow21{
float:left;
-moz-transform: rotate(45deg);
border:2px solid;
background-color:#FFFFFF;
height:32px;
width:32px;
position:relative;
left:-35px;
top:5px;
z-index:-1;
border:none;
}
#rectangle2 {
border:2px solid;
border-right:none;
background-color:#34B0D9;
width:169px;
height:29px;
float:left;
text-align:center;
font-size:16px;
padding-top:5px;
float:left;
position:relative;
left:-50px;
z-index:-2;
border-left:none;
}
#arrow22 {
float:left;
-moz-transform: rotate(45deg);
border:2px solid;
background-color:#34B0D9;
width:25px;
height:25px;
position:relative;
top:5px;
left:-63px;
border-bottom:none;
border-left:none;
}
#arrow31{
float:left;
-moz-transform: rotate(45deg);
border:2px solid;
background-color:#FFFFFF;
height:32px;
width:32px;
position:relative;
left:-84px;
top:5px;
z-index:-1;
border:none;
}
#rectangle3 {
border:2px solid;
border-right:none;
background-color:#34B0D9;
width:169px;
height:29px;
float:left;
text-align:center;
font-size:16px;
padding-top:5px;
float:left;
position:relative;
left:-100px;
z-index:-2;
border-left:none;
}
#arrow32 {
float:left;
-moz-transform: rotate(45deg);
border:2px solid;
background-color:#34B0D9;
width:25px;
height:25px;
position:relative;
top:5px;
left:-113px;
border-bottom:none;
border-left:none;
}
#arrow41{
float:left;
-moz-transform: rotate(45deg);
border:2px solid;
background-color:#FFFFFF;
height:32px;
width:32px;
position:relative;
left:-134px;
top:5px;
z-index:-1;
border:none;
}
#rectangle4 {
border:2px solid;
border-right:none;
background-color:#34B0D9;
width:169px;
height:29px;
float:left;
text-align:center;
font-size:16px;
padding-top:5px;
float:left;
position:relative;
left:-148px;
z-index:-2;
border-left:none;
}
#arrow42 {
float:left;
-moz-transform: rotate(45deg);
border:2px solid;
background-color:#34B0D9;
width:25px;
height:25px;
position:relative;
top:5px;
left:-161px;
border-bottom:none;
border-left:none;
}
#arrow51{
float:left;
-moz-transform: rotate(45deg);
border:2px solid;
background-color:#FFFFFF;
height:32px;
width:32px;
position:relative;
left:-180px;
top:5px;
z-index:-1;
border:none;
}
#rectangle5 {
border:2px solid;
background-color:#34B0D9;
width:169px;
height:29px;
float:left;
text-align:center;
font-size:16px;
padding-top:5px;
float:left;
position:relative;
left:-196px;
z-index:-2;
border-left:none;
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
实践效果
总结思考
1、面对复杂的问题。要学会抽象当前的问题。
2、不将就是发现的原动力。
最新文章
- 欢迎使用CSDN-markdown编辑器
- Socket用法详解
- 关于jQuery的一些实用代码
- dbca no protocol support
- git学习笔记09-bug分支-自己的分支改到一半了-要去改bug怎么办?
- Excepion
- Deferred和Promise之间有什么区别呢?
- 【经验记录】Android上传文件到服务器
- 《Python基础教程(第二版)》学习笔记 ->; 第一章 基础知识
- 关于如何使用three.js的小教程&;lt;一&;gt;
- keepalive配置支持ipv6、ipv4双棧支持
- jmeter学习记录--09--命令行运行与生成报告
- OSPF(Open Shortest Path First)
- JVM-Ubuntu18.04.1下编译OpenJDK8
- EChart.js 笔记一
- Hibernate(8)_单向n对n
- weex中css不能使用子元素选择器
- python第四十五课——继承性之多继承
- delphi简单单向字符串加密函数
- iOS 模拟器运行不能联网 PAC Fetch failed with error
热门文章
- docker guide
- Angular JavaScript内存溢出问题 (FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory)
- c++的if语句中的110为什么不等于110?
- 转: 使用 /sys 文件系统访问 Linux 内核
- 如何将已经安装从chrome扩展程序导出备份为.CRX文件?
- Spring Boot Web开发中Thymeleaf模板引擎的使用
- HTML元素的基本特性
- C#中对泛型List进行分组输出元素
- 如何在ASP.NET MVC为Action定义筛选器
- Python requests.post方法中data与json参数区别