一节前端课:html+css+js做个计算器

QQ突然弹出来一个前端公开课的提示,由于一直想学前段的知识,点进去了,收获了一些东西,做个记录。

题目:计算器的实现

技术:html+css+js

1 . body里放俩div,一个大的包一个小的,小的放键盘

<div id="cac">
        

计算器

"text" class="s_text" id="result" value="0"/> <div class="c_key"> div> div>

2 . 键盘div里放键盘

<div class="c_key">
     <ul>
      <li>7li>
      <li>8li>
      <li>9li>
      <li>li>
      <li>Cli>
      <li>4li>
      <li>5li>
      <li>6li>
      <li>*li>
      <li>/li>
      <li>1li>
      <li>2li>
      <li>3li>
      <li>+li>
      <li>-li>
      <li>0li>
      <li>00li>
      <li>.li>
      <li>%li>
    ul>
    div>

3.建个CSS文件调样式

html代码:

 <head>
    <base href="<%=basePath%>">    
    <title>计算器title>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="./css/style.css">
  head>

style.css代码

body{
    font-size:12px;  
    font-family:"微软雅黑";
    color:#666;
}
*{  
    padding:0px;
    margin:0px;   
}
#cac{   
    width:830px;
    height:500px;
    background:#f2f2f2;
    margin:0 auto;
    padding:10px;
}
#cac .c_show .s_text{
    width:810px;
    height:42px;
    border:none;
    line-height:42px;
    text-align:right;
    padding-right:20px;
    font-size:34px;
    color:#9e9e9e;
}
#cac h2{    
    font-size:16px;
    color:#000;
    font-weight:500;
    padding:12px 0 12px 20px;
    cursor:move;
}
#cac .c_key ul{ 
    border:3px solid #fff;
    overflow:auto;
    margin:10px auto;
}
#cac .c_key ul li{  
    float:left;
    width:140px;
    height:65px;
    background:#eaeaea;
    margin:11px;
    text-align:center;
    line-height:65px;
    font-size:32px;
    cursor:pointer;
    list-style:none;
    border:1px solid #fff;
}
#cac .c_key ul .c_tool{ 
    background:#738fd8;
    color:#fff;
}
#cac .c_key ul .c_result{   
    background:#f90;
    color:#fff;
}
#cac .c_key ul li:hover{    
    background:#fff;
    color:#000;
}

解析:
大括号前的body,body体内的样式
“*”星号,整个页面的样式
“#”井号,选择id
.class 选择class
font-size :字号
font-family:字体
color:颜色
padding:自身到自身内的一个容器的边距
margin:自身到自身外的一个容器的边距

margin:0 auto;
如果margin有两个参数,一个是上下边距,另一个是作用,所以效果为:上下无边距,左右居中
注:padding和margin的边距参数个数:
4个:上 右 下 左
3个:上 右左(左右都是第二个) 下
2个:上下 左右
1个:4个边距完全相同
text-align:right; 文本放在右边
padding-right:20px;你懂的
cursor:move 光标放在上面的效果 可以取值
Auto
Crosshair
Default
Pointer
Move
e-resize
ne-resize
nw-resize
n-resize
se-resize
sw-resize
s-resize
w-resize
text
wait
help
overflow:auto; 内容溢出元素框时发生的事情,还可以取值:
visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。

#cac .c_key ul li:hover{    
    background:#fff;
    color:#000;
}

hover:当鼠标移到该元素上的样式

4 .写js相应操作,并修改标签

head里加入

js代码:

<script type="text/javascript">
    //获取一下id 
    var resultDom = document.getElementById("result");
    //点击计算器执行函数
    function command(num){  
        var str = resultDom.value;
        str = (str == "0" ? "":str);
        str += num;
        resultDom.value = str;
    }
    function tools(p,m){    
        if(operate){    
            var num = resultDom.value;
            num = (num == "0" ? "":num);
            resultDom.value = num + p;
            operate = false;
        }
    }
    function equal(m){  
        var result = resultDom.value;
        var r = eval(result);
        resultDom.value =r;
    }
    function clearzero(){   
        resultDom.value=0;

    }
function del(m){

        var str = resultDom.value;

        str = str.substring(0,str.length - 1);
        str = (str == "" ? 0 : str);


        resultDom.value = str;


    }
script>   

修改html标签

<body>
    <div id="cac">
        <h2>计算器h2>
        <div class="c_show">
            <input type="text" class="s_text" onfocus="this.blur();" value="0" id="result">
        div>
        <div class="c_key">
            <ul>
                <li onclick="command(7);">7li>
                <li onclick="command(8);">8li>
                <li onclick="command(9);">9li>
                <li class="c_tool" onclick="del('j')">li>
                <li class="c_tool" onclick="clearzero('j')">cli>

                <li onclick="command(4);">4li>
                <li onclick="command(5);">5li>
                <li onclick="command(6);">6li>
                <li class="c_tool" onclick="tools('*','g')">×li>
                <li class="c_tool" onclick="tools('/','g')">÷li>

                <li onclick="command(1);">1li>
                <li onclick="command(2);">2li>
                <li onclick="command(3);">3li>
                <li class="c_tool" onclick="tools('+','g');">+li>
                <li class="c_tool" onclick="tools('-','g');">-li>
                <li onclick="command(0);">0li>
                <li onclick="command(0);">00li>
                <li onclick="dot('g')">.li>
                <li class="c_tool" onclick="tools('%','g');">%li>
                <li class="c_result" onclick="equal('j');">=li>
            ul>
        div>
            <div>计算器div>
    div>
body>

效果:
一节前端课:html+css+js做个计算器_第1张图片

mission success

你可能感兴趣的:(一节前端课:html+css+js做个计算器)